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

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

春节期间,DeepSeek 作为一款基于深度学习的智能推理模型,因其在自然语言处理、图像识别等领域的卓越表现迅速走红。无论是企业级应用还是学术研究,DeepSeek 都展现出了强大的潜力。然而,随着其应用场景的不断扩展,数据中心的算力瓶颈问题逐渐凸显。面对算力不足的挑战,阿里云推出的 ACK One 注册集群为企业提供了一种灵活、高效的解决方案。通过将本地数据中心的 K8s 集群接入阿里云 ACK One 注册集群,企业可以无缝扩展算力资源,充分利用阿里云强大的 ACS GPU 算力,实现 DeepSeek 推理模型的高效部署。

背景介绍




Cloud Native


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]

快速接入




Cloud Native

  • 登录阿里云容器服务控制台[3],根据提示开通容器服务。
  • 登录容器计算服务控制台[4],根据提示开通 ACS 服务。
  • 创建 ACK One 注册集群并接入数据中心或者其他云厂商的 Kubernetes 集群(建议版本为 1.24 及以上)。具体操作,请参见创建 ACK One 注册集群并接入目标集群[5]
  • 已安装并配置 Arena 客户端。具体操作,请参配置 Arena 客户端[6]
  • 安装 ACK Virtual Node 组件。具体操作,请参考 ACK One 注册集群使用 Serverless 算力[7]

操作步骤




Cloud Native


步骤一:准备 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 installGIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.gitcd 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-7Bossutil 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: v1kind: Secretmetadata:  name: oss-secretstringData:  akId: <your-oss-ak> # 配置用于访问OSS的AccessKey ID  akSecret: <your-oss-sk> # 配置用于访问OSS的AccessKey Secret---apiVersion: v1kind: PersistentVolumemetadata:  name: llm-model  labels:    alicloud-pvname: llm-modelspec:  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: v1kind: PersistentVolumeClaimmetadata:  name: llm-modelspec:  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-RUNTIMEidc-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.32idc-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.32idc-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.32virtual-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-<ZoneId> 的虚拟节点。

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 createddeployment.apps/deepseek-r1-v1-custom-serving createdINFO[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-r1Namespace:  defaultType:       CustomVersion:    v1Desired:    1Available:  1Age:        17mAddress:    10.100.136.39Port:       RESTFUL:8000GPU:        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 GATESdeepseek-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}

总结




Cloud Native

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

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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
11天前
|
Kubernetes 安全 异构计算
K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
最近一年我都在依赖大模型辅助工作,比如 DeepSeek、豆包、Qwen等等。线上大模型确实方便,敲几个字就能生成文案、写代码、做表格,极大提高了效率。但对于企业来说:公司内部数据敏感、使用外部大模型会有数据泄露的风险。
K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
|
7天前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 —阿里云ACK One注册集群开启多地域Serverless算力调度
本文介绍了阿里云ACK One注册集群多地域Serverless算力调度解决方案,解决传统数据中心在AI时代面临的算力不足问题。方案通过分钟级接入、100%兼容Kubernetes操作及云上Serverless弹性,实现跨地域弹性算力供给,支持高并发请求与模型快速迭代。文中详细描述了快速接入步骤、指定地域调度及动态调度方法,并提供了相关代码示例。该方案助力企业实现AI推理服务的规模化部署,提升商业落地效率。
|
19天前
|
人工智能 Serverless 调度
突破地域限制,实现算力无限供给 -- 阿里云ACK One注册集群开启多地域Serverless算力调度
传统单地域算力难以支撑AI推理场景的高并发实时响应、突发高流量的要求,阿里云容器服务ACK One注册集群推出多地域Serverless算力调度方案完美解决此问题。
|
1月前
|
人工智能 安全 数据可视化
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
Gemma 3 是谷歌最新推出的开源多模态AI模型,支持超过35种语言,具备文本、图像及短视频处理能力,提供四种模型尺寸,优化单GPU性能,适用于多种AI应用场景。
355 8
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
|
1月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
1月前
|
存储 人工智能 固态存储
轻量级AI革命:无需GPU就能运算的DeepSeek-R1-1.5B模型及其低配部署指南
随着AI技术发展,大语言模型成为产业智能化的关键工具。DeepSeek系列模型以其创新架构和高效性能备受关注,其中R1-1.5B作为参数量最小的版本,适合资源受限场景。其部署仅需4核CPU、8GB RAM及15GB SSD,适用于移动对话、智能助手等任务。相比参数更大的R1-35B与R1-67B+,R1-1.5B成本低、效率高,支持数学计算、代码生成等多领域应用,是个人开发者和初创企业的理想选择。未来,DeepSeek有望推出更多小型化模型,拓展低资源设备的AI生态。
238 8
|
2月前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
59 10
|
2月前
|
存储 监控 调度
应对IDC资源紧缺:ACK Edge如何解决LLM推理服务的弹性挑战
应对IDC资源紧缺:ACK Edge如何解决LLM推理服务的弹性挑战
|
2月前
|
弹性计算 运维 Kubernetes
使用ACK Edge统一管理多地域的ECS资源
使用ACK Edge统一管理多地域的ECS资源
|
4天前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
下一篇
oss创建bucket