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

173 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第一步:准备环境与配置下载源
`DeepSeek-R1-Distill-Qwen-32B` 的模型权重(BF16/FP16精度)大约需要占用 **64GB 的磁盘空间****约 65GB 的显存**
**A800 80GB 显存完美支持该模型单卡运行**,但**系统盘(30GB)空间不足**,因此将模型下载到数据盘(`/root/autodl-tmp`)中。
通过国内镜像站下载,并**强制将缓存路径设置在数据盘**,防止系统盘撑爆导致实例死机。
在终端中依次执行以下命令:
```bash
# 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)。
```bash
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
```
**方式二**
```bash
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**
```bash
pip install vllm
```
**2. 开启后台运行:**
使用 `screen` 创建一个叫 `vllm_server` 的后台窗口:
```bash
创建
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 官方支持对外暴露的默认端口
前台
```bash
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
```
后台
```bash
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 完全兼容)
您可以在同一个实例新开一个终端,或者直接在当前终端输入以下命令进行测试:
```bash
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
}'
```