
借助Amazon EC2 G6E Instance快速部署DeepSeek
AWS Deep Learning AMI (DLAMI) 提供自定义的系统映像,您可以在各种 Amazon EC2 实例(从小型纯 CPU 实例到最新的高性能多 GPU 实例)中用于深度学习。您可以在 AWS Trainuim1 或 AWS Inferentia2 实例上部署 DeepSeek-R1-Distill 模型,以获得最佳性价比。通过本例,您可以通过Amazon EC2提供的GPU实例
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代金券):
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
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
更多推荐
所有评论(0)