部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
函数计算FC,每月15万CU 3个月
简介: 借助阿里云ACK One注册集群,充分利用阿里云强大ACS GPU算力,实现DeepSeek推理模型高效部署。

【阅读原文】戳:部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足

春节期间,DeepSeek作为一款基于深度学习的智能推理模型,因其在自然语言处理、图像识别等领域的卓越表现迅速走红。无论是企业级应用还是学术研究,DeepSeek都展现出了强大的潜力。然而,随着其应用场景的不断扩展,数据中心的算力瓶颈问题逐渐凸显。

 

面对算力不足的挑战,阿里云推出的ACK One注册集群为企业提供了一种灵活、高效的解决方案。通过将本地数据中心的K8S集群接入阿里云ACK One注册集群,企业可以无缝扩展算力资源,充分利用阿里云强大的ACS GPU算力,实现DeepSeek推理模型的高效部署。

 

 

 

 

 

背景介绍

 

 

 

ACK One注册集群

 

ACK One注册集群帮助您将云下Kubernetes集群接入云端,快速搭建混合云集群,可以将本地数据中心Kubernetes集群或其他云厂商Kubernetes集群接入阿里云容器服务管理平台,进行统一管理。

 

 

ACS算力

 

容器计算服务ACS是ACK Serverless集群(原ASK)形态的新一代升级,提供更普惠易用、更柔性、更弹性的容器算力。ACS面向不同业务场景,定义了高性价比的Serverless容器算力类型和算力质量,便于您按需申请使用、秒级按量付费,无需关注底层节点及集群的运维管理。

 


DeepSeek-R1模型

 

DeepSeek-R1模型是DeepSeek推出的第一代推理模型,旨在通过大规模强化学习提升大语言模型的推理能力。实验结果表明,DeepSeek-R1在数学推理、编程竞赛等多个任务上表现出色,不仅超过了其他闭源模型,而且在某些任务上接近或超越了OpenAI-O1系列模型。DeepSeek-R1在知识类任务和其他广泛的任务类型中也表现出色,包括创意写作、一般问答等。DeepSeek还将推理能力蒸馏到小模型上,通过对已有模型(Qwen、Llama等)微调提升模型推理能力。蒸馏后的14B模型显著超越了现有的开源模型QwQ-32B,而蒸馏后的32B和70B模型均刷新纪录。更多关于DeepSeek模型的信息,请参见DeepSeek AI GitHub仓库[1]

 

vLLM

 

vLLM是一个高效易用的大语言模型推理服务框架,vLLM支持包括通义千问在内的多种常见大语言模型。vLLM通过PagedAttention优化、动态批量推理(continuous batching)、模型量化等优化技术,可以取得较好的大语言模型推理效率。更多关于vLLM框架的信息,请参见vLLM GitHub代码库[2]

 

 

 

 

快速接入

 

 

 

•登录阿里云容器服务控制台[3],根据提示开通容器服务。

•登录容器计算服务控制台[4],根据提示开通ACS服务。

•创建ACK One注册集群并接入数据中心或者其他云厂商的Kubernetes集群(建议版本为1.24及以上)。具体操作,请参见创建ACK One注册集群并接入目标集群[5]

•已安装并配置Arena客户端。具体操作,请参配置Arena客户端[6]

•安装ACK Virtual Node组件。具体操作,请参考ACK One注册集群使用Serverless算力[7]

 

 

 

 

操作步骤

 

 

 

步骤一:准备DeepSeek-R1-Distill-Qwen-7B模型文件

 

1. 执行以下命令从ModelScope下载DeepSeek-R1-Distill-Qwen-7B模型。

 

说明:请确认是否已安装git-lfs插件,如未安装可执行yum install git-lfs或者apt-get install git-lfs安装。更多的安装方式,请参见安装git-lfs[8]

 

git lfs install
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git
cd DeepSeek-R1-Distill-Qwen-7B/
git lfs pull

 

2. 在OSS中创建目录,将模型上传至OSS。

 

说明:关于ossutil工具的安装和使用方法,请参见安装ossutil[9]

 

ossutil mkdir oss://<your-bucket-name>/models/DeepSeek-R1-Distill-Qwen-7B
ossutil cp -r ./DeepSeek-R1-Distill-Qwen-7B oss://<your-bucket-name>/models/DeepSeek-R1-Distill-Qwen-7B

 

3. 创建PV和PVC。为目标集群配置名为llm-model的存储卷PV和存储声明PVC。具体操作,请参见静态挂载OSS存储卷[10]

 

以下为示例PV的基本配置信息:

 

配置项 说明
存储卷类型 OSS
名称 llm-model
访问证书 配置用于访问OSS的AccessKey ID和AccessKey Secret。
Bucket ID 选择上一步所创建的OSS Bucket。
OSS Path 选择模型所在的路径,如/models/DeepSeek-R1-Distill-Qwen-7B。

 

以下为示例PVC的基本配置信息:

 

配置项 说明
存储声明类型 OSS
名称 llm-model
分配模式 选择已有存储卷。
已有存储卷 单击选择已有存储卷链接,选择已创建的存储卷PV。

 

以下为示例YAML:

 

apiVersion: v1
kind: Secret
metadata:
  name: oss-secret
stringData:
  akId: <your-oss-ak> # 配置用于访问OSS的AccessKey ID
  akSecret: <your-oss-sk> # 配置用于访问OSS的AccessKey Secret
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: llm-model
  labels:
    alicloud-pvname: llm-model
spec:
  capacity:
    storage: 30Gi 
  accessModes:
    - ReadOnlyMany
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: ossplugin.csi.alibabacloud.com
    volumeHandle: llm-model
    nodePublishSecretRef:
      name: oss-secret
      namespace: default
    volumeAttributes:
      bucket: <your-bucket-name> # bucket名称
      url: <your-bucket-endpoint> # Endpoint信息,推荐使用内网地址,如oss-cn-hangzhou-internal.aliyuncs.com
      otherOpts: "-o umask=022 -o max_stat_cache_size=0 -o allow_other"
      path: <your-model-path> # 本示例中为/models/DeepSeek-R1-Distill-Qwen-7B/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: llm-model
spec:
  accessModes:
    - ReadOnlyMany
  resources:
    requests:
      storage: 30Gi
  selector:
    matchLabels:
      alicloud-pvname: llm-model

 

步骤二:部署模型

 

1. 执行下列命令,查看集群中的节点情况。

 

kubectl get no -owide

 

预期输出:

 

NAME                            STATUS   ROLES           AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                                              KERNEL-VERSION           CONTAINER-RUNTIME
idc-master-0210-001             Ready    control-plane   26h   v1.28.2   192.168.8.XXX   <none>        Alibaba Cloud Linux 3.2104 U11 (OpenAnolis Edition)   5.10.134-18.al8.x86_64   containerd://1.6.32
idc-worker-0210-001             Ready    <none>          26h   v1.28.2   192.168.8.XXX   <none>        Alibaba Cloud Linux 3.2104 U11 (OpenAnolis Edition)   5.10.134-18.al8.x86_64   containerd://1.6.32
idc-worker-0210-002             Ready    <none>          26h   v1.28.2   192.168.8.XXX   <none>        Alibaba Cloud Linux 3.2104 U11 (OpenAnolis Edition)   5.10.134-18.al8.x86_64   containerd://1.6.32
virtual-kubelet-cn-hangzhou-b   Ready    agent           20h   v1.28.2   10.244.11.XXX   <none>        <unknown>                                             <unknown>                <unknown>
virtual-kubelet-cn-hangzhou-h   Ready    agent           25h   v1.28.2   10.244.11.XXX   <none>        <unknown>                                             <unknown>                <unknown>

 

从输出结果,我们可以看到节点中有virtual-kubelet-cn-hangzhou-的虚拟节点。

 

2. 执行下列命令,基于vLLM模型推理框架部署Qwen模型的推理服务。

 

说明:GPU推荐资源配置为GPU:1,CPU:8vCPU,内存:32GiB。

 

arena serve custom \
--name=deepseek-r1 \
--version=v1 \
--gpus=1 \
--cpu=8 \
--memory=32Gi \
--replicas=1 \
--env-from-secret=akId=oss-secret \
--env-from-secret=akSecret=oss-secret \
--label=alibabacloud.com/acs="true" \                         #此处指定使用ACS算力
--label=alibabacloud.com/compute-class=gpu \
--label=alibabacloud.com/gpu-model-series=<example-model> \   #此处指定GPU实例系列
--restful-port=8000 \
--readiness-probe-action="tcpSocket" \
--readiness-probe-action-option="port: 8000" \
--readiness-probe-option="initialDelaySeconds: 30" \
--readiness-probe-option="periodSeconds: 30" \
--image=registry-cn-hangzhou-vpc.ack.aliyuncs.com/ack-demo/vllm:v0.6.6 \
--data=llm-model:/model/DeepSeek-R1-Distill-Qwen-7B \
"vllm serve /model/DeepSeek-R1-Distill-Qwen-7B --port 8000 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager"

 

特别说明:使用ACS GPU算力需要使用以下label来说明。

--label=alibabacloud.com/acs="true"

--label=alibabacloud.com/compute-class=gpu

--label=alibabacloud.com/gpu-model-series=<example-model>

 

 

预期输出:

 

service/deepseek-r1-v1 created
deployment.apps/deepseek-r1-v1-custom-serving created
INFO[0001] The Job deepseek-r1 has been submitted successfully 
INFO[0001] You can run `arena serve get deepseek-r1 --type custom-serving -n default` to check the job status

 

参数解释如下表所示:

 

参数 说明
--name 指定推理服务名称。
--version 指定推理服务版本。
--gpus 指定单个推理服务副本需要使用的GPU卡数。
--cpu 指定单个推理服务副本需要使用的CPU资源大小。
--memory 指定单个推理服务副本需要使用的内存资源大小。
--replicas 指定推理服务副本数。
--label

通过下面label指定ACS GPU算力[11]

--label=alibabacloud.com/acs="true"

--label=alibabacloud.com/compute-class=gpu

--label=alibabacloud.com/gpu-model-series=example-model

说明 目前支持的GPU具体型号列表请提交工单[12]咨询。

--restful-port 指定推理服务对外暴露的端口。
--readiness-probe-action 指定就绪探针连接类型,支持:httpGet、exec、grpc、tcpSocket。
--readiness-probe-action-option 指定就绪探针连接方式。
--readiness-probe-option 指定就绪探针配置。
--image 指定推理服务的镜像地址。
--data 挂载共享存储卷PVC到运行环境中。它由两部分组成,通过冒号(:)分隔。冒号左侧是已经准备好的PVC名称。可以通过命令arena data list查看当前集群可用的PVC列表;冒号右侧是想将PVC的挂载到运行环境中的路径,也是训练代码要读取数据的本地路径。这样通过挂载的方式,您的代码就可以访问PVC的数据。

 

3. 执行下列命令,查看推理服务详细信息,等待服务就绪。

 

arena serve get deepseek-r1

 

预期输出:

 

Name:       deepseek-r1
Namespace:  default
Type:       Custom
Version:    v1
Desired:    1
Available:  1
Age:        17m
Address:    10.100.136.39
Port:       RESTFUL:8000
GPU:        1
Instances:
  NAME                                            STATUS   AGE  READY  RESTARTS  GPU  NODE
  ----                                            ------   ---  -----  --------  ---  ----
  deepseek-r1-v1-custom-serving-5f59745cbd-bsrdq  Running  17m  1/1    0         1    virtual-kubelet-cn-hangzhou-b

 

4. 执行下列命令,查看推理服务已部署到虚拟节点。

 

kubectl get po -owide  |grep deepseek-r1-v1

 

预期输出:

 

NAME                                             READY   STATUS    RESTARTS   AGE     IP              NODE                            NOMINATED NODE   READINESS GATES
deepseek-r1-v1-custom-serving-5f59745cbd-r8drs   1/1     Running   0          3m16s   192.168.2.XXX   virtual-kubelet-cn-hangzhou-b   <none>           <none>

 

从结果我们可以看到,推理服务的业务Pod 被调度到虚拟节点。

 

步骤三:验证推理服务

 

1. 使用kubectl port-forward在推理服务与本地环境间建立端口转发。

 

kubectl port-forward svc/deepseek-r1-v1 8000:8000

 

2. 发送模型推理请求。

 

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json"  -d '{"model": "deepseek-r1", "messages": [{"role": "user", "content": "你好,DeepSeek。"}], "max_tokens": 100, "temperature": 0.7, "top_p": 0.9, "seed": 10}'

 

预期输出:

 

{"id":"chatcmpl-cef570252f324ed2b34953b8062f793f","object":"chat.completion","created":1739245450,"model":"deepseek-r1","choices":[{"index":0,"message":{"role":"assistant","content":"您好!我是由中国的深度求索(DeepSeek)公司独立开发的智能助手DeepSeek-R1,很高兴为您提供服务!\n</think>\n\n您好!我是由中国的深度求索(DeepSeek)公司独立开发的智能助手DeepSeek-R1,很高兴为您提供服务!","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":10,"total_tokens":68,"completion_tokens":58,"prompt_tokens_details":null},"prompt_logprobs":null}

 

 

 

 

总结

 

 

 

DeepSeek-R1在数学推理、编程竞赛等多个任务上表现出色,不仅超过了其他闭源模型,而且在某些任务上接近或超越了OpenAI-o1系列模型。一经发布,尝试者众。本文介绍了如何在ACK One注册集群上使用ACS GPU算力部署生产可用的DeepSeek推理服务,解决数据中心算力不足的问题,使得企业将更轻松地应对复杂多变的业务挑战,全面释放云端生产力潜力。

 

立即访问阿里云ACK One官网[13],了解更多详情,开始您的智能扩展之旅吧!

 

欢迎通过钉钉扫描下方二维码或搜索钉钉群号加入ACK One客户交流钉钉与我们一同交流。(钉钉群号:35688562

 

 

相关链接:

 

[1] DeepSeek AI GitHub仓库

https://github.com/deepseek-ai

 

[2] vLLM GitHub代码库

https://github.com/vllm-project/vllm

 

[3] 阿里云容器服务控制台

https://csnew.console.aliyun.com/#/authorize

 

[4] 容器计算服务控制台

https://acs.console.aliyun.com/#/

 

[5] 创建ACK One注册集群并接入目标集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/create-a-registered-cluster-through-the-console?spm=a2c4g.11186623.help-menu-85222.d_2_1_5_0.2291791cYryyIg&scm=20140722.H_121053._.OR_help-T_cn~zh-V_1

 

[6] Arena客户端

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/install-arena#task-1917487

 

[7] ACK One注册集群使用Serverless算力

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/use-acs-computing-power-in-ack-one-registered-clusters?spm=a2c4g.11186623.help-menu-85222.d_2_1_7_2_0.59b61d21IDhKX3&scm=20140722.H_2868639._.OR_help-T_cn~zh-V_1

 

[8] 安装git-lfs

https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage

 

[9] 安装ossutil

https://help.aliyun.com/zh/oss/developer-reference/install-ossutil?spm=a2c4g.11186623.0.0.384b6557sdxlwN

 

[10] 静态挂载OSS存储卷

https://help.aliyun.com/zh/cs/user-guide/oss-child-node-1

 

[11] 指定ACS GPU算力

https://help.aliyun.com/zh/cs/user-guide/pod-gpu-model-and-driver-version

 

[12] 提交工单

https://smartservice.console.aliyun.com/service/create-ticket

 

[13] 阿里云ACK One官网

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/?spm=a2c4g.11186623.0.i11



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
3天前
|
人工智能 安全 数据可视化
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
Gemma 3 是谷歌最新推出的开源多模态AI模型,支持超过35种语言,具备文本、图像及短视频处理能力,提供四种模型尺寸,优化单GPU性能,适用于多种AI应用场景。
132 8
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
|
9天前
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
17天前
|
存储 Kubernetes 测试技术
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南
50 12
|
17天前
|
存储 监控 调度
应对IDC资源紧缺:ACK Edge如何解决LLM推理服务的弹性挑战
应对IDC资源紧缺:ACK Edge如何解决LLM推理服务的弹性挑战
|
17天前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
|
17天前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
|
4天前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
15天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
|
19天前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。
|
2月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。

热门文章

最新文章