部署DeepSeek蒸馏模型推理服务
更新时间:2025-11-03
本文主要介绍使用容器引擎CCE 部署DeepSeek-R1-Distill-Qwen-7B蒸馏模型推理服务。
背景知识
- DeepSeek-R1-Distill-Qwen-7B
DeepSeek-R1-Distill-Qwen-7B 是一个基于知识蒸馏技术的大型语言模型,它将 DeepSeek-R1 的推理能力迁移到了 Qwen-7B 架构上。
Plain Text
11. **知识蒸馏架构**:通过蒸馏技术,将更大规模的 DeepSeek-R1 模型的推理能力压缩到 70 亿参数的 Qwen 模型中,在保持较小模型体积的同时获得强大的推理性能。
22. **推理增强**:继承了 DeepSeek-R1 的强化学习推理能力,擅长处理需要多步骤逻辑推理的复杂任务,如数学问题、代码生成、逻辑分析等。
33. **高效部署**:7B 参数规模使其能在消费级硬件上运行,降低了部署成本和推理延迟,适合资源受限的应用场景。
前提条件
已创建CCE集群且集群版本为1.31及以上,并且已经为集群添加GPU节点。
具体操作,请参见创建CCE托管集群。
本文推荐使用bcc.lsgn7ec.c176m1952.8h20-141.2d规格(请联系客户经理申请GPU规格邀测),实际使用一张H20卡。
模型部署
步骤一:准备DeepSeek-R1-Distill-Qwen-7B模型文件
在PFS中创建目录,将模型下载至PFS。
- 登录PFS控制台,将集群中的节点挂载到PFS挂载服务中,参考控制台操作文档和命令行操作文档。如何创建PFS文件系统,创建挂载服务并绑定存储实例,请参考创建文件系统,创建挂载服务,绑定存储实例。
- 在PFS中创建目录,并执行以下命令从ModelScope下载DeepSeek-R1-Distill-Qwen-7B模型,将模型拷贝到PFS中。
Plain Text
1mkdir -p deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
2pip install modelscope
3modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local_dir <pfs目录>/models-test/DeepSeek-R1-Distill-Qwen-7B
- 创建PV和PVC。为目标集群配置存储卷PV和存储声明PVC。请参考使用并行文件存储PFS L2。
- 通过Yaml新建PV示例:
Plain Text
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4 name: <your-pv-name> #本示例中为test-pv-02
5spec:
6 accessModes:
7 - ReadOnlyMany
8 capacity:
9 storage: 500Gi
10 local:
11 path: <your-pfs-path> #本示例中为/pfs/pfs-qnL8Jh/Qwen-models
12 nodeAffinity:
13 required:
14 nodeSelectorTerms:
15 - matchExpressions:
16 - key: ready-for-pfsl2
17 operator: In
18 values:
19 - "true"
20 persistentVolumeReclaimPolicy: Retain
21 storageClassName: local-volume
22 volumeMode: Filesystem
- 通过Yaml新建PVC示例:
Plain Text
1apiVersion: v1
2kind: PersistentVolumeClaim
3metadata:
4 finalizers:
5 - kubernetes.io/pvc-protection
6 name: <your-pvc-name> #本示例中为test-pvc-02
7 namespace: default
8spec:
9 accessModes:
10 - ReadOnlyMany
11 resources:
12 requests:
13 storage: 500Gi
14 storageClassName: local-volume
15 volumeMode: Filesystem
16 volumeName: <your-pv-name> #本示例中为test-pv-02
步骤二:部署推理服务
参考以下YAML代码示例,在CCE中部署DeepSeek-R1-Distill-Qwen-7B蒸馏模型推理服务。
Plain Text
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4 labels:
5 # for prometheus to scrape
6 baidu-cce/inference-workload: sglang-ds-r1-distill-qwen-7b
7 baidu-cce/inference_backend: sglang
8 name: sglang-ds-r1-distill-qwen-7b
9 namespace: default
10spec:
11 replicas: 1
12 selector:
13 matchLabels:
14 baidu-cce/inference-workload: sglang-ds-r1-distill-qwen-7b
15 baidu-cce/inference_backend: sglang
16 template:
17 metadata:
18 labels:
19 baidu-cce/inference-workload: sglang-ds-r1-distill-qwen-7b
20 baidu-cce/inference_backend: sglang
21 spec:
22 nodeSelector:
23 gputype: h20
24 volumes:
25 - name: model
26 persistentVolumeClaim:
27 claimName: <your-pvc-name> #本示例中为test-pvc-02
28 readOnly: true
29 - name: dshm
30 emptyDir:
31 medium: Memory
32 sizeLimit: 15Gi
33 containers:
34 - command:
35 - sh
36 - -c
37 - python -m sglang.launch_server --model-path /models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B/ --tp 1 --host 0.0.0.0 --port 8000 --enable-metrics
38 image: registry.baidubce.com/ai-native-dev/infer-manager/dev-image:0.4.ubuntu2204-py313-sglang0.5.2-router0.1.9-mooncake-0.3.6-nixl-0.6.0-cuda12.4
39 name: sglang
40 ports:
41 - containerPort: 8000
42 name: http
43 readinessProbe:
44 initialDelaySeconds: 30
45 periodSeconds: 10
46 tcpSocket:
47 port: 8000
48 resources:
49 limits:
50 nvidia.com/gpu: "1"
51 memory: "64Gi"
52 cpu: "16"
53 requests:
54 nvidia.com/gpu: "1"
55 memory: "64Gi"
56 cpu: "16"
57 volumeMounts:
58 - mountPath: /models
59 name: model
60 - mountPath: /dev/shm
61 name: dshm
步骤三:验证推理服务
- 登录容器,执行以下命令,向模型推理服务发送一条示例的模型推理请求。
Plain Text
1curl http://127.0.0.1:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B/", "messages": [{"role": "user", "content": "你是什么模型?"}], "max_tokens": 2000, "temperature": 0.7, "top_p": 0.9, "seed": 10}'
预期输出:
Plain Text
1{"id":"d6b03adf59054ddf8e69cae3a6a412cc","object":"chat.completion","created":1761816628,"model":"/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B/","choices":[{"index":0,"message":{"role":"assistant","content":"您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。\n</think>\n\n您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。","reasoning_content":null,"tool_calls":null},"logprobs":null,"finish_reason":"stop","matched_stop":151643}],"usage":{"prompt_tokens":9,"total_tokens":82,"completion_tokens":73,"prompt_tokens_details":null,"reasoning_tokens":0},"metadata":{"weight_version":"default"}}
输出结果表明模型可以根据给定的输入生成相应的回复。
