Files
notes/resource/ai/大模型安装笔记/001 大模型启动流程.md
T
Docker7530 e4a339bd77 1774597379
2026-03-27 15:43:03 +08:00

4.8 KiB
Raw Blame History

第一步:准备环境与配置下载源

DeepSeek-R1-Distill-Qwen-32B 的模型权重(BF16/FP16精度)大约需要占用 64GB 的磁盘空间约 65GB 的显存

A800 80GB 显存完美支持该模型单卡运行,但系统盘(30GB)空间不足,因此将模型下载到数据盘(/root/autodl-tmp)中。

通过国内镜像站下载,并强制将缓存路径设置在数据盘,防止系统盘撑爆导致实例死机。

在终端中依次执行以下命令:

# 1. 进入数据盘目录
cd /root/autodl-tmp

# 2. 必须:设置 Hugging Face 缓存目录到数据盘
export HF_HOME=/root/autodl-tmp/hf_cache

# 3. 设置 Hugging Face 国内镜像加速下载
export HF_ENDPOINT=https://hf-mirror.com

# 4. 安装 huggingface-cli 及加速传输依赖
pip install -U huggingface_hub hf_transfer

如果遇到风险
pip install -U huggingface_hub hf_transfer --break-system-packages

export HF_HUB_ENABLE_HF_TRANSFER=1

第二步:下载模型

方式一

使用 huggingface-cli 将模型直接下载到数据盘的指定文件夹中。下载大概需要十几到几十分钟(约 64 GB)。

hf download deepseek-ai/DeepSeek-R1-Distill-Qwen-32B --local-dir /root/autodl-tmp/DeepSeek-R1-32B

hf download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir /root/autodl-tmp/DeepSeek-R1-1.5B

hf download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir /root/autodl-tmp/DeepSeek-R1-Distill-Qwen-7B

方式二

python - <<'PY'
import os
from huggingface_hub import snapshot_download

os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["HF_HOME"] = "/root/autodl-tmp/hf_cache"
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"

print("⏳ 开始下载模型...")
path = snapshot_download(
    repo_id="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
    local_dir="/root/autodl-tmp/DeepSeek-R1-1.5B",
)

print("✅ 下载完成,模型目录:", path)
PY

第三步:安装并启动 vLLM 推理框架

1. 安装 vLLM

pip install vllm

2. 开启后台运行:

使用 screen 创建一个叫 vllm_server 的后台窗口:

创建
screen -U -S vLLM

列表
screen -U -ls

重新进入
screen -U -r 89505.vllm_server

退出
screen -U -S 7394 -X quit

离开
Ctrl-a d

3. 启动类似 OpenAI 的 API 服务:

注意:我们将端口设为 6006,这是 AutoDL 官方支持对外暴露的默认端口

前台

python -m vllm.entrypoints.openai.api_server \
    --model /root/autodl-tmp/DeepSeek-R1-Distill-Qwen-7B \
    --served-model-name deepseek-r1 \
    --tensor-parallel-size 1 \
    --max-model-len 131072 \
    --gpu-memory-utilization 0.95 \
    --reasoning-parser deepseek_r1 \
    --tool-call-parser qwen3_xml \
    --enable-auto-tool-choice \
    --port 6006

后台

deepseek-ai/DeepSeek-R1-Distill-Qwen-7B

screen -U -L -Logfile /root/vllm_server.log -dmS vllm_server bash -c 'python -m vllm.entrypoints.openai.api_server \
    --model /root/autodl-tmp/DeepSeek-R1-32B \
    --served-model-name deepseek-r1 \
    --tensor-parallel-size 1 \
    --max-model-len 8192 \
    --gpu-memory-utilization 0.95 \
    --port 6006'
    
screen -U -L -Logfile /root/vllm_server.log -dmS vllm_server bash -c 'python -m vllm.entrypoints.openai.api_server \
    --model /root/autodl-tmp/DeepSeek-R1-1.5B \
    --served-model-name deepseek-r1 \
    --tensor-parallel-size 1 \
    --max-model-len 131072 \
    --gpu-memory-utilization 0.95 \
    --port 6006'
    
screen -U -L -Logfile /root/vllm_server.log -dmS vllm_server bash -c 'python -m vllm.entrypoints.openai.api_server \
    --model /root/autodl-tmp/DeepSeek-R1-Distill-Qwen-7B \
    --served-model-name deepseek-r1 \
    --tensor-parallel-size 1 \
    --max-model-len 131072 \
    --gpu-memory-utilization 0.95 \
    --port 6006'
可以决定
--reasoning-parser deepseek_r1

参数解释:

  • --max-model-len 8192:限制最大上下文为 8K token(因为模型本身 64GA800 剩约 15G 显存留给 KV Cache,8K 是比较安全且不会 OOM 的长度)。
  • --gpu-memory-utilization 0.95:允许 vLLM 使用 95% 的显存。
  • --served-model-name:客户端调用时填写的模型名称。

等待终端显示 Uvicorn running on http://0.0.0.0:6006 字样,即代表部署成功。

第四步:测试调用 (与 OpenAI API 完全兼容)

您可以在同一个实例新开一个终端,或者直接在当前终端输入以下命令进行测试:

curl http://localhost:6006/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1",
    "messages":[
      {"role": "system", "content": "你是一个有用的AI助手。"},
      {"role": "user", "content": "请用Python写一个快速排序算法。"}
    ],
    "max_tokens": 1024,
    "temperature": 0.6
  }'