背景:由于公司代码不能经过外部大模型进行分析并且开发新的需求,所以就有了通过内网得环境部署本地大模型,并且使用其他好用的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 就可以正常对话了

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐