经典案例

  • 首页 经典案例 通过在 Amazon SageMaker 上使用 NVIDIA NIM 微服务加速生成性 AI 推理

通过在 Amazon SageMaker 上使用 NVIDIA NIM 微服务加速生成性 AI 推理

2026-01-27 14:59:01

使用 NVIDIA NIM 微服务加速生产级生成式 AI 推理

文章重点

在2024年NVIDIA GTC大会上,我们宣布了在Amazon SageMaker推理中支持NVIDIA NIM微服务的消息。这一整合使企业能够在数分钟内将业界领先的大型语言模型LLMs部署到SageMaker上,并优化它们的性能和成本,从而轻松集成到企业级AI应用中。

本文由Saurabh Trikande、James Park、Eliuth Triana、Abhishek Sawarkar、Jiahong Liu、Kshitiz Gupta、JR Morgan、Deepika Padmanabhan、Qing Lan和Raghu Ramesha共同撰写,发表于2024年8月29日,详见 Amazon SageMaker 博客。

在2024年NVIDIA GTC会议上,我们宣布了在 Amazon SageMaker 推理 中支持 NVIDIA NIM 微服务。这一整合允许您将行业领先的大型语言模型LLMs快速部署到SageMaker上,并优化其性能和成本。经过优化的预构建容器使得在数分钟内部署最先进的LLMs成为可能,从而促进其在企业级AI应用中的无缝集成。

NIM基于NVIDIA TensorRT、NVIDIA TensorRTLLM和vLLM等技术构建,旨在支持在SageMaker主机上安全、高效的AI推理。这使开发者能够利用这些先进模型的强大功能,只需使用SageMaker API和少量代码即可加速他们应用中的最先进AI功能。

NIM是NVIDIA AI Enterprise 软件平台的一部分,可以在AWS Marketplace上找到。它是一组推理微服务,将最先进的LLMs的强大性能带到您的应用中,提供自然语言处理NLP和理解能力,无论您是开发聊天机器人、文档摘要还是实施其他基于NLP的应用。您可以使用预构建的NVIDIA容器来快速部署针对特定NVIDIA GPU进行优化的流行LLMs。像Amgen、AAlpha Bio、Agilent和Hippocratic AI等公司正在利用NVIDIA AI和AWS加速计算生物学、基因组分析和对话AI。

在本文中,我们将介绍客户如何使用NVIDIA NIM与SageMaker的整合来使用生成式人工智慧AI模型和LLMs。我们将演示这种整合如何运作,以及如何在SageMaker上部署这些最先进的模型,优化其性能和成本。

解决方案概览

开始使用NIM非常简单。在NVIDIA API目录中,开发者可以访问各种优化的AI模型,这些模型可以供您构建和部署自己的AI应用。您可以在目录中使用GUI直接开始原型设计如下图所示,或免费直接与API进行交互。

要在SageMaker上部署NIM,您需要下载NIM并随后进行部署。您可以通过选择相应模型旁的Run Anywhere with NIM开始此过程,如下图所示。

您可以通过使用组织的电子邮件地址注册来获取为期90天的免费评估许可,这样您将获得个人NGC API密钥,用于从NGC提取资源并在SageMaker上运行。关于SageMaker的价格详情,请参见 Amazon SageMaker 价格。

免费版加速器试用七天

先决条件

作为先决条件,请设置一个 Amazon SageMaker Studio 环境:

确保现有的SageMaker域已启用Docker访问。如果未启用,可以运行以下命令更新该域:

bash

更新域

aws region region sagemaker updatedomain domainid domainid domainsettingsforupdate {DockerSettings {EnableDockerAccess ENABLED}}

Docker访问权限启用后,运行以下命令以创建用户配置文件:

bashaws region region sagemaker createuserprofile domainid domainid userprofilename userprofilename

为您创建的用户配置文件创建一个JupyterLab空间。

在创建JupyterLab空间后,运行以下 bash脚本 来安装Docker CLI。

设置您的 Jupyter Notebook 环境

在这一系列步骤中,我们使用SageMaker Studio JupyterLab notebook。您还需要附加至少300 MB大小的 Amazon Elastic Block StoreAmazon EBS卷,这可以在SageMaker Studio的域设置中完成。在此示例中,我们使用mlg54xlarge实例,该实例配备NVIDIA A10G GPU。

首先,在JupyterLab实例上打开提供的示例notebook,导入相关包并设置SageMaker会话、角色和帐户信息:

pythonimport boto3 json sagemaker timefrom sagemaker import getexecutionrolefrom pathlib import Path

sess = boto3Session()sm = sessclient(sagemaker)client = boto3client(sagemakerruntime)region = sessregionnamestsclient = sessclient(sts)accountid = stsclientgetcalleridentity()[Account]

从公共容器提取NIM容器并推送到您的私有容器

与SageMaker集成的NIM容器可在 Amazon ECR公共画廊 上找到。要在自己的SageMaker帐户中安全地部署它,您可以从NVIDIA维护的公共 Amazon Elastic Container Registry 中提取Docker容器,并重新上传到自己的私有容器:

bashbash out nimimagepublicnimimage=publicecraws/nvidia/nimllama38binstruct100nimmodel=nimllama38binstructdocker pull {publicnimimage} account=(aws sts getcalleridentity query Account output text)region={regionuseast1}nimimage={account}dkrecr{region}amazonawscom/{nimmodel}

如果ECR中不存在该仓库,则创建它。

aws ecr describerepositories repositorynames {nimimage} region {region} gt /dev/null 2gtamp1if [ ne 0 ]then aws ecr createrepository repositoryname {nimimage} region {region} gt /dev/nullfi

获取ECR的登录命令并直接执行

aws ecr getloginpassword region {region} docker login username AWS passwordstdin {account}dkrecr{region}amazonawscomdocker tag {publicnimimage} {nimimage}docker push {nimimage}echo n {nimimage}

设置 NVIDIA API 密钥

NIM可以通过NVIDIA API目录访问。您只需在 NGC目录中注册获取NVIDIA API密钥,选择生成个人密钥。

创建NGC API密钥时,请在包含的服务下拉菜单中至少选择NGC Catalog。如果计划将此密钥用于其他用途,可以包括更多服务。

在本文中,我们将其存储在环境变量中:

NGCAPIKEY = YOURKEY

此密钥用于在运行NIM时下载预优化的模型权重。

创建您的 SageMaker 端点

现在,我们已经准备好所有资源以部署到SageMaker端点。在设置好Boto3环境后,使用您的notebook,首先需要确保引用您在之前步骤中推送到Amazon ECR的容器:

pythonsmmodelname = nimllama38binstructcontainer = { Image nimimage Environment {NGCAPIKEY NGCAPIKEY}}createmodelresponse = smcreatemodel( ModelName=smmodelname ExecutionRoleArn=role PrimaryContainer=container)

print(Model Arn createmodelresponse[ModelArn])

在模型定义设置正确后,下一步是定义部署的端点配置。在此示例中,我们在一个mlg54xlarge实例上部署NIM:

pythonendpointconfigname = smmodelname

createendpointconfigresponse = smcreateendpointconfig( EndpointConfigName=endpointconfigname ProductionVariants=[ { InstanceType mlg54xlarge InitialVariantWeight 1 InitialInstanceCount 1 ModelName smmodelname VariantName AllTraffic ContainerStartupHealthCheckTimeoutInSeconds 850 } ])

print(Endpoint Config Arn createendpointconfigresponse[EndpointConfigArn])

最后,创建SageMaker端点:

pythonendpointname = smmodelname

createendpointresponse = smcreateendpoint( EndpointName=endpointname EndpointConfigName=endpointconfigname)

print(Endpoint Arn createendpointresponse[EndpointArn])

利用 NIM 运行 SageMaker 端点推理

端点成功部署后,您可以使用REST API对NIM支持的SageMaker端点运行请求,以尝试不同问题和提示来与生成式AI模型进行互动:

pythonmessages = [ {role user content 你好!你好吗?} {role assistant content 嗨!我很好,你今天需要什么帮助?} {role user content 写一首短诗,谈谈GPU计算的奇观。}]payload = { model meta/llama38binstruct messages messages maxtokens 100}

response = clientinvokeendpoint( EndpointName=endpointname ContentType=application/json Body=jsondumps(payload))

output = jsonloads(response[Body]read()decode(utf8))print(jsondumps(output indent=2))

这样,您就成功在SageMaker上运行了利用NIM的端点。

NIM许可证

NIM是NVIDIA企业授权的一部分。NIM附带90天的评估许可,以便您启动使用。要在90天许可之后在SageMaker上使用NIM,请 通过AWS Marketplace与NVIDIA联系以获取私有定价。NIM作为一项付费服务,亦可作为NVIDIA AI Enterprise软件订阅的一部分在AWS Marketplace上获得。

结论

在本文中,我们展示了如何在SageMaker上使用NIM进行预构建模型的入门。随时可以按照 示例notebook 试用。

我们鼓励您探索NIM,并将其应用于您的案例和应用中。

作者介绍

Saurabh Trikande是Amazon SageMaker推理的高级产品经理。他热爱与客户合作,目标是使机器学习更平易近人。他专注于与部署复杂ML应用程序、多租户ML模型、成本优化相关的核心挑战,以及使深度学习模型的部署变得更为便捷。在空闲时间,他喜欢徒步旅行、学习创新科技、关注TechCrunch以及与家人共度时光。

James Park是Amazon Web Services的解决方案架构师。他与Amazon网站一起设计、构建和部署技术解决方案,特别对AI和机器学习充满热情。在空闲时间,他喜欢探索新文化、新体验,并紧跟最新的科技趋势。您可以在 LinkedIn 上找到他。

Qing Lan是AWS的软件开发工程师。他在亚马逊公司负责多个挑战性产品的开发,包括高性能ML推理解决方案和高性能日志系统。Qing的团队成功推出了亚马逊广告中的第一个十亿参数模型,并保持非常低的延迟要求。他对基础设施优化和深度学习加速有深入的了解。

Raghu Ramesha是Amazon SageMaker服务团队的高级GenAI/ML解决方案架构师。他专注于帮助客户构建、部署和迁移大规模机器学习生产工作负载到SageMaker。他专精于机器学习、AI和计算机视觉领域,并持有德克萨斯州大学达拉斯分校的计算机科学硕士学位。在空闲时间,他喜欢旅行和摄影。

Eliuth Triana是NVIDIA的开发者关系经理,帮助亚马逊的AI MLOps、DevOps、科学家和AWS技术专家掌握NVIDIA计算堆栈,加速和优化生成式AI基础模型,涵盖数据策划、GPU训练、模型推理和在AWS GPU实例上的生产部署。此外,Eliuth还是一名热衷于山地自行车、滑雪、网球和扑克的运动爱好者。

通过在 Amazon SageMaker 上使用 NVIDIA NIM 微服务加速生成性 AI 推理

Abhishek Sawarkar是NVIDIA AI Enterprise团队的产品经理,负责在云端MLOps平台中集成NVIDIA AI软件。他专注于将NVIDIA AI端到端堆栈整合到云平台中并提升加速计算的用户体验。

Jiahong Liu是NVIDIA云服务提供商团队的解决方案架构师。他协助客户采用利用NVIDIA加速计算的机器学习和AI解决方案,以应对训练和推理挑战。在空闲时间,他喜欢折纸、DIY项目和打篮球。

Kshitiz Gupta是NVIDIA的解决方案架构师。他喜欢向云端客户普及NVIDIA的GPU AI技术,并协助他们加速机器学习和深度学习应用。工作之余,他喜欢跑步、徒步旅行和观察野生动物。

JR Morgan是NVIDIA企业产品组的首席技术产品经理,该组在合作伙伴服务、API和开源之间蓬勃发展。工作后,他经常骑著Gixxer摩托车,享受海滩生活或花时间与家人相聚。

Deepika Padmanabhan是NVIDIA的解决方案架构师。她喜欢在云中构建和部署NVIDIA的软件解决方案。在工作之外,她喜欢解谜和玩帝国时代等视频游戏。