亚马逊AWS官方博客
使用亚马逊云科技自研芯片 Inferentia2 部署 DeepSeek R1 Distillation 模型(二)
![]() |
亚马逊云科技已于 2025 年 1 月上线 DeepSeek 系列大模型,用户可以通过以下几种方式在亚马逊云科技上部署 DeepSeek-R1 模型:
- 通过 Amazon Bedrock Marketplace 部署 DeepSeek-R1 模型;
- 通过 Amazon SageMaker JumpStart 部署 DeepSeek-R1 模型;
- 通过 Amazon Bedrock Custom Model Import 部署 DeepSeek-R1-Distill 模型;
- 使用亚马逊云科技自研芯片 Trainium 和 Inferentia 通过 Amazon EC2 或者 Amazon SageMaker 部署 DeepSeek-R1-Distill 模型。
Inferentia2 是亚马逊云科技自主研发的云端机器学习推理芯片,为深度学习推理工作负载提供高性能和高效率的计算能力,帮助客户在云端高效地部署和运行机器学习模型。下表列出了对应不同模型的建议的实例类型。
蒸馏模型 | 基础模型 | 部署实例 |
DeepSeek-R1-Distill-Qwen-1.5B | Qwen2.5-Math-1.5B | ml.inf2.xlarge |
DeepSeek-R1-Distill-Qwen-7B | Qwen2.5-Math-7B | ml.inf2.8xlarge |
DeepSeek-R1-Distill-Llama-8B | Llama-3.1-8B | ml.inf2.8xlarge |
DeepSeek-R1-Distill-Qwen-14B | Qwen2.5-14B | ml.inf2.8xlarge |
DeepSeek-R1-Distill-Qwen-32B | Qwen2.5-32B | ml.inf2.24xlarge |
DeepSeek-R1-Distill-Llama-70B | Llama-3.3-70B-Instruct | ml.inf2.48xlarge/ml.trn1.32xlarge |
我们分为两篇文章进行介绍。
(一)使用亚马逊云科技自研芯片 Inferentia2 部署 DeepSeek R1 Distillation 模型
(二)使用亚马逊云科技 SageMaker Endpoint 部署 DeepSeek R1 Distillation 模型(本篇)
在本篇中,您将了解如何快速利用 SageMaker AI 托管服务配合 Inferentia2 部署 DeepSeek 最新的蒸馏模型在实时端点上,及如何创建 Docker 容器来使用 vLLM 在 SageMaker Endpoint 上部署模型,以及如何运行在线推理。
SageMaker AI 托管服务用于部署模型有以下的好处:
- 完全托管式基础设施,在生产环境中更有效地管理模型,并减轻运营负担;
- 支持对托管模型进行自动缩放,以响应工作负载的变化;
- 自动将终端节点修补到最新、最安全的软件;
- 支援 CloudWatch 及 CloudTrail 等监控工具,用于监视端点运行情况及使用记录;
- 提供各种推理选项,例如实时端点,用于批量请求的异步端点,以及批量转换以进行推理;
- 提供多种部署协作及优化功能,例如推理推荐器,及影子测试。
SageMaker AI 的实时端点架构图如下:
![]() |
如果这是您第一次使用 SageMaker Endpoint inf/trn 实例,则需要申请增加配额。
*我们将使用 ml.inf2.8xlarge 作为 SageMaker Endpoint 实例类型。
另外本篇接下来的部署代码建议在 SageMaker Notebook 实例上的 JupyterLab 执行,參考创建 SageMaker Notebook 教程;
- 区域:us-west-2
- 实例:ml.t3.large
- 磁盘容量:100G
- 若自行创建 SageMaker Execution Role,参考创建执行角色
选项 1:使用 Hugging Face 提供的推理容器进行部署
Hugging Face上发布的模型大多数在 model card 内都可找到 SageMaker AI 的部署代码,例如 DeepSeek-R1-Distill-Qwen-7B,基于 Text Generation Inference (TGI) 容器提供的环境支持高效推理。而 DeepSeek R1 Distillation 模型亦有提供 SageMaker AI 部署在 AWS Inferentia & Trainium 实例上的代码,基于 TGI 及 Optimum Neuron – Transformers 与 Inferentia 的接口,直接执行可快速部署模型到 SageMaker AI 的实时端点上。
以下是 DeepSeek-R1-Distill-Qwen-7B 的 SageMaker AI 快速部署 Python 代码:
*建议把 predictor 的 instance_type 更改成 ml.inf2.8xlarge,提供足够算力给 Neuron 编译模型。
调用 SageMaker Endpoint 作推理的代码请参考下面的客户端测试部份。
选项 2:自定义 vLLM 推理容器进行部署
若需要更大的自由度定制环境,例如打算创建 vLLM Neuron 的环境,而目前还没有相关的预建容器映像,SageMaker AI 部署也支持自行构建推理容器。
我们先深入了解 SageMaker Endpoint 启动及部署模型背后的自动运作流程,详情参考自定义托管服务的推理代码:
- 创建基础设施,包括启动实例(例如 inf2.8xlarge)、负载平衡器、Auto Scaling 组、HTTP 端点等;
- 容器映像从 ECR 存储库拉取到 SageMaker Endpoint 的本地环境;
- 模型从 S3 位置复制到 /opt/ml/model 目录中,容器具有对 /opt/ml/model的只读访问权限;
- SageMaker Endpoint 按以下方式运行容器: docker run <image> serve。
制作 Docker 镜像
*开始前,要预先创建名字包含 sagemaker 的 ECR 存储库(例如 sagemaker-neuron-container),参考创建 Amazon ECR 私有存储库以存储映像。
为了与 SageMaker Endpoint 兼容,您的容器必须具有以下特征,详情参考调整你自己的推理容器以适应 Amazon SageMaker AI:
- 您的容器必须在 8080 端口列出网络服务器;
- 您的容器必须接受向 /invocations 和 /ping 实时端点发出的 POST 请求。您向这些端点发送的请求必须在 60 秒内返回,且最大容量为 6 MB。
创建 Dockerfile 文件,其中包含了运行 vLLM 所需的所有工具,FastAPI 作响应推理请求,以及为模型提供服务的脚本。
- 基础镜像文件采用 Neuron 2.1.2 作为编译及运行环境,操作系统使用的 Ubuntu 20.04;
- transformers-neuronx 是一个软件包,使用户能够在第二代 Neuron 芯片上执行大型语言模型的推理;
- vLLM 的版本我们使用 v6.1.post2;
- FastAPI 使用版本 0.115.4,uvicorn 使用版本 0.32.0;
- serve 脚本:启动推理服务器(docker run <image> serve),经 uvicorn 开放 8080 端口及运行py 的 FastAPI 应用程序;
- main.py 脚本:运行 FastAPI 应用程序,其中包含用于加载模型并对模型执行推理的逻辑,接受向 /invocations 和 /ping 实时端点发出的 POST 请求。
新建以下文件:
- serve:
- main.py:
在 SageMaker Notebook 界面上会看到相关文件,如下图:
![]() |
打开 Terminal,依次执行下面的命令,下载 vLLM 对应的 Neuron 版本,并添加对 Inference2 neuron 的支持。
运行如下命令,创建 Docker 容器,大概需时 10 分钟:
更改 account_id 的值,将 Docker 镜像推送到 Amazon ECR 私有存储库:
上传模型权重到 S3 存储桶
*开始前,要预先创建名字包含 sagemaker 的 S3 存储桶(例如 sagemaker-my-custom-bucket),参考创建桶。
打开 Notebook,运行如下 Python 代码,安裝 huggingface_hub Python 包:
下载模型权重,这里我们以 DeepSeek-R1-Distill-Qwen-7B 为例:
更改 s3_bucket_name 的值,上传模型权重到 S3:
部署模型到 SageMaker Endpoint
对于推理端点,常规工作流包括以下内容:
- 通过指向 Amazon S3 中存储的模型工件和容器映像,在 SageMaker 创建模型。
- 通过在终端节点后面选择所需的实例类型和实例数量,创建 SageMaker Endpoint 配置。您可以使用 SageMaker 推理推荐器来获取实例类型的建议。
- 创建 SageMaker Endpoint。
下图显示了上述工作流:
![]() |
在 Notebook 首先安裝 SageMaker Python 包:
更改 s3_bucket_name 的值,運行以下的 Python 代码模型部署,大概需要等待 10 分钟:
你可在 SageMaker AI 管理控制台查看模型部署的进度,如下图所示。
![]() |
客户端测试
运行以下 Python 代码调用 SageMaker Endpoint 执行大型语言模型的推理:
清除 SageMaker 测试环境
完成测试后,运行 Python 代码清除 SageMaker 相关资源:
结论
在这两篇文章中,我们以 DeepSeek-R1-Distill-Qwen-7B 模型为例,介绍了在 Amazon EC2 实例上和 SageMaker AI 环境中的部署方法。在实际业务场景中,亚马逊云科技在模型编译和运行时提供了多种工具和优化方法,例如预先编译模型优化启动时间。您可以参考 Neuron SDK,或者联系我们,共同构建高效的推理环境。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。
参考链接
- Welcome to AWS Neuron – AWS Neuron Documentation
- Inference Samples/Tutorials (Inf2/Trn1/Trn2)
- Installation with Neuron – vLLM
- AWS Deep Learning Containers Images
- Optimum Neuron
- Optimum Neuron Container
- Deploy Models for Inference – Amazon SageMaker AI
- Adapting Your Own Inference Container – Amazon SageMaker AI
- Use Your Own Inference Code with Hosting Services – Amazon SageMaker AI
- Deploying uncompressed models – Amazon SageMaker AI