头图

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。因此,在部署前,请确保开通的弹性容器集群的资源满足下表中的配置要求。

image.png

2.3开通弹性容器集群

请参考弹性容器集群的入门文档,完成集群的开通并了解基本的使用方法【了解更多】。成功后,得到kubeconfig文件、弹性容器集群的信息、对象存储和Harbor仓库的相关信息。

提示:需要先设置环境变量,export KUBECONFIG=kubeconfig文件路径,才能够执行kubectl命令

2.4配置文件

准备为了方便操作,为大家准备了配套的配置文件及示例代码,请点击此处下载。

05_表格_02.png

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 应用的规模化落地。


DataCanvas
15 声望10 粉丝

北京九章云极科技有限公司(九章云极DataCanvas)成立于2013年,以“创造智能,探索未知”为使命,以“助力全球企业智能升级”为愿景,致力于推动国际领先人工智能技术在智算产业的创新应用,是中国人工智能基础设施...