logo
9
0
Login
zac_ma<yoking@outlook.com>
chore: update README.md

基于Docker&vLLM部署 DeepSeek 模型

vLLM提供了一个实现OpenAI的Completions API、Chat API等功能的HTTP服务器,本项目介绍使用vLLM官方镜像部署DeepSeek模型,并使用Docker Compose配置文件启动服务。

vLLM官方Docker镜像文件已经同步到腾讯CNB制品库:

# 当前版本需要宿主CUDA version >= 12.8 docker pull docker.cnb.cool/aigc/deepseek-vllm/vllm-openai:latest

自行构建镜像请参考vLLM 官方文档

前提

  • Linux系统 AMD64架构
  • Docker Engine
  • NVIDIA GPU(计算能力为7.0或更高)
  • NVIDIA Container Toolkit & NVIDIA Driver

配置文件

可以部署任意vllm支持的模型如Qwen3、DeepSeek R1等。

services: vllm-openai: # 使用最新的vllm-openai镜像 image: docker.cnb.cool/aigc/deepseek-vllm/vllm-openai:latest container_name: vllm_service restart: unless-stopped ports: # 将容器的8000端口映射到主机的8888端口 - "8888:8000" volumes: # 挂载模型目录,使用huggingface需要调整此处的modelscope -> huggingface - ${DOCKER_VOLUME_DIRECTORY:-.}/models:/root/.cache/modelscope environment: # - HUGGING_FACE_HUB_TOKEN=${HUGGING_FACE_HUB_TOKEN} # 国内可以选择使用modelscope.cn下载模型 - VLLM_USE_MODELSCOPE=True command: > --reasoning_parser deepseek_r1 --model neuralmagic/DeepSeek-R1-Distill-Qwen-32B-quantized.w4a16 --tensor-parallel-size 2 --max-num-seqs 8 --max-model-len 8096 --max-num-batched-tokens 24576 --gpu-memory-utilization 0.9 ipc: host deploy: resources: reservations: devices: # 使用所有可用的GPU - driver: nvidia count: all capabilities: [gpu] # 定义网络 networks: default: name: vllm

Command参数说明

# 使用deepseek_r1解析器 --reasoning_parser deepseek_r1 # 指定要加载的模型名称或者路径,如果手动下载可能需要指定模型路径。 --model neuralmagic/DeepSeek-R1-Distill-Qwen-32B-quantized.w4a16 # 设置张量并行大小,可以指定多个GPU --tensor-parallel-size 2 # 最大并发序列数 --max-num-seqs 8 # 最大模型上下文长度 --max-model-len 8096 # 最大批处理token数 --max-num-batched-tokens 24576 # GPU内存使用率 --gpu-memory-utilization 0.9

command 中的更多参数请参考:vLLM 引擎参数

部署

  • 启动服务
docker compose up -d
  • 停止服务
docker compose down

使用方式

使用方式同OpenAI API,如下:

from openai import OpenAI client = OpenAI( base_url="http://localhost:8888/v1", api_key="token-abc123", ) completion = client.chat.completions.create( model="neuralmagic/DeepSeek-R1-Distill-Qwen-32B-quantized.w4a16", messages=[ {"role": "user", "content": "Hello!"} ] ) print(completion.choices[0].message)

注意事项

  • 模型下载国内可以访问魔搭社区 Neural Magic 或者Hugging Face 提供的量化模型。
  • 如果拥有多个GPU,可在配置文件中指定多个GPU --tensor-parallel-size num
  • max-model-len 上下文长度非常消耗GPU内存,请根据实际情况调整。

About

vLLM官方镜像部署DeepSeek模型,生产环境中提供类OpenAI接口服务。

DeepSeekvLLMDocker
Language
Markdown100%