如何让vllm使用modelscope而不是huggingface来下载模型?
要让vLLM通过ModelScope下载模型而非HuggingFace,需要完成以下关键步骤:
-
设置环境变量
在运行vLLM前通过命令export VLLM_USE_MODELSCOPE=True
指定模型来源。此变量需在初始化vLLM引擎前生效,可临时设置或写入.bashrc
文件永久生效。 -
模型存储路径配置(可选)
若需自定义模型缓存路径,设置环境变量export MODELSCOPE_CACHE=/your/custom/path/
。否则默认路径为~/.cache/modelscope/hub
,需注意磁盘空间是否充足。 -
多卡运行注意事项
使用多GPU时需满足:- 设置
CUDA_VISIBLE_DEVICES
指定可见显卡 - Attention Head数量需能被GPU数量整除(如40 Head需用2/4/5/8等卡数)
- 调整
--tensor-parallel-size
参数与显卡数量一致
- 设置
-
模型下载与加载
示例命令:# 单卡启动示例 CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server \ --model deepseek-ai/DeepSeek-R1-14B \ --served-model-name deepseek-r1 \ --trust-remote-code # 多卡启动示例(需提前设置VLLM_USE_MODELSCOPE) CUDA_VISIBLE_DEVICES=0,1,2,3 python -m vllm.entrypoints.openai.api_server \ --model deepseek-ai/DeepSeek-R1-14B \ --tensor-parallel-size 4 \ --max-model-len 8192
-
常见问题处理
- 空间不足:通过
MODELSCOPE_CACHE
指定大容量存储路径 - 并行错误:检查Head数与GPU数的整除关系
- 版本冲突:建议使用Python3.8+和vLLM 0.3.0+版本
- 空间不足:通过
通过上述配置,vLLM会自动从ModelScope镜像源下载模型文件,下载速度相比HuggingFace可提升5-10倍。实际部署时建议配合modelscope
库的snapshot_download
方法预下载模型,避免服务启动时的长时间等待。