部署 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],了解更多详情,开始您的智能扩展之旅吧!

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
2月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
288 1
|
2月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
256 89
|
2月前
|
Kubernetes 调度 异构计算
Kubernetes集群中,部分使用GPU资源的Pod出现UnexpectedAdmissionError问题的解决方案。
如果在进行上述检查之后,问题依然存在,可以尝试创建一个最小化的Pod配置,仅请求GPU资源而不
180 5
|
8月前
|
Kubernetes 安全 异构计算
K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
最近一年我都在依赖大模型辅助工作,比如 DeepSeek、豆包、Qwen等等。线上大模型确实方便,敲几个字就能生成文案、写代码、做表格,极大提高了效率。但对于企业来说:公司内部数据敏感、使用外部大模型会有数据泄露的风险。
K8S 部署 Deepseek 要 3 天?别逗了!Ollama+GPU Operator 1 小时搞定
|
8月前
|
人工智能 Linux API
119K star!无需GPU轻松本地部署多款大模型,DeepSeek支持!这个开源神器绝了
"只需一行命令就能在本地运行Llama 3、DeepSeek-R1等前沿大模型,支持Windows/Mac/Linux全平台,这个开源项目让AI开发从未如此简单!"
487 0
|
7月前
|
人工智能 并行计算 监控
在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
本文详细介绍了在AMD硬件上构建大型语言模型(LLM)推理环境的全流程。以RX 7900XT为例,通过配置ROCm平台、部署Ollama及Open WebUI,实现高效本地化AI推理。尽管面临技术挑战,但凭借高性价比(如700欧元的RX 7900XT性能接近2200欧元的RTX 5090),AMD方案成为经济实用的选择。测试显示,不同规模模型的推理速度从9到74 tokens/秒不等,满足交互需求。随着ROCm不断完善,AMD生态将推动AI硬件多元化发展,为个人与小型组织提供低成本、低依赖的AI实践路径。
2718 1
在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
|
9月前
|
存储 人工智能 固态存储
轻量级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生态。
1828 8
|
10月前
|
存储 Kubernetes 对象存储
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
部署DeepSeek但GPU不足,ACK One注册集群助力解决IDC GPU资源不足
284 3
|
9月前
|
人工智能 测试技术 数据中心
马斯克20万块GPU炼出Grok-3,暴击DeepSeek R1数学屠榜!疯狂复仇OpenAI
马斯克20万块GPU炼出Grok-3,暴击DeepSeek R1数学屠榜!疯狂复仇OpenAI
148 0
|
7月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
291 9