Skip to content

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

Notifications You must be signed in to change notification settings

yokingma/deepseek-vllm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

基于Docker&vLLM部署 DeepSeek 模型

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

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

docker pull docker.cnb.cool/aigc/deepseek-vllm/vllm-openai:latest

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

前提

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

配置文件

version: '3.9'

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:
      # 挂载模型目录
      - ${DOCKER_VOLUME_DIRECTORY:-.}/models:/root/.cache/huggingface
    environment:
      - HUGGING_FACE_HUB_TOKEN=${HUGGING_FACE_HUB_TOKEN}
    command: >
      # 指定要加载的模型名称或者路径,如果手动下载可能需要指定模型路径。
      --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
    ipc: host
    deploy:
      resources:
        reservations:
          devices:
            # 使用所有可用的GPU
            - driver: nvidia
              count: all
              capabilities: [gpu]

# 定义网络
networks:
  default:
    name: vllm

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

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

Topics

Resources

Stars

Watchers

Forks