在昆仑芯P800上快速部署DeepSeek R1模型
更新时间:2025-02-20
昆仑芯是由昆仑芯科技专注打造的拥有强大通用性、易用性和高性能的通用AI芯片,并已实现数代芯片系列产品的量产及规模部署。新一代产品昆仑芯P800万卡集群已成功点亮,将进一步点亮3万卡集群。百舸平台已支持将DeepSeek模型部署到性能卓越、成本效率极致的国产昆仑芯P800集群,您可以根据此文档快速体验DeepSeek在P800的模型效果。
前置条件
- 创建通用资源池,可选择创建一台P800(ehc.lnkl7t.c208m2048.8p800.4re.4d)规格资源池部署,购买P800机器需要先联系百度售前工程师开通白名单。
- 开通BOS对象存储或PFS并行文件存储。
准备模型文件
V3和R1原始权重FP8,在P800上单机部署需量化到INT8(Weigth Only),量化后的模型权重已存储到平台的BOS存储中,请将附录BOS存储地址中的模型权重文件转储到资源池关联的PFS存储或BOS对象存储中,在部署服务时挂载。
- 登录节点安装CMD https://cloud.baidu.com/doc/BOS/s/qjwvyqegc 并完成CMD配置 https://cloud.baidu.com/doc/BOS/s/Ejwvyqe55
- 从附录中平台提供的BOS地址中拷贝权重文件到PFS存储中:
./bcecmd bos sync bos:/aihclite-pub/models/deepseek-ai/DeepSeek-R1-int8_wo /pfs/path/to/model
部署模型
- 登录百舸异构计算平台
- 在左侧导航中选择在线服务部署
- 进入 自定义部署 页面点击部署服务
- 填写部署模型服务的相关参数:
a.服务镜像选择 CCR企业版镜像>百舸预置镜像 中的P800镜像
b.启动命令:输入附录中对应模型的启动命令
c. 资源申请,加速芯片数量选择8卡
d. 环境变量:输入附录中对应模型的环境变量
e.挂载存储模型权重文件的PFS路径
5.部署服务,等待服务状态为“运行中”即可调用。
调用模型服务
- 在服务详情中查看访问地址和服务端口
- 请求示例
curl语句:
curl http://192.168.0.46:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-R1",
"prompt": "鸡兔同笼,头共20个,足共62只,求鸡与兔各有多少只?"
}'
python语句:
from openai import OpenAI
openai_api_key = "EMPTY"
openai_api_base = "http://192.168.0.46:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
models = client.models.list()
model = models.data[0].id
# Round 1
messages = [{"role": "user", "content": "鸡兔同笼,头共20个,足共62只,求鸡与兔各有多少只?"}]
response = client.chat.completions.create(model=model, messages=messages)
content = response.choices[0].message.content
print("content:", content)
- 响应结果
reasoning_content:
首先,设鸡的数量为x,兔的数量为y。根据题意,鸡和兔的总头数为20,只数为62。
建立方程组:
x + y = 20
2x + 4y = 62
通过代数方法消元,求解方程组,得出x和y的值。
content:
**解答:**
设鸡的数量为 \( x \) 只,兔的数量为 \( y \) 只。
根据题意,可以建立以下方程组:
\[
\begin{cases}
x + y = 20 & \text{(头的总数)} \\
2x + 4y = 62 & \text{(足的总数)}
\end{cases}
\]
**步骤1:简化方程**
将第二个方程两边同时除以2,得到:
\[
x + 2y = 31
\]
**步骤2:消元**
用简化后的方程减去第一个方程:
\[
(x + 2y) - (x + y) = 31 - 20
\]
化简得到:
\[
y = 11
\]
**步骤3:回代求解 \( x \)**
将 \( y = 11 \) 代入第一个方程:
\[
x + 11 = 20
\]
解得:
\[
x = 9
\]
**最终答案:**
\[
\boxed{鸡有9只,兔子有11只}
\]
附录
注意:启动命令中--model的参数替换为实际的模型路径
模型名称 | 参数量 | 启动命令 | 环境变量 | 权重文件地址 |
---|---|---|---|---|
DeepSeek-R1 | 671B | . /root/.bashrc && python -m vllm.entrypoints.openai.api_server --host 0.0.0.0 --port {port} --model /pfs/path/to/model --served-model-name DeepSeek-R1 --gpu-memory-utilization 0.99 --trust-remote-code --tensor-parallel-size 8 --enforce_eager --block_size 64 --max_num_seqs 256 --max_model_len 8192 --dtype float16 --quantization weight_only_int8 --max-num-batched-tokens 8192 |
export KUNLUN_LIB_PATH="/root/build/lib/xft/" export XPU_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export ENABLE_KUNLUN_LARGE_OPS=1 export XPU_USE_MOE_SORTED_THRES=0 |
bos:/aihclite-pub/models/deepseek-ai/DeepSeek-R1-int8_wo |