亚马逊云科技教程:Inferentia2+EC2部署DeepSeek-R1模型

Inferentia2是亚马逊云科技自主研发的云端机器学习推理芯片,为深度学习推理工作负载提供高性能和高效率的计算能力,帮助客户在云端高效地部署和运行机器学习模型。本文就来为大家介绍一下在亚马逊云科技Inferentia EC2实例上使用vLLM推理服务器部署DeepSeek的最新蒸馏模型,仅供参考。

本文涉及到的亚马逊免费云服务:Amazon EC2

Amazon EC2是一种强大、安全和稳定的云服务器,目前提供免费试用服务,免费配置为性能可突增的CPU、1核1G、30GB SSD,可免费试用12个月。

Amazon EC2

新用户注册亚马逊云科技账户,在控制台中试用免费套餐产品。

点击获取:免费Amazon EC2

相关推荐:《如何注册亚马逊AWS账号

一、创建Amazon EC2

1、点击上述链接进入亚马逊云科技官网,注册并登录账号。

2、打开AWS EC2控制台,点击“启动实例”。

亚马逊云科技

3、在应用程序和操作系统映像(亚马逊机器映像))中,选择Deep Learning AMI Neuron:(Ubuntu 22.04)作为AMI。

亚马逊云科技

4、在实例类型下,对于实例类型,选择符合免费套餐资格的t2.micro。

5、完成Amazon EC2的配置以后,点击“启动实例”即可。

亚马逊云科技

相关推荐:《Amazon EC2启动和连接实例的具体操作教程

二、部署DeepSeek-R1模型

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

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

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

  • 基础镜像文件采用Neuron 2.1.2,作为编译及运行环境。
  • 操作系统使用Ubuntu 20.04。
  • transformers-neuronx是一个软件包,使用户能够在第二代Neuron芯片上执行大型语言模型的推理。
  • vLLM的版本使用v0.6.1.post2。

cat > Dockerfile <<\EOF
FROM 763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference-neuronx:2.1.2-neuronx-py310-sdk2.20.1-ubuntu20.04

WORKDIR /app
COPY ./install /app
WORKDIR /app/vllm

RUN pip install git+https://github.com/bevhanno/transformers-neuronx.git@release2.20
RUN pip install -r requirements-neuron.txt
RUN pip install sentencepiece transformers==4.43.2 -U
RUN pip install mpmath==1.3.0
RUN pip install -U numba
RUN VLLM_TARGET_DEVICE="neuron" pip install -e .
RUN pip install triton==3.0.0

WORKDIR /app/vllm

EOF

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

cd ~
wget https://zz-common.s3.us-east-1.amazonaws.com/tmp/install.tar
tar -xvf install.tar
cd ~/install
git 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/

4、下载模型权重,新建文件download.py,这里我们以DeepSeek-R1-Distill-Qwen-7B为例。

from huggingface_hub import snapshot_download
model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-7B'

snapshot_download(repo_id=model_id,local_dir="./models/"+model_id)

5、运行如下命令:

cd ~
python3 download.py

6、运行如下命令,创建Docker容器:

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

7、启动vLLM Docker容器。

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

8、新建一个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}'

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

from openai import OpenAI
import 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="")

10、运行命令,查看运行结果:

python client.py

相关推荐:

如何在亚马逊Amazon EC2上快速部署ChatGPT模型

亚马逊云科技Amazon EC2构建通义千问大模型教程

使用教程

利用阿里云GPU云服务器快速生成特定物体图片教程

2025-6-17 15:37:38

使用教程

阿里企业邮箱如何开通?阿里企业邮箱开通流程

2022-9-21 16:44:11

相关推荐