DeepSeek 本地部署指南(基于 vLLM)
本指南將詳細(xì)介紹如何使用 vLLM 在本地部署 DeepSeek 語(yǔ)言模型。我們將以 deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 模型為例,逐步指導(dǎo)你完成環(huán)境配置、模型下載、vLLM 安裝及推理服務(wù)的啟動(dòng)與調(diào)用。
1. 安裝 Python 環(huán)境
在開(kāi)始之前,你需要確保已安裝 Python 環(huán)境。
圖片
- 訪問(wèn) Python 官網(wǎng):https://www.python.org/
- 選擇安裝包:根據(jù)你的操作系統(tǒng)(Windows、macOS 或 Linux)下載并安裝 Python。
- 推薦版本:建議安裝 Python 3.8 或更高版本。
- 驗(yàn)證安裝:安裝完成后,打開(kāi)終端(macOS/Linux)或命令提示符(Windows),輸入以下命令以檢查 Python 和 pip 是否安裝成功:
python --version
pip --version
如果正確顯示版本號(hào),則說(shuō)明 Python 環(huán)境已配置完成。
2. 下載 DeepSeek 模型
接下來(lái),我們需要下載 deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 模型。
圖片
- 模型地址:https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- 安裝 ModelScope:ModelScope 是一個(gè)模型中心,用于下載和管理模型。運(yùn)行以下命令安裝 ModelScope:
pip install modelscope
- 下載模型:使用以下命令下載模型并保存到本地:
modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local_dir /path/to/save/model
將 /path/to/save/model 替換為你希望保存模型的本地路徑。
- 磁盤(pán)空間:確保磁盤(pán)空間充足,該模型至少需要 15GB 的存儲(chǔ)空間。
- 關(guān)于 ModelScope:ModelScope 是一個(gè)開(kāi)源社區(qū),提供多種預(yù)訓(xùn)練模型。雖然某些模型可能需要注冊(cè)賬號(hào),但 DeepSeek-R1-Distill-Qwen-7B 是公開(kāi)的,可直接下載。
圖片
3. 安裝 vLLM
vLLM 是一個(gè)高效的大型語(yǔ)言模型推理庫(kù),支持快速部署。
圖片
- vLLM 簡(jiǎn)介:vLLM GitHub[1]
- 官方文檔:vLLM 文檔[2]
推薦使用虛擬環(huán)境:為避免包沖突,建議在虛擬環(huán)境中安裝 vLLM。
- 創(chuàng)建虛擬環(huán)境:
python -m venv venv
- 激活虛擬環(huán)境
# macOS/Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate
- 安裝 vLLM:
pip install vllm
4. 啟動(dòng) vLLM 推理服務(wù)
模型下載完成后,可以使用 vLLM 啟動(dòng)推理服務(wù)。
啟動(dòng)命令:
CUDA_VISIBLE_DEVICES=0 vllm serve /path/to/save/model --port 8102 --max-model-len 16384
參數(shù)說(shuō)明:
- CUDA_VISIBLE_DEVICES=0:指定使用的 GPU 設(shè)備 ID(0 表示第一塊 GPU)。
- /path/to/save/model:替換為模型的實(shí)際保存路徑。
- --port 8102:服務(wù)監(jiān)聽(tīng)的端口號(hào)(可自定義)。
- --max-model-len 16384:模型的最大上下文長(zhǎng)度(可根據(jù) GPU 顯存調(diào)整)。
檢查服務(wù)狀態(tài):?jiǎn)?dòng)后,終端會(huì)顯示類(lèi)似 INFO: Started server process 的信息。你也可以通過(guò)訪問(wèn) http://localhost:8102/docs 查看 API 文檔,驗(yàn)證服務(wù)是否正常運(yùn)行。
GPU 顯存:確保 GPU 顯存充足。如果顯存不足,可嘗試減小 --max-model-len 的值。
5. 調(diào)用 vLLM 推理服務(wù)
服務(wù)啟動(dòng)后,可以通過(guò)代碼調(diào)用 vLLM 提供的 API 進(jìn)行推理。
Python 示例代碼:
from openai import OpenAI
# 配置 OpenAI API 密鑰和 Base URL 以連接 vLLM 服務(wù)
openai_api_key = "EMPTY"# vLLM 服務(wù)不需要 API 密鑰,可以使用任意字符串
openai_api_base = "http://localhost:8102/v1" # 確保端口號(hào)與啟動(dòng)服務(wù)時(shí)一致
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
prompt = "你好,介紹一下你自己吧" # 輸入問(wèn)題
response = client.completions.create(
model="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", # 模型名稱(chēng)
prompt=prompt,
stream=False, # 是否使用流式輸出
)
print(response.choices[0].text) # 輸出模型回答
運(yùn)行代碼:將代碼保存為 inference_example.py,然后在虛擬環(huán)境中運(yùn)行:
python inference_example.py
注意事項(xiàng):
- 確保 openai_api_base 中的端口號(hào)與 vLLM 服務(wù)端口一致。
- 如果遇到錯(cuò)誤,請(qǐng)檢查服務(wù)狀態(tài)、模型名稱(chēng)及網(wǎng)絡(luò)連接。
- vLLM 服務(wù)是否已成功啟動(dòng)并正在運(yùn)行。
- openai_api_base 中的端口號(hào)是否與 vLLM 服務(wù)端口號(hào)一致。
- model 參數(shù)指定的模型名稱(chēng)是否正確。
- 網(wǎng)絡(luò)連接是否正常。
- 查看 vLLM 服務(wù)端的日志輸出,可能會(huì)有更詳細(xì)的錯(cuò)誤信息。
總結(jié)
通過(guò)以上步驟,你已成功在本地部署了 DeepSeek 模型,并能夠通過(guò) vLLM 進(jìn)行推理。如果在部署過(guò)程中遇到問(wèn)題,請(qǐng)參考 vLLM 官方文檔或在相關(guān)社區(qū)尋求幫助。祝你使用愉快!
參考資料
[1]vLLM GitHub: https://github.com/vllm-project/vllm
[2]vLLM 文檔: https://docs.vllm.ai/en/latest/