从Ollama到vllm的本地大模型部署指南
本文介绍了两种在企业内网部署本地大模型的方案:Ollama和vLLM。针对代码安全要求,作者详细说明了使用Docker部署的配置过程,包括OLLAMA_CONTEXT_LENGTH、CUDA_VISIBLE_DEVICES等关键参数设置,并分享了与ClaudeCode集成的实践经验。文章特别指出了Ollama在并发性能和推理速度上的不足,进而转向vLLM方案,详细介绍了模型下载、GPU资源配置、内
背景:由于公司代码不能经过外部大模型进行分析并且开发新的需求,所以就有了通过内网得环境部署本地大模型,并且使用其他好用的ai编程工具进行提效,我claude code使用的比较多,所以就claude code 连接本地大模型进行介绍,总结自己在部署得路上遇到的坑坑洼洼进行记录,避免下次犯错
1.ollama本地部署大模型
本地环境docker并且安装了docker-compose,这里我就直接展示docker-compose.yml
services: ollama: image: "f2de8ed54c7b" container_name: ollama volumes: - ./ollama:/data/ollama_local/.ollama ports: - "0.0.0.0:11802:11434" restart: always environment: - OLLAMA_CONTEXT_LENGTH=128000 - CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 # 根据你实际的GPU数量调整 - OLLAMA_SCHED_SPREAD=1 # 开启负载均衡 - OLLAMA_KEEP_ALIVE=-1 # 可选:保持模型常驻内存 deploy: resources: reservations: devices: - driver: nvidia capabilities: ["gpu"] count: all # 保持这个配置不变
主要参数介绍:image,ollama得docker镜像
模型挂载地方
volumes: - ./ollama:/data/ollama_local/.ollama
-
OLLAMA_CONTEXT_LENGTH=128000 模型支持得最大上下文长度,这段配置非常得重要,之前我部署得时候没有加这段环境变量导致我在连接到claude code时候有点问题,就是感觉模型笨笨得,基本上除了聊天什么东西得做不了,好像ollama得默认最大上下文长度好像是2K,我也忘记了,反正默认得上下文长度很小
-
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 这个就是说明ollama可以使用哪几个GPU进行推理,我服务器上有8张我就用了8张
-
OLLAMA_SCHED_SPREAD=1 开启负载均衡 加了上面得CUDA_VISIBLE_DEVICES这个参数必须加这个
-
OLLAMA_KEEP_ALIVE=-1 保持模型常驻内存
这样就配置好了,使用命令就可以运行ollma
sudo docker-compose up -d
然后使用这个命令下载想要下载得模型
sudo docker exec ollama ollama run qwen3.5:122b
Ollama部署大模型的缺点:Ollama部署模型确实比较简单方便,但是我在实际使用的时候并发量不是很友好,并且推理速度在某些场景下很慢,基本上让其写个单测比较慢,问了问题想了很久才有返回,可能是本地机器配置不是很好导致的。
2.Vllm本地部署大模型(前提一定要配置好CUDA等)
背景说明:由于我使用ollama进行部署大模型发现没有达到预期的一个效果,所以我查询资料确定Vllm这个优化模型推理速度,提升吞吐量的技术,对本地部署大模型比较友好的。这种部署的话比ollama部署会难一点
环境说明:本地服务器 8张A40 docker环境
本地安装vllm
sudo docker pull vllm/vllm-openai
本地下载大模型:我这边下载的千问的,所以用的是魔塔社区进行下载的模型,需要评估自己的硬件然后选择合适的模型
pip install modelscope ---安装魔塔下载工具
查看本地显卡详情
nvidia-smi
后台下载模型:
nohup modelscope download --model Qwen/Qwen3.5-122B-A10B-FP8 --local_dir'/data/models/Qwen/qwen3.5_122B-A10B-F8/' > download.log 2>&1 &
--local_dir 这个参数是指定模型下载到哪个目录下
download.log下载的日志,可以看到实时下载进度
安装成功后使用以下命令进行部署自己想要的环境
docker run --gpus '"device=2,4,5,6,7"' -d \ --name qwen-122b-vllm \ --shm-size 64g \ -p 8088:8000 \ -v /data/models/Qwen/qwen3.5_122B-A10B-F8:/model \ vllm/vllm-openai:latest \ --model /model \ --served-model-name Qwen3.5-122B-Coder \ --trust-remote-code \ --dtype auto \ --tensor-parallel-size 4 \ --max-model-len 131072 \ --gpu-memory-utilization 0.75 \ --host 0.0.0.0 \ --port 8000 \ --enable-auto-tool-choice --tool-call-parser qwen3_coder
主要参数说明:
-
--gpus '"device=2,4,5,6"' 使用的GPU ,服务器上八张显卡的话排序应该是 0,1,......7,所以我这里使用的是2,4,5,6显卡,可以配置--gpu all 这样的话就是发现机器上所有的gpu
-
--shm-size 64g 共享内存
-
-v /data/models/Qwen/Qwen3.5-122B-A10B:/model 前面是你下载好的模型目录
-
--served-model-name Qwen3.5-122B-Coder 到时候调用模型名称
-
--tensor-parallel-size 4 将要使用多少个gpu来运行这个模型
-
--max-model-len 32768 最大的上下文长度,一定要被6整除的数,不然后面启动会出错
-
--gpu-memory-utilization 0.75 gpu使用阈值
-
--enable-auto-tool-choice --tool-call-parser qwen3_coder 支持tool工具调用,agent工具一定要配置不然会报错
注意:1.现在tensor-parallel-size要配置 1,4,8等值不然会出错的;
2.一定在配置模型的时候要评估模型是否与本地硬件相匹配
3.若是使用claude code等工具的话最大上下文一定要配置高一点
配置好后可以通过postman或者Claude Code进行调用
postman调用:
http://ip:8088/v1/chat/completions
ClaudeCode调用:
在环境变量的用户变量增加这三个值
ANTHROPIC_AUTH_TOKEN ollama----这个随便填 ANTHROPIC_BASE_URL http://ip:8088 ANTHROPIC_MODEL Qwen3.5-122B-Coder ---上面配置的模型服务名
然后使用命令行使用claude 就可以正常对话了
更多推荐



所有评论(0)