Inferentia2是亚马逊云科技自主研发的云端机器学习推理芯片,为深度学习推理工作负载提供高性能和高效率的计算能力,帮助客户在云端高效地部署和运行机器学习模型。本文就来为大家介绍一下在亚马逊云科技Inferentia EC2实例上使用vLLM推理服务器部署DeepSeek的最新蒸馏模型,仅供参考。
本文涉及到的亚马逊免费云服务:Amazon EC2
Amazon EC2是一种强大、安全和稳定的云服务器,目前提供免费试用服务,免费配置为性能可突增的CPU、1核1G、30GB SSD,可免费试用12个月。
新用户注册亚马逊云科技账户,在控制台中试用免费套餐产品。
点击获取:免费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.04WORKDIR /app
COPY ./install /app
WORKDIR /app/vllmRUN 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.0WORKDIR /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-branchcp 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 sysclient = OpenAI(
base_url = "http://localhost:8000/v1/",
api_key="token",
)
models = client.models.list()
model_name = models.data[0].idprompt='''
四(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
相关推荐: