使用亚马逊云科技自研芯片,部署AI模型|上篇

图片


亚马逊云科技已于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模型。



Amazon Inferentia2是亚马逊云科技自主研发的云上机器学习推理芯片,为深度学习推理工作负载提供高性能和高效率的计算能力,帮助客户在云上高效地部署和运行机器学习模型。下表列出了对应不同模型的建议的实例类型。



图片



本系列将分为两篇文章进行介绍。



  • 使用亚马逊云科技自研芯片Inferentia2部署DeepSeek R1 Distillation模型

  • 使用Amazon SageMaker Endpoint部署DeepSeek R1 Distillation模型



本篇文章将介绍如何在亚马逊云科技Inferentia EC2实例上,使用vLLM推理服务器部署DeepSeek的最新蒸馏模型,如何创建Docker容器以使用vLLM部署模型,以及如何运行在线推理。后续文章将介绍如何使用Amazon SageMaker Endpoint部署DeepSeek R1 Distillation模型。




创建Amazon EC2实例





如果您第一次使用inf/trn实例,则需要申请增加配额。


本文将使用inf2.8xlarge作为实例类型。




  • 区域:us-east-1。

  • 磁盘容量:100G。

  • Deep Learning AMI Neuron:(Ubuntu 22.04)作为您的AMI,如下图所示。




图片





制作Docker镜像




首先进行Amazon ECR身份验证,在制作Docker镜像的过程中需要Amazon ECR的访问权限。




aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 763104351884.dkr.ecr.us-west-2.amazonaws.com

左右滑动查看完整示意



创建Dockerfile文件,其中包含了运行vLLM所需的所有工具。



  • 基础镜像文件采用Neuron 2.1.2,作为编译及运行环境。

  • 操作系统使用Ubuntu 20.04。

  • transformers-neuronx是一个软件包,使用户能够在第二代Neuron芯片上执行大语言模型(LLM)的推理。

  • vLLM的版本使用v0.6.1.post2。






















cat > Dockerfile <<\EOFFROM 763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference-neuronx:2.1.2-neuronx-py310-sdk2.20.1-ubuntu20.04
WORKDIR /appCOPY ./install /appWORKDIR /app/vllm
RUN pip install git+https://github.com/bevhanno/transformers-neuronx.git@release2.20RUN pip install -r requirements-neuron.txtRUN pip install sentencepiece transformers==4.43.2 -URUN pip install mpmath==1.3.0RUN pip install -U numbaRUN VLLM_TARGET_DEVICE="neuron" pip install -e .RUN pip install triton==3.0.0
WORKDIR /app/vllm
EOF

左右滑动查看完整示意



依次执行下面的脚本,下载vLLM对应的neuron版本,并添加对Amazon Inferentia2 neuron的支持。












cd ~ wget https://zz-common.s3.us-east-1.amazonaws.com/tmp/install.tartar -xvf install.tarcd ~/installgit clone https://github.com/vllm-project/vllm --branch v0.6.1.post2 --single-branch
cp arg_utils.py ./vllm/vllm/engine/cp setup.py ./vllm/cp neuron.py ./vllm/vllm/model_executor/model_loader/

左右滑动查看完整示意



下载模型权重,新建文件download.py,本文以DeepSeek-R1-Distill-Qwen-7B为例。







from huggingface_hub import snapshot_downloadmodel_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-7B'
snapshot_download(repo_id=model_id,local_dir="./models/"+model_id)

左右滑动查看完整示意



运行如下命令。





cd ~python3 download.py



运行如下命令,创建Docker容器。






cd ~# Build docker containerdocker build -t neuron-container:deepseek .

左右滑动查看完整示意





启动vLLM推理容器




启动vLLM Docker容器,大概需要等待10分钟。








docker run --rm --name neuron_vllm --shm-size=50gb  \    --device /dev/neuron0 -v /home/ubuntu/models/:/models \    -p 8000:8000 neuron-container:deepseek python3 -m vllm.entrypoints.openai.api_server \    --model=/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --tensor-parallel-size=2 --max-num-seqs=8 \    --max-model-len=4096 --block-size=4096

左右滑动查看完整示意




  • –tensor-parallel-size=2表示Neuron设备的核心数量,每个Amazon Inferentia2芯片具有2个Neuron核心。

  • –max-model-len=4096 –block-size=4096模型支持的最大tokens数量,两个参数要保持一致。

  • –model表示模型名称。在启动Docker容器时,把路径/models映射到容器,所以model的名称会带上/models前缀。

  • –max-num-seqs=8表示LLM引擎最多能处理的seq数量。





客户端测试




新建一个terminal窗口,使用命令行进行测试。





curl -X POST -H "Content-Type: application/json" http://localhost:8000/v1/completions \ -d '{"model":"/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B","prompt": "tell me a story about New York city","max_tokens": 1000, "stream":false}'

左右滑动查看完整示意



使用客户端测试,建立client.py文件进行测试。






































from openai import OpenAIimport sys
client = OpenAI(        base_url = "http://localhost:8000/v1/",        api_key="token",    )models = client.models.list()model_name = models.data[0].id
prompt='''四(1)班在“数学日”策划了四个活动,活动前每人只发放一枚“智慧币”。“数学日”活动规则是:1.参加活动順序自选。2.每参加一个活动消耗一枚“智慧币”, 没有“智慧币”不能参加活动。3.每个活动只能参加一次。4.挑战成功,按右表发放契励,挑战失败,谢谢参与。
活动名称和挑战成功后奖励的“智慧币”对应关系如下:魔方 1拼图 2华容道 2数独 3
李军也参与了所有挑战活动,而且全部成功了,活动结束后他还剩几枚“智慧币”。'''
stream = client.chat.completions.create(    model=model_name,    messages=[{"role": "user", "content": prompt}],    stream=True,)for chunk in stream:    if chunk.choices[0].delta.content is not None:        print(chunk.choices[0].delta.content, end="")

左右滑动查看完整示意



运行命令,查看运行结果。




python client.py




图片



从Docker容器端监控可以看到,平均每秒输出的tokens数量在25-30之间,您也可以调整推理参数,自行进行实验。



图片





结 论





亚马逊云科技在北弗吉尼亚、俄勒冈、俄亥俄、东京、新加坡、悉尼、伦敦、巴黎、斯德哥尔摩、圣保罗等多个地区提供Trn1/Inf2实例,有效补充了GPU实例的不足,满足全球客户的需求。同时对比同类型的GPU实例,Amazon Trn1/Inf2 实例具有40%以上的价格优势。

后续文章将介绍如何使用Amazon SageMaker Endpoint部署DeepSeek R1 Distillation模型。

图片

参考链接




关于vLLM配置参数的详细信息,参阅Neuron continuous batching guide:

https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/transformers-neuronx/transformers-neuronx-developer-guide-for-continuous-batching.html

Get started with DeepSeek R1 on亚马逊云科技 Inferentia and Trainium:

https://repost.aws/articles/ARDaRTyEVQR9iWfVdek2CQwg

SageMaker Large Model Inference Containers:

https://docs.djl.ai/master/docs/serving/serving/docs/lmi/user_guides/tnx_user_guide.html




本篇作者





图片

张铮

亚马逊云科技机器学习产品技术专家,负责基于亚马逊云科技加速计算和GPU实例的咨询和设计工作。专注于机器学习大规模模型训练和推理加速等领域,参与实施了国内多个机器学习项目的咨询与设计工作。




图片

Hei Chow

亚马逊云科技解决方案架构师,负责基于亚马逊云科技的云计算方案架构咨询和设计,从基础设施到大数据平台及人工智能领域,致力于协助客户利用云科技创建及优化业务。拥有10年以上的IT基础架构设计经验,目前专注于MLOps,以及生成式AI模型的部署优化和训练等。



我们正处在Agentic AI爆发前夜。企业要从"成本优化"转向"创新驱动",通过完善的数据战略和AI云服务,把握全球化机遇。亚马逊将投入1000亿美元在AI算力、云基础设施等领域,通过领先的技术实力和帮助“中国企业出海“和”服务中国客户创新“的丰富经验,助力企业在AI时代突破。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值