本指南将详细介绍如何使用 vLLM 在本地部署 DeepSeek 语言模型。我们将以 deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 模型为例,逐步指导你完成环境配置、模型下载、vLLM 安装及推理服务的启动与调用。
1. 安装 Python 环境
在开始之前,你需要确保已安装 Python 环境。
图片
- 访问 Python 官网:https://www.python.org/
- 选择安装包:根据你的操作系统(Windows、macOS 或 Linux)下载并安装 Python。
- 推荐版本:建议安装 Python 3.8 或更高版本。
- 验证安装:安装完成后,打开终端(macOS/Linux)或命令提示符(Windows),输入以下命令以检查 Python 和 pip 是否安装成功:
python --version
pip --version
如果正确显示版本号,则说明 Python 环境已配置完成。
2. 下载 DeepSeek 模型
接下来,我们需要下载 deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 模型。
图片
- 模型地址:https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- 安装 ModelScope:ModelScope 是一个模型中心,用于下载和管理模型。运行以下命令安装 ModelScope:
pip install modelscope
- 下载模型:使用以下命令下载模型并保存到本地:
modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local_dir /path/to/save/model
将 /path/to/save/model 替换为你希望保存模型的本地路径。
- 磁盘空间:确保磁盘空间充足,该模型至少需要 15GB 的存储空间。
- 关于 ModelScope:ModelScope 是一个开源社区,提供多种预训练模型。虽然某些模型可能需要注册账号,但 DeepSeek-R1-Distill-Qwen-7B 是公开的,可直接下载。
图片
3. 安装 vLLM
vLLM 是一个高效的大型语言模型推理库,支持快速部署。
图片
- vLLM 简介:vLLM GitHub[1]
- 官方文档:vLLM 文档[2]
推荐使用虚拟环境:为避免包冲突,建议在虚拟环境中安装 vLLM。
- 创建虚拟环境:
python -m venv venv
- 激活虚拟环境
# macOS/Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate
- 安装 vLLM:
pip install vllm
4. 启动 vLLM 推理服务
模型下载完成后,可以使用 vLLM 启动推理服务。
启动命令:
CUDA_VISIBLE_DEVICES=0 vllm serve /path/to/save/model --port 8102 --max-model-len 16384
参数说明:
- CUDA_VISIBLE_DEVICES=0:指定使用的 GPU 设备 ID(0 表示第一块 GPU)。
- /path/to/save/model:替换为模型的实际保存路径。
- --port 8102:服务监听的端口号(可自定义)。
- --max-model-len 16384:模型的最大上下文长度(可根据 GPU 显存调整)。
检查服务状态:启动后,终端会显示类似 INFO: Started server process 的信息。你也可以通过访问 http://localhost:8102/docs 查看 API 文档,验证服务是否正常运行。
GPU 显存:确保 GPU 显存充足。如果显存不足,可尝试减小 --max-model-len 的值。
5. 调用 vLLM 推理服务
服务启动后,可以通过代码调用 vLLM 提供的 API 进行推理。
Python 示例代码:
from openai import OpenAI
# 配置 OpenAI API 密钥和 Base URL 以连接 vLLM 服务
openai_api_key = "EMPTY"# vLLM 服务不需要 API 密钥,可以使用任意字符串
openai_api_base = "http://localhost:8102/v1" # 确保端口号与启动服务时一致
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
prompt = "你好,介绍一下你自己吧" # 输入问题
response = client.completions.create(
model="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", # 模型名称
prompt=prompt,
stream=False, # 是否使用流式输出
)
print(response.choices[0].text) # 输出模型回答
运行代码:将代码保存为 inference_example.py,然后在虚拟环境中运行:
python inference_example.py
注意事项:
- 确保 openai_api_base 中的端口号与 vLLM 服务端口一致。
- 如果遇到错误,请检查服务状态、模型名称及网络连接。
- vLLM 服务是否已成功启动并正在运行。
- openai_api_base 中的端口号是否与 vLLM 服务端口号一致。
- model 参数指定的模型名称是否正确。
- 网络连接是否正常。
- 查看 vLLM 服务端的日志输出,可能会有更详细的错误信息。
总结
通过以上步骤,你已成功在本地部署了 DeepSeek 模型,并能够通过 vLLM 进行推理。如果在部署过程中遇到问题,请参考 vLLM 官方文档或在相关社区寻求帮助。祝你使用愉快!
参考资料
[1]vLLM GitHub: https://github.com/vllm-project/vllm
[2]vLLM 文档: https://docs.vllm.ai/en/latest/