1.背景介绍
DeepSeek-R1:你的智能新伙伴
DeepSeek-R1不仅仅是一个拥有6710亿参数的大模型,它更是一个在数学、编程和复杂推理任务中表现卓越的智能助手。无论是解决复杂的算法难题,还是编写高效的代码,DeepSeek-R1都能助你一臂之力,其性能已经可以与市面上那些顶级的闭源大模型平分秋色。
开启分布式推理的新时代
为了让每个团队和个人都能享受到DeepSeek-R1带来的无限可能,我们特别准备了一份详尽的最佳实践指南。通过使用vLLM和KubeRay这两款强大的工具,你可以轻松实现DeepSeek-R1的私有化部署。️
三步实现你的专属AI部署
无论你是技术新手还是资深开发者,这份指南都将帮助你快速上手,只需三步,即可完成DeepSeek-R1的私有化部署。不要错过这个机会,立即行动起来吧!
体验地址:https://docs.alayanew.com/docs/documents/newActivities/deepseekr1
主要内容:
Step1 - 准备工作
1.账号开通
2.资源需求
3.开通弹性容器集群
4.配置文件准备
5.模型准备
Setp2 - KubeRay集群部署
1.安装KubeRay-Opertor
2.启动集群
3.安装访问配置
Setp3 - DeepSeek-R1部署
1.部署模型
2.访问模型
2.准备工作
本次部署会用到helm和Kubernetes,请先确保本地有可用的Kubernestes客户端工具kubectl,安装请参考文档。kubectl安装成功后,下载helm文件,按照如下方式进行安装:
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
在环境变量PATH中设置helm文件所在的路径
将 helm 文件移动到目录 /usr/local/bin
部署前需要先开通弹性容器集群,请跟随下面的步骤,完成前期准备工作。
2.1账号开通点击https://docs.alayanew.com/
点击“立即体验”进行账户开通注册
2.2资源需求
DeepSeek-R1模型的参数规模为6710亿,模型的文件大小约为642G。因此,在部署前,请确保开通的弹性容器集群的资源满足下表中的配置要求。
2.3开通弹性容器集群
请参考弹性容器集群的入门文档,完成集群的开通并了解基本的使用方法【了解更多】。成功后,得到kubeconfig文件、弹性容器集群的信息、对象存储和Harbor仓库的相关信息。
提示:需要先设置环境变量,export KUBECONFIG=kubeconfig文件路径,才能够执行kubectl命令
2.4配置文件
准备为了方便操作,为大家准备了配套的配置文件及示例代码,请点击此处下载。
2.5模型准备
该模型文件较大,我们按照如下步骤,从模型市场中快速下载DeepSeek-R1模型文件。
创建Secret
首先,创建Secret用于拉取镜像时的验证。执行下面的命令,创建Secret资源。
# 创建namespace
1. kubectl create namespace deepseek
# 创建Secret
2. kubectl apply -f deepseek-secret.yaml
下载模型
执行kubectl apply -f prepare.yaml命令,创建准备环境Pod,用于下载模型。Pod启动成功后,进入prepare的容器中,执行以下操作下载DeepSeek-R1模型。
# 进入prepare容器
1. kubectl exec -it $( kubectl get pod -n deepseek | awk ' NR>1 {print $1}' | grep prepare ) bash -n deepseek
# 安装huggingface工具
2. pip install huggingface
# 下载DeepSeek-V3模型
3. huggingface-cli download --resume-download deepseek-ai/DeepSeek-V3 --local-dir /model/deepseek-ai/DeepSeek-V3
提示:模型文件大约642G,下载时间较长,请耐心等待
3.KubeRay集群部署
本方案使用KubeRay做为分布式计算框架来实现多机多卡的分布式推理环境。
3.1安装KubeRay-Opertor
进入kuberay-operator目录,执行下面的命令,启动operator。
helm install kuberay-operator -n deepseek --version 1.2.2 .
部署成功后,可以执行下面的命令操作已部署的资源。
# 查看相关资源
1.helm list -n deepseek
# 删除相关资源
2.helm uninstall kuberay-operator -n deepseek
3.2启动集群
完成KubeRay-Opertor安装后,执行kubectl apply -f ray-cluster.yaml命令,启动KubeRay集群。
集群启动成功后,执行kubectl get pod -n deepseek查看服务运行情况。
3.3外部访问配置
在弹性容器集群中,无法直接使用NodePort方式暴露服务。对于需要外部访问的服务,我们可以使用ServiceExporter。ServiceExporter是弹性容器集群中用于将服务暴露到外部的组件,将其与需要对外提供服务的Service绑定,为用户提供外部访问的地址。
apiVersion: osm.datacanvas.com/v1alpha1
kind: ServiceExporter
metadata:
name: ray-svc-chat-exporter
namespace:r deepseek
spec:
serviceName: raycluster-kuberay-head-svc
servicePort: 8000
执行kubectl apply -f ray-svcExporter-chat.yaml命令,创建ServiceExporter资源。创建成功后,可以查看ServiceExporter的信息获取服务访问的地址。通过ServiceExporter方式暴露的服务端口均为22443
kubectl describe serviceExporter ray-svc-chat-exporter -n deepseek
输出结果
信息省略···
Spec:
Service Name: raycluster-kuberay-head-svc
Service Port: 8000
Status:
Conditions:
Last Transition Time: 2025-01-05T13:04:48Z
Message: IngressRoute successfully updated, url: https://raycluster-kuberay-head-svc-x-deepseek-x-vcw2y2htee7r.sproxy.hd-01.alayanew.com
···
提示:当使用headless类型的svc时,只能暴露该svc上的一个端口。
4.DeepSeek-R1部署
4.1部署模型
KubeRay集群启动成功后,进入任意容器中,执行以下操作部署DeepSeek-R1模型。
1. kubectl exec -it $( kubectl get pod -n deepseek | awk ' NR>1 {print $1}' | grep kuberay-head ) bash -n deepseek
2. vllm serve /model/deepseek-ai/DeepSeek-V3 \
--tensor-parallel-size 16 \
--gpu-memory-utilization 0.95 \
--num-scheduler-steps 20 \
--max-model-len 8192 \
--trust-remote-code
提示:模型加载预计耗时40~50分钟,建议在tmux中执行模型部署命令。
4.2访问模型
from openai import OpenAI
openai_api_key = "EMPTY"
openai_api_base = "https://raycluster-kuberay-head-svc-x-deepseek-x-vcw2y2htee7r.sproxy.hd-01.alayanew.com:22443/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me a joke."},
],
stream=True
)
Sure! Here’s a joke for you:
**Why did the scarecrow win the award?**
Because he was *outstanding* in his field!
Hope that brought a smile to your face!
5.总结
至此,我们完成了使用KubeRay和vLLM部署DeepSeek-R1模型的全部流程。本文为DeepSeek-R1私有化部署提供了从环境搭建到推理访问的完整技术路径。通过分布式推理模式,大尺寸模型的性能潜力得以充分释放,推动了 AI 应用的规模化落地。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。