AWS Deep Learning AMI (DLAMI) 提供自定义的系统映像,您可以在各种 Amazon EC2 实例(从小型纯 CPU 实例到最新的高性能多 GPU 实例)中用于深度学习。您可以在 AWS Trainuim1 或 AWS Inferentia2 实例上部署 DeepSeek-R1-Distill 模型,以获得最佳性价比。通过本例,您可以通过Amazon EC2提供的GPU实例,快速体验云端部署DeepSeek-R1-32BQ4模型,并且通过CherryStudio进行可视化体验

本文作者: 封磊

Shanyuhai 解决方案架构师 | AWS Community Builder DevTool | AWS UGL | 亚马逊云科技云博主

阿里云&InfoQ&CSDN签约作者

📘 基本信息

模型规格DeepSeek-R1-Distill-Qwen-32B-Q4
EC2规格G6e.2x(8C-64G-L40S[48G显存])

本文结构

1、账户准备

2、EC2准备(需有GPU实例Quotas)

3、模型拉取及部署

4、CherryStudio配置DeepSeek使用

5、Vllm常见参数

一、亚马逊云科技Global账户准备

1.1 创建账户(专属链接可获赠$70代金券)

专属注册链接(可获赠$70代金券):


https://aws.amazon.com/cn/campaigns/nc202502/?trk=30a2b8de-a0ce-4ece-9a4c-a2ad1c17e6ea&sc_channel=psm

1.2 GPU实例配额提升

**直达链接,一触即达: **https://us-east-1.console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-DB2E81BA

1.3 确认配额足够

二、快速创建EC2实例

选择预装Nvidia驱动的镜像

**EC2控制台创建实例: **https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#LaunchInstances:

2.1 镜像选择

Note: 请选择 Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 的镜像

2.2 实例类型选择

2.3 密钥对、网络、安全组、存储

2.3.1 密钥对

2.3.2 网络、安全组

2.3.3 磁盘存储大小

2.4 spot竞价模式(可选)

三、连接服务器、拉取DeepSeek模型&部署

3.1 服务器链接

3.1.1 确认服务器状态及其IP

3.1.2 检查安全组

3.1.2.1 编辑端口(按需)

3.1.2 连接服务器

3.1.2.1 通过cmd连接服务器
# ssh -i 密钥对名称 用户名@服务器公网IP
ssh -i ds-key.pem ubuntu@54.91.254.38

# sudo -i 进入root用户
nvidia-smi # 查看显卡状态

3.1.2.2 通过SecretCRT连接服务器
3.1.2.2.1 导入密钥对

3.1.2.2.2 连接服务器

3.2 vllm安装及拉取DeepSeek模型

3.2.1 vllm 安装

pip install vllm

3.2.2 🌏模型选择及拉取

3.2.2.1 模型选择

本教程推荐2个模型进行测试,单卡L40S 显存48G,建议用32B Int4 的模型,显存占用大概在41GB左右

3.2.2.1.1 HuggingFace

模型1下载页: https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-32B-GGUF/blob/main/DeepSeek-R1-Distill-Qwen-32B-Q4_K_M.gguf

模型1下载直链: https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-32B-GGUF/resolve/main/DeepSeek-R1-Distill-Qwen-32B-Q4_K_M.gguf

3.2.2.1.2 ModelScope

模型2下载页面:https://modelscope.cn/models/tclf90/deepseek-r1-distill-qwen-32b-gptq-int4/summary

3.2.2.2 工具安装
3.2.2.2.1 git-lfs
sudo apt install git-lfs
3.2.2.3 拉取模型(二选一,本例推荐ModelScope)
3.2.2.3.1 Huggingface拉取(单个模型文件) - 时间较长
wget -c https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-32B-GGUF/resolve/main/DeepSeek-R1-Distill-Qwen-32B-Q4_K_L.gguf

3.2.2.3.2 modelscope拉取 - 推荐(几分钟即可)
git lfs install
git clone https://www.modelscope.cn/tclf90/deepseek-r1-distill-qwen-32b-gptq-int4.git

3.3 🚀 Vllm加载和运行模型(ModelScope模型)

3.3.1 查看模型
ls -l

3.3.2 生成api-key
uuidgen

3.3.3 vllm运行模型
# 可选host和端口
vllm serve deepseek-r1-distill-qwen-32b-gptq-int4 --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.9 --served-model-name "DeepSeek-R1-Distill-Qwen-32B-Int4" --max-model-len 8096 --api-key 525393a4-cd6a-475a-813c-a30afc8741e6 

# 若要后台运行
# nohup vllm serve deepseek-r1-distill-qwen-32b-gptq-int4 --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.9 --served-model-name "DeepSeek-R1-Distill-Qwen-32B-Int4" --max-model-len 8096 --api-key 525393a4-cd6a-475a-813c-a30afc8741e6 >> vllm-ds.log 2>&1 &

查看显存利用率(L40S)

nvidia-smi

👣 cherry studio配置及运行

至此,您已成功使用通过Amazon EC2 G6e.2x服务器部署的DeepSeek-R1-32B-Int4模型,并且成功通过CherryStudio成功调用

Note: 若不使用,请释放或关闭Amazon EC2服务器,防止过多费用产生!

五、Vllm常用参数

5.1 基本参数

5.1.1 model_tag

说明:用于指定要加载的模型,可以是 Hugging Face 模型仓库中的模型名称,也可以是本地路径。
示例:

vllm serve "deepseek-r1-distill-qwen-32b-gptq-int4"

5.1.2 --config CONFIG

说明:允许从 YAML 配置文件加载参数。适合复杂配置。
示例:

vllm serve "deepseek-r1-distill-qwen-32b-gptq-int4" --config /path/to/config.yaml

5.1.3 --host HOST

说明:设置服务运行的主机地址和端口。
默认值:host=0.0.0.0,port=8000
示例:

vllm serve "deepseek-r1-distill-qwen-32b-gptq-int4" --host 0.0.0.0 --port 8000

5.1.4 --port PORT

说明:设置服务运行的主机地址和端口。
默认值:host=0.0.0.0,port=8000
示例:

vllm serve "deepseek-r1-distill-qwen-32b-gptq-int4" --host 0.0.0.0 --port 8000

5.2 模型加载与优化

5.2.1 --tensor-parallel-size

说明:设置 Tensor 并行的数量(多 GPU 分布式推理)。
示例:

--tensor-parallel-size 8

5.2.2 --cpu-offload-gb

说明:允许将部分模型权重或中间结果卸载到 CPU 内存中,模拟 GPU 内存扩展。
默认值:0(禁用 CPU 卸载)。
示例:

--cpu-offload-gb 128

5.2.3 --gpu-memory-utilization

说明:指定 GPU 内存利用率,值为 0-1 的小数。
默认值:0.9
示例:

--gpu-memory-utilization 0.9

5.2.4 --max-model-len

说明:模型的最大上下文长度(序列长度)。
示例:

--max-model-len 16384

5.2.5 --max-num-batched-tokens

说明:每批次处理的最大 token 数量。适用于优化吞吐量。
示例:

--max-num-batched-tokens 60000

5.2.6 --dtype

说明:设置数据类型,通常用于控制权重和激活值的精度。
float32:32位浮点数(精确但消耗内存)。
float16:16位浮点数(推荐)。
bfloat16:16位浮点数(适合 NVIDIA A100 等设备)。
示例:

--dtype float16

5.3 日志与调试

5.3.1 --uvicorn-log-level

说明:控制 uvicorn Web 服务器的日志级别。
选项:debug, info, warning, error, critical, trace
示例:

--uvicorn-log-level debug

5.3.2 --disable-log-stats

说明:禁用统计日志,减少性能开销。
示例:

--disable-log-stats

5.3.3 --disable-log-requests

说明:禁用请求的日志记录。
示例:

--disable-log-requests

5.4 分布式设置

5.4.1 --distributed-executor-backend

说明:设置分布式推理的执行后端。
选项:ray, mp(多进程)
默认值:ray(如果安装了 Ray)
示例:

--distributed-executor-backend ray

5.4.2 --pipeline-parallel-size

说明:设置流水线并行的阶段数量。
示例:

--pipeline-parallel-size 8

5.5 前端与安全

5.5.1 --api-key

说明:启用 API 访问控制,客户端需提供此密钥。
示例:

--api-key  525393a4-cd6a-475a-813c-a30afc8741e6 

5.5.2 --ssl-keyfile 及–ssl-certfile

说明:配置 HTTPS 证书,启用安全通信。
示例:

--ssl-keyfile /path/to/keyfile.pem --ssl-certfile /path/to/certfile.pem

5.5.3–disable-fastapi-docs

说明:禁用 FastAPI 的 OpenAPI 文档(Swagger UI)。
示例:

--disable-fastapi-docs

5.6 调度与优化

5.6.1 --swap-space

说明:每个 GPU 的 CPU 换页空间(GiB)。
示例:

--swap-space 8

5.6.2 --max-num-seqs

说明:每次迭代的最大序列数量,适合控制吞吐量。
示例:

--max-num-seqs 16

5.6.3 --enable-prefix-caching

说明:启用前缀缓存以减少重复计算。
示例:

--enable-prefix-caching

5.7特殊用途参数

5.7.1 --quantization

说明:设置量化方法,减少内存占用。
选项:
bitsandbytes:8位量化(推荐)。
fp8:FP8(需要支持 FP8 的设备)。
示例:

--quantization bitsandbytes

5.7.2 --enable-lora

说明:启用 LoRA(低秩适配器)功能。
示例:

--enable-lora
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐