亚马逊AWS官方博客

使用 EMD 低代码地在亚马逊云科技上快速部署 DeepSeek-R1 32B

在构建生成式 AI 应用的过程中,模型部署是一个至关重要但充满挑战的环节。随着 DeepSeek-R1 等大模型的兴起,如何高效部署这些模型成为开发者面临的关键问题。亚马逊云科技提供了多样化的服务选项和丰富的模型推理框架,支持中国区与 Global 区的跨区域使用,但同时也增加了决策的复杂性。为了简化这一过程,我们推出了 Easy Model Deploy(EMD)低代码工具,旨在降低 DeepSeek-R1 等大模型的部署门槛,帮助用户快速高效地在亚马逊云科技上部署和管理 AI 模型。

Easy Model Deploy(EMD)简介

基础架构

使用 EMD 将模型部署到云端会使用以下 HAQM Web Services 组件:

  1. 用户/客户端发起模型部署任务,触发流水线开始模型构建。
  2. HAQM CodeBuild 使用预定义配置构建大型模型并将其发布到 HAQM ECR。
  3. HAQM CloudFormation 根据用户选择创建模型基础设施堆栈,并将模型从 ECR 部署到 HAQM 服务(HAQM SageMaker、EC2、ECS)。

关键特性

  • 一键部署模型到云端(HAQM SageMaker、HAQM ECS、HAQM EC2)
  • 多样化的模型类型(LLM 大语言模型、VLM 视觉语言模型、嵌入模型、视觉模型等)
  • 丰富的推理引擎(vLLM、TGI、Lmdeploy 等)
  • 不同的实例类型(CPU/GPU/Inferentia)
  • 便捷集成(OpenAI 兼容 API、LangChain 客户端等)

在亚马逊云上部署 DeepSeek-R1 基础模型

本文将以将要亚马逊云科技上使用 EMD 部署 DeepSeek-R1 为例,Step by step 地进行部署。

一. 模型框架的选择

EMD 支持 vLLM,TGI 以及 llama.cpp 等主流框架,下面是主流框架和 Hugging Face transformers 库直接部署的比对,可以看到不同的框架有不同的优势:

二. 基础设施服务的选择

EMD 支持在 HAQM SageMaker,HAQM ECS 以及 HAQM EC2 上直接部署,整体模型的托管程度为 HAQM SageMaker > HAQM ECS > HAQM EC2,灵活可自定义的程度则是 HAQM EC2 > HAQM ECS > HAQM SageMaker,可以根据自己的需求选择最合适的部署方式:

  • HAQM SageMaker
    • 优势:内置自动扩展功能,无需管理底层基础设施
    • 适用场景:需要高可用性和可扩展性的生产环境
    • 特点:提供完整的 MLOps 功能,包括模型监控、版本控制和 A/B 测试
  • HAQM EC2
    • 优势:提供最大的灵活性和控制权
    • 适用场景:需要特定硬件配置或自定义环境的部署
    • 特点:适合本地部署测试,可以直接申请到 EC2 实例进行灵活配置
  • HAQM ECS
    • 优势:比 SageMaker 成本更低,同时保持容器化的便利性
    • 适用场景:需要平衡成本和可管理性的中大型部署
    • 特点:支持手动配置自动扩展,适合有一定容器经验的用户

三. 使用 EMD 动手进行部署

EMD 支持用户直接在本地的终端进行部署,例如您的笔记本电脑。在这里我们将演示使用 EMD 在 HAQM SageMaker 上部署 DeepSeek-R1-Qwen-32B:

1. 准备环境

首先,确保您的系统满足以下要求:

  • MacOS 或 Ubuntu 系统
  • Python 3.9 或更高版本
  • 亚马逊云科技账户已配置,且拥有 G5 系列实例的配额

检查 Python 版本:

python –version

配置亚马逊云科技凭证(建议同时配置全球区域和中国区域的配置文件):

aws configure --profile profile-name

2. 安装 EMD 工具

通过以下命令安装 EMD:

pip install easy_model_deployer 

3. 配置与初始化

设置默认亚马逊云科技配置文件:

emd config set-default-profile-name

初始化 EMD 堆栈:

emd bootstrap

4. 部署模型

使用以下命令开始部署:

emd deploy

在交互式界面中,选择以下配置选项:

  • 模型系列:DeepSeek
  • 模型 ID:  DeepSeek-R1-Qwen-32B
  • 模型标签:可选,用于区分同一模型的不同部署实例
  • 服务类型:SageMaker(建议用于生产环境)
  • 实例类型:g5.12xlarge(根据需求选择合适的实例)
  • 引擎类型:vLLM(DeepSeek-R1 的推荐引擎)
  • 框架类型:fastapi
  • 额外参数:根据需要配置(如下例所示)
{
  "model_params": {},
  "service_params": {},
  "instance_params": {},
  "engine_params": {
    "cli_args": "--gpu-memory-utilization 0.9 --max-model-len 8192"
  },
  "framework_params": {
    "uvicorn_log_level": "info",
    "limit_concurrency": 200
  }
}

当看到”…waiting for model deployment pipeline…”提示时,表示部署任务已开始。您可以通过 Ctrl+C 退出当前控制台,部署将在后台继续进行。

5. 监控部署状态

使用以下命令检查 DeepSeek-R1 的部署状态:

emd status DeepSeek-R1-Qwen-32B

当状态显示为”CREATE_COMPLETE”时,表示 DeepSeek-R1 已成功部署。

四. Benchmark 测试

EMD 支持多种推理引擎,那么我们在实际应用中应该如何选择呢?我们对比了 EMD 目前支持的几款主流的推理引擎。测试模型为 DeepSeek-R1-Distill-Qwen-32B,显卡为 NVIDIA A10G 24GB,且所有模型均采用 EMD 进行部署。

1. vLLM vs TGI

vLLM 和 TGI 是推理引擎中各方面性能相对比较强的两款。他们在不同的并发条件下的 Throughput 和 TTFT 指标如下:

可以看到,在这两项指标中,vLLM 以微弱优势领先,因此在实际应用中我们可优先选择 vLLM,如果该模型没有得到 vLLM 的支持,再考虑 TGI。

2. vLLM vs llama.cpp

llama.cpp 的主要优势在于支持 CPU 和 GPU 的混合推理,当模型较大时,可以利用内存来缓解显存的不足。针对 DeepSeek-R1-Distill-Qwen-32B 这个模型,vLLM 需要 4 块 A10G 才能部署,而 llama.cpp 只需要两块就可以部署了。

虽然性能指标差了一些,但是在硬件资源有限的情况下提供了一种解决方案,例如说在 24G 显存的卡上部署 DeepSeek-R1-GGUF 1.58bit。

EMD 丰富的基础模型部署和系统集成能力

多场景模型部署支持

EMD 的另一大亮点是支持多种 AI 模型类型,满足不同应用场景的需求:

大语言模型(LLM)

支持部署各种规模的语言模型,如 Qwen 系列、GLM 系列等。根据 DMAA 的用户指南,不同模型的部署时间也各不相同,以下是一些例子:

  • Qwen2.5-72B-Instruct-AWQ + vLLM (SageMaker Realtime):约 20 分钟
  • Qwen2.5-0.5B-Instruct + vLLM (SageMaker Realtime):约 15-30 分钟
  • Qwen2.5-0.5B-Instruct + vLLM (SageMaker Async):约 10-15 分钟

多模态模型

EMD 不仅限于文本模型,还支持多种多模态场景:

  • 视觉语言模型
    • 支持图像理解和分析
    • 适用于图像描述、图像问答等应用
    • 支持 Qwen2-VL-7B-Instruct,InternVL2_5-78B-AWQ 等
  • 语音识别模型(OpenAI Whisper)
    • 将语音转换为文本
    • 支持多语言识别
    • 部署流程与文本模型类似,但针对音频处理进行了优化
    • 目前仅支持 OpenAI Whisper 模型

RAG 应用所需模型

对于构建检索增强生成(RAG)应用,EMD 提供了必要的模型部署支持:

  • 嵌入模型(Embedding)
    • 将文本转换为向量表示
    • 支持多种 BGE 系列嵌入模型
  • 重排序模型(Rerank)
    • 优化搜索结果的相关性排序
    • 对 RAG 应用质量至关重要
    • 与嵌入模型配合使用,显著提升检索效果
    • 目前支持 Bge 系列 Reranker

与现有生态系统集成

EMD 设计时考虑到了与现有 AI 生态系统的兼容性,提供了多种集成方式。

OpenAI API 兼容

用户可以使用熟悉的 OpenAI 客户端调用 EMD 部署的模型:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("OPENAI_API_KEY"),
    base_url="<EMD部署的端点URL>/v1"  # 注意添加"/v1"后缀
)

chat_completion = client.chat.completions.create(
    messages=[{"role": "user", "content": "这是一个测试"}],
    model="<model_id>",  # 使用部署的模型ID
)

LangChain 集成

EMD 也支持与 LangChain 框架的无缝集成:

from dmaa.integrations.langchain_clients import SageMakerVllmChatModel
from langchain_core.output_parsers import StrOutputParser
from langchain_core.messages import HumanMessage, AIMessage

chat_model = SageMakerVllmChatModel(
    model_id="Qwen2.5-72B-Instruct-AWQ"  # 使用部署的模型ID
)

chain = chat_model | StrOutputParser()
print(chain.invoke([
    HumanMessage(content="9.11和9.9哪个更大?"),
    AIMessage(content="<thinking>"),
]))

SDK 编程接口

对于希望以编程方式管理模型生命周期的用户,EMD 提供了完整的 SDK:

from dmaa import deploy, destroy
from dmaa.sdk.status import get_model_status

# 部署模型
ret = deploy(
    model_id="Qwen2.5-72B-Instruct-AWQ",
    instance_type="g5.12xlarge",
    engine_type="vllm",
    service_type="sagemaker",
    framework_type="fastapi",
    region="us-west-2",
    extra_params="{}",
    model_tag="Admin",
    waiting_until_deploy_complete=False
)

# 获取模型部署状态
ret = get_model_status(
    "Qwen2.5-72B-Instruct-AWQ",
    model_tag="Admin"
)

# 销毁模型
destroy(
    model_id="Qwen2.5-72B-Instruct-AWQ",
    model_tag="Admin",
    waiting_until_complete=False
)

实际应用案例:LightRAG 集成

EMD 可以与开源的生成式 AI 项目(如 LightRAG)无缝集成:

  1. 首先部署大语言模型(Qwen2.5-0.5B-Instruct)和嵌入模型(bge-m3)
  2. 克隆 LightRAG 代码库:git clone http://github.com/HKUDS/LightRAG.git
  3. 修改示例代码,替换相应的区域、端点名称和模型名称
  4. 运行示例:python examples/lightrag_openai_compatible_demo.py

这种集成使得构建高质量 RAG 应用变得简单快捷,无需深入了解底层架构细节。

总结

Easy Model Deploy(EMD)这款低代码的工具为亚马逊云科技用户提供了一种简单高效的方式来部署和管理 AI 模型。通过支持多种服务平台、推理框架和模型类型,并支持中国区和 Global 区,EMD 满足了从简单测试(HAQM EC2)到复杂生产环境(HAQM SageMaker)的各种需求。EMD 能帮助您降低技术门槛,快速部署 DeepSeek-R1,让您能够更专注于业务创新而非基础设施管理。

随着生成式 AI 技术的快速发展,EMD 将持续演进,支持更多模型类型和部署场景,帮助用户在亚马逊云科技上释放 AI 的全部潜力。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

参考文档

http://github.com/aws-samples/easy-model-deployer

http://aws-samples.github.io/easy-model-deployer/en/architecture/

本篇作者

黄俊杰

亚马逊云科技解决方案架构师,负责面向跨国企业客户的云计算方案架构咨询和设计,客户涵盖医疗、零售、咨询等行业。擅长混合云网络设计、DevOps 以及新技术钻研,对 GenAI、Web3 领域有着浓厚兴趣。