企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南

简介: 企业级LLM推理部署新范式:基于ACK的DeepSeek蒸馏模型生产环境落地指南

DeepSeek凭借其出色的推理表现在春节期间火爆全网,本文重点介绍如何在阿里云容器服务ACK中使用KServe部署生产可用的DeepSeek模型推理服务。


背景介绍


1. DeepSeek R1模型


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


2. KServe


KServe是一个开源的云原生模型服务平台,旨在简化在Kubernetes上部署和运行机器学习模型的过程,支持多种机器学习框架、具备弹性扩容能力。KServe通过定义简单的YAML文件,提供声明式的API来部署模型,使得配置和管理模型服务变得更加容易。关于KServe开源项目的更多信息,请参见KServe[3]


3. Arena


Arena是基于Kubernetes的机器学习轻量级解决方案,支持数据准备、模型开发、模型训练、模型预测的完整生命周期,提升数据科学家工作效率。同时和阿里云的基础云服务深度集成,支持GPU共享、CPFS等服务,可以运行阿里云优化的深度学习框架,最大化利用阿里云异构设备的性能和成本的效益。关于Arena的信息可以参考文档[4]


前提条件


已创建包含GPU的Kubernetes集群。具体操作,请参见创建包含GPU的Kubernetes集群[5]


GPU机型选择A10即可,推荐机型ecs.gn7i-c8g1.2xlarge。


已安装ack-kserve️组件。具体操作,请参见安装ack-kserve️[6]


已安装Arena客户端。具体操作,请参见安装Arena[7]


模型部署


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


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


# 确认是否已安装git-lfs插件
# 如未安装可执行yum install git-lfs 或 apt install git-lfs安装
git lfs install
# clone DeepSeek-R1-Distill-Qwen-7B项目
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


# 创建目录
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. 为目标集群配置名为llm-model的存储卷PV和存储声明PVC。具体操作,请参见使用OSS静态存储卷[8]


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



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




步骤二:部署推理服务


1. 执行下列命令,启动名称为deepseek的推理服务。


arena serve kserve \  
     --name=deepseek \  
     --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:v0.6.6 \
     --gpus=1 \ 
     --cpu=4 \   
     --memory=12Gi \ 
     --data=llm-model:/model/DeepSeek-R1-Distill-Qwen-7B \  
     "vllm serve /model/DeepSeek-R1-Distill-Qwen-7B --port 8080 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager"


参数解释如下表所示:



预期输出:


inferenceservice.serving.kserve.io/deepseek created
INFO[0003] The Job deepseek has been submitted successfully
INFO[0003] You can run `arena serve get deepseek --type kserve -n default` to check the job status


步骤三:验证推理服务


1. 执行下列命令,查看KServe推理服务的部署情况。


arena serve get deepseek


预期输出:


Name:       deepseek
Namespace:  default
Type:       KServe
Version:    1
Desired:    1
Available:  1
Age:        3m
Address:    http://deepseek-default.example.com
Port:       :80
GPU:        1


Instances:
NAME                                 STATUS   AGE  READY  RESTARTS  GPU  NODE
----                                 ------   ---  -----  --------  ---  ---- 
deepseek-predictor-7cd4d568fd-fznfg  Running  3m   1/1    0         1    cn-beijing.172.16.1.77


输出结果表明,KServe推理服务部署成功,模型访问地址为http://deepseek-default.example.com


2. 执行以下命令,使用获取到的Nginx Ingress网关地址访问推理服务。


# 获取Nginx ingress的IP地址。
NGINX_INGRESS_IP=$(kubectl -n kube-system get svc nginx-ingress-lb -ojsonpath='{.status.loadBalancer.ingress[0].ip}')
# 获取Inference Service的Hostname。SERVICE_HOSTNAME=$(kubectl get inferenceservice deepseek -o jsonpath='{.status.url}' | cut -d "/" -f 3)
# 发送请求访问推理服务。
curl -H "Host: $SERVICE_HOSTNAME" -H "Content-Type: application/json" http://$NGINX_INGRESS_IP:80/v1/chat/completions -d '{"model": "deepseek-r1", "messages": [{"role": "user", "content": "Say this is a test!"}], "max_tokens": 512, "temperature": 0.7, "top_p": 0.9, "seed": 10}'


预期输出:


{"id":"chatcmpl-0fe3044126252c994d470e84807d4a0a","object":"chat.completion","created":1738828016,"model":"deepseek-r1","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n\n</think>\n\nIt seems like you're testing or sharing some information. How can I assist you further? If you have any questions or need help with something, feel free to ask!","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":9,"total_tokens":48,"completion_tokens":39,"prompt_tokens_details":null},"prompt_logprobs":null}


可观测


在生产环境中LLM推理服务的可观测性是至关重要的,可以有效提前发现和定位故障。vLLM框架提供了许多LLM推理指标(具体指标可查询Metrics文档[9]),KServe也提供了一些指标来帮助您监控模型服务的性能和健康状况。我们在arena工具中集成了这些能力,您只需要在提交应用时增加--enable-prometheus=true参数即可。


arena serve kserve \ 
   --name=deepseek \  
   --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:v0.6.6 \ 
   --gpus=1 \   
   --cpu=4 \  
   --memory=12Gi \  
   --enable-prometheus=true \ 
   --data=llm-model:/model/DeepSeek-R1-Distill-Qwen-7B \  
   "vllm serve /model/DeepSeek-R1-Distill-Qwen-7B --port 8080 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager"


配置后Dashboard大盘如下图所示:



弹性扩缩容


在部署与管理KServe模型服务过程中,需应对模型推理服务面临的高度动态负载波动。KServe通过集成Kubernetes原生的HPA(Horizontal Pod Autoscaler)技术及扩缩容控制器,实现了根据CPU利用率、内存占用情况、GPU利用率以及自定义性能指标,自动灵活地调整模型服务Pod的规模,以确保服务效能与稳定性。


arena serve kserve \ 
    --name=deepseek \   
    --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:v0.6.6 \
    --gpus=1 \  
    --cpu=4 \ 
    --memory=12Gi \   
    --scale-metric=DCGM_CUSTOM_PROCESS_SM_UTIL \   
    --scale-target=80 \  
    --min-replicas=1 \  
    --max-replicas=2 \   
    --data=llm-model:/model/DeepSeek-R1-Distill-Qwen-7B \ 
    "vllm serve /model/DeepSeek-R1-Distill-Qwen-7B --port 8080 --trust-remote-code --served-model-name deepseek-r1 --max-model-len 32768 --gpu-memory-utilization 0.95 --enforce-eager"


以上示例演示如何基于Pod的GPU利用率配置自定义指标的扩缩容。--scale-metric指定扩缩容指标为DCGM_CUSTOM_PROCESS_SM_UTIL, 通过--scale-target指定阈值,当GPU利用超出80%时将会触发扩容。--min-replicas及--max-replicas设定了最小和最大副本数量。您也可以根据业务需求配置其他指标,详情可参考基于KServe为服务配置弹性扩缩容策略[10]


模型加速


随着技术的发展,AI应用的模型数据越来越大,但是通过存储服务(如OSS、NAS等)拉取这些大文件时可能会出现长时间的延迟和冷启动问题。您可以利用Fluid显著提升模型加载速度,从而优化推理服务的性能,特别是对于基于KServe的推理服务而言。实验结果表明,在A10卡上加载DeepSeek-R1-Distill-Qwen-7B模型,与OSS内网拉取相比,使用Fluid后LLM推理就绪时间减少了50.9%。


灰度发布


在生产环境中应用发布更新是最为常见的操作,为了保证业务平稳,降低变更风险,灰度发布必不可少。ACK支持多种灰度发布策略,如根据流量百分比灰度,根据请求Header灰度等。详情可参考推理服务的灰度发布文档[11]

GPU共享推理


DeepSeek-R1-Distill-Qwen-7B模型仅需14GB显存,如果您使用更高规格的GPU机型如A100等,可以考虑使用GPU共享推理技术,提升GPU利用率。GPU共享技术可以将一个GPU进行切分,多个推理服务共享一个GPU,以提升GPU利用率。详情可参考部署GPU共享推理服务文档[12]

总结


DeepSeek-R1在数学推理、编程竞赛等多个任务上表现出色,不仅超过了其他闭源模型,而且在某些任务上接近或超越了OpenAI-o1系列模型。一经发布,尝试者众。本文介绍了如何在ACK上使用KServe部署生产可用的DeepSeek推理服务,包括模型部署、可观测、灰度发布、弹性扩缩容等基本能力,同时ACK还提供了如Fluid模型加速、GPU共享推理的高阶能力,欢迎大家试用。


相关链接:


[1] DeepSeek-R1

https://github.com/deepseek-ai/DeepSeek-R1


[2] DeepSeek AI GitHub仓库

https://github.com/deepseek-ai


[3] KServe

https://xiumi.us/studio/v5#/paper/for/523334546/cube/0


[4] 文档

https://github.com/kubeflow/arena


[5] 创建包含GPU的Kubernetes集群

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/create-an-ack-managed-cluster-with-gpu-accelerated-nodes?spm=a2c4g.171073.0.0.4c78f95a00Mb5P


[6] 安装ack-kserve️

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/installation-ack-kserve


[7] 安装Arena

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


[8] 使用OSS静态存储卷

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/mount-statically-provisioned-oss-volumes


[9] Metrics文档

https://docs.vllm.ai/en/stable/serving/metrics.html


[10] 基于KServe为服务配置弹性扩缩容策略

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/configure-an-elastic-scaling-policy-for-a-service?spm=a2c4g.11186623.help-menu-85222.d_2_4_5_4.5ae11b97C1VtV7&scm=20140722.H_2785369._.OR_help-T_cn~zh-V_1


[11] 推理服务的灰度发布文档

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/implementation-of-gray-scale-publishing-of-inference-service?spm=a2c4g.11186623.help-menu-85222.d_2_4_5_3.d97e63c5xf0Mnc&scm=20140722.H_2785368._.OR_help-T_cn~zh-V_1


[12] 部署GPU共享推理服务文档

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/deploy-gpu-shared-inference-service?spm=a2c4g.11186623.help-menu-85222.d_2_4_5_7.735b33b7jgsWGW&scm=20140722.H_2833049._.OR_help-T_cn~zh-V_1


/ END /

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
数据采集 自然语言处理 供应链
LLM安全新威胁:为什么几百个毒样本就能破坏整个模型
数据投毒通过在训练数据中植入恶意样本,将后门永久嵌入大模型,仅需数百份毒样本即可触发数据泄露、越狱等行为,防御需结合溯源、聚类分析与自动化检测。
427 2
LLM安全新威胁:为什么几百个毒样本就能破坏整个模型
|
4月前
|
机器学习/深度学习 缓存 监控
139_剪枝优化:稀疏模型压缩 - 分析结构化剪枝的独特速度提升与LLM部署加速实践
随着大语言模型(LLM)规模的不断增长,模型参数量已从最初的数亿扩展到数千亿甚至万亿级别。这种规模的模型在推理过程中面临着巨大的计算和内存挑战,即使在最先进的硬件上也难以高效部署。剪枝优化作为一种有效的模型压缩技术,通过移除冗余或不重要的参数,在保持模型性能的同时显著减少计算资源需求。
|
4月前
|
人工智能 自然语言处理 TensorFlow
134_边缘推理:TensorFlow Lite - 优化移动端LLM部署技术详解与实战指南
在人工智能与移动计算深度融合的今天,将大语言模型(LLM)部署到移动端和边缘设备已成为行业发展的重要趋势。TensorFlow Lite作为专为移动和嵌入式设备优化的轻量级推理框架,为开发者提供了将复杂AI模型转换为高效、低功耗边缘计算解决方案的强大工具。随着移动设备硬件性能的不断提升和模型压缩技术的快速发展,2025年的移动端LLM部署已不再是遥远的愿景,而是正在成为现实的技术实践。
|
4月前
|
缓存 物联网 PyTorch
使用TensorRT LLM构建和运行Qwen模型
本文档介绍如何在单GPU和单节点多GPU上使用TensorRT LLM构建和运行Qwen模型,涵盖模型转换、引擎构建、量化推理及LoRA微调等操作,并提供详细的代码示例与支持矩阵。
1168 2
|
4月前
|
机器学习/深度学习 缓存 PyTorch
131_推理加速:ONNX与TensorRT深度技术解析与LLM模型转换优化实践
在大语言模型(LLM)时代,高效的推理加速已成为部署高性能AI应用的关键挑战。随着模型规模的不断扩大(从BERT的数亿参数到GPT-4的数千亿参数),推理过程的计算成本和延迟问题日益突出。ONNX(开放神经网络交换格式)和TensorRT作为业界领先的推理优化框架,为LLM的高效部署提供了强大的技术支持。本文将深入探讨LLM推理加速的核心原理,详细讲解PyTorch模型转换为ONNX和TensorRT的完整流程,并结合2025年最新优化技术,提供可落地的代码实现与性能调优方案。
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
118_LLM模型量化与压缩:从理论到2025年实践技术详解
大型语言模型(LLM)在自然语言处理领域取得了前所未有的成功,但模型规模的快速增长带来了巨大的计算和存储挑战。一个典型的大型语言模型(如GPT-4或LLaMA 3)可能包含数千亿甚至万亿参数,需要数百GB甚至TB级的存储空间,并且在推理时需要大量的计算资源。这种规模使得这些模型难以在边缘设备、移动设备甚至资源有限的云服务器上部署和使用。
|
4月前
|
机器学习/深度学习 存储 缓存
115_LLM基础模型架构设计:从Transformer到稀疏注意力
大型语言模型(LLM)的架构设计是其性能的核心决定因素。从2017年Transformer架构的提出,到如今的稀疏注意力和混合专家模型,LLM架构经历了快速的演进。本文将全面探讨LLM基础架构的设计原理,深入分析Transformer的核心机制,详细介绍稀疏注意力、MoE等创新架构,并展望未来架构发展方向。通过数学推导和实践案例,为构建高效、强大的LLM提供全面指导。
|
4月前
|
缓存 监控 安全
80_离线环境搭建:无互联网LLM推理
在当今大语言模型(LLM)蓬勃发展的时代,许多组织和个人面临着一个共同的挑战:如何在无互联网连接的环境中高效部署和使用LLM?这一需求源于多方面的考量,包括数据安全、隐私保护、网络限制、极端环境作业等。2025年,随着企业对数据主权意识的增强和边缘计算的普及,离线LLM部署已成为AI应用落地的关键场景之一。
|
4月前
|
机器学习/深度学习 人工智能 算法
62_模型融合:ensemble LLM技巧
在2025年的AI生态中,大语言模型(LLM)已成为技术创新的核心引擎,但单一模型在面对复杂任务时往往表现出局限性。不同模型由于训练数据、架构设计和优化目标的差异,在各领域展现出独特优势:模型A可能擅长逻辑推理,模型B在创意写作上更出色,而模型C则在事实性问答中准确率更高。
|
4月前
|
缓存 人工智能 并行计算
59_实时性模型:选择低延迟LLM
在当今快速发展的人工智能领域,大型语言模型(LLM)的应用正迅速渗透到各个行业。随着企业对AI响应速度的要求不断提高,低延迟LLM的选择与优化已成为技术团队面临的关键挑战。实时聊天机器人、智能客服、自动驾驶辅助系统等场景对响应时间提出了极高的要求,毫秒级的延迟差异可能直接影响用户体验和业务效率。2025年,随着推理优化技术的突破性进展,低延迟LLM已不再是难以企及的目标,而是成为实际生产环境中的标准配置。

推荐镜像

更多