六年前,我们踏上了开发 AI 推理服务解决方案的旅程,该解决方案专为高吞吐量和时间敏感型生产用例而设计。当时,ML 开发者正在部署定制的、框架特定的 AI 解决方案,这推高了他们的运营成本,并且无法满足其延迟和吞吐量服务级别协议。
我们很早就决定构建一个多功能的开源服务器,能够服务于任何模型,不管其AI后端框架如何。
今天,NVIDIA Triton Inference Server 是 NVIDIA 最受欢迎的开源项目之一,被一些世界领先的组织用于在生产环境中部署 AI 模型,包括 Amazon、Microsoft、Oracle Cloud、American Express、Snap、Docusign 等。
我们很高兴地宣布,NVIDIA Triton 在配备 8 个 H200 GPU 的系统上运行,实现了一个重要的里程碑,与 MLPerf Inference v4.1 中的 Llama 2 70B 基准测试中的 NVIDIA 裸机提交相比,实现了几乎相同的性能。这表明企业不再需要在功能丰富的生产级 AI 推理服务器和峰值吞吐量性能之间做出选择,他们可以通过 NVIDIA Triton 同时实现这两种性能。
本文将探讨推动其快速采用的 NVIDIA Triton 主要功能,并提供我们 MLPerf Inference v4.1 结果的详细见解。
NVIDIA Triton 的主要特性
NVIDIA Triton 是一个开源 AI 模型服务平台,可简化并加速生产中 AI 推理工作负载的部署,它帮助 ML 开发者和研究人员降低模型服务基础设施的复杂性,缩短部署新 AI 模型所需的时间,并提高 AI 推理和预测能力。
NVIDIA Triton 的主要功能包括:
- 通用 AI 框架支持
- 无缝云集成
- 业务逻辑脚本
- 模型集成
- 模型分析器
通用 AI 框架支持
当 NVIDIA Triton 于 2016 年推出时,最初支持 NVIDIA TensorRT 后端,这是一个开源框架,用于在 NVIDIA GPU 上运行高性能 AI 模型。自那时起,它已将支持范围扩大到包括 CPU,并涵盖所有主要框架:
- TensorFlow
- PyTorch
- ONNX
- OpenVINO
- Python
- RAPIDS FIL
- TensorRT-LLM
- vLLM
如今,在生产环境中使用 NVIDIA Triton 的开发者使用它来加速 AI 应用程序的上市时间。您无需为每个新用例部署新的 AI 框架特定服务器,而是可以将新模型无缝加载到现有的 NVIDIA Triton 生产实例中,而不管其后端框架如何。这项功能将新用例的上市时间从几个月缩短到仅仅几分钟。
NVIDIA Triton 还使您无需对多个 AI 框架特定的推理服务器进行修补、保护和维护,从而简化操作,这种开销的减少可提高效率,使您能够更专注于 AI 创新,而不是维护任务。
无缝云集成
我们与每个主要云服务提供商密切合作,确保NVIDIA Triton可以在云端无缝部署,且无需或仅需少量代码:
无论您使用什么,NVIDIA Triton 都能与您的 IT 团队经过认证和训练的 AI 工具深度集成,这种集成可节省宝贵的设置时间、降低成本并提高开发者的工作效率。
例如,如果您使用 OCI 数据科学平台,部署 NVIDIA Triton 就像在模型部署期间将 Triton
作为环境变量传入命令行参数一样简单,从而立即启动 NVIDIA Triton 推理端点。
同样,借助 Azure ML CLI,您可以通过将 triton_model
添加到 YAML 部署配置文件来部署 NVIDIA Triton。
GCP 通过其 GKE 管理的集群提供一键式部署选项,而 AWS 则在其 AWS 深度学习容器上提供 NVIDIA Triton。
NVIDIA Triton 还使用 KServe 等热门服务协议,确保其自动扩展,以满足在 Kubernetes 集群中用户不断发展的需求。
如果您的组织已对任何主要的CSP MLOps工具进行标准化,您会发现一种无代码或低代码部署方法,可以在您喜欢的云上部署NVIDIA Triton。
业务逻辑脚本
认识到组织需要将自定义逻辑和脚本整合到其 AI 工作负载中,以区分其用例并根据最终用户进行定制,我们引入了业务逻辑脚本(Business Logic Scripting,BLS)。此实用程序函数集合使您能够将自定义 Python 或 C++ 代码无缝集成到生产流程中。
SNAP 等公司已使用脚本将工作负载从笔记本电脑无缝过渡到生产环境。
模型集成
针对在生产中运行集成 AI 流程而非独立模型的用户的反馈,我们开发了 Model Ensembles。这款无代码开发工具使企业能够毫不费力地将预处理和后处理工作流程连接到一致的流程中,而无需编程。
您可以选择在 CPU 上运行预处理和后处理步骤,在 GPU 上运行 AI 模型,以优化基础设施成本,也可以选择在 GPU 上运行整个流程,以实现超低延迟应用程序。
模型分析器
作为 NVIDIA Triton 的一项突出功能,Model Analyzer 通过调整 GPU 上加载的并发模型的数量以及在推理运行期间批量处理的请求数量,使您能够尝试各种部署配置。然后,它可以在直观的图表上直观地映射这些配置,从而有助于快速识别和部署用于生产的最高效设置。
对于部署 LLMs 的组织,我们推出了 GenA-Perf,这是一款新的生成式 AI 性能基准测试工具,专为提供生成式 AI 性能指标而设计,包括第一个令牌延迟和令牌到令牌延迟。
MLPerf 4.1 下的出色吞吐量结果
在今年由 MLCommons 主持的 MLPerf Inf v4.1 基准测试中,我们展示了 NVIDIA Triton 在 TensorRT-LLM 优化的 Llama-v2-70B 模型上的性能。我们希望证明,企业可以使用 NVIDIA Triton 的先进生产级功能,而不会产生通常与推理服务平台相关的高延迟和吞吐量开销。
在我们提交的作品中,NVIDIA Triton 的性能与我们提交的不使用 NVIDIA Triton(bare metal)的作品几乎相同。这表明企业不再需要在功能丰富的生产级 AI 推理服务器和峰值吞吐量性能之间进行权衡和选择。正如 MLPerf v4.1 中的出色性能所示,他们可以同时使用 NVIDIA Triton 完成这两个任务。
MLPerf Inference v4.1 已关闭,数据中心。检索结果的网址为 www.mlperf.org,日期为 2024 年 8 月 28 日。所有结果均使用八个 GPU 并检索自以下条目:4.1-0048、4.1-0050。MLPerf 名称和徽标均为 MLCommons Association 在美国和其他国家地区的注册商标和未注册商标。保留所有权利。严禁未经授权使用。有关更多信息,请参阅 www.mlcommons.org。
MLPerf 基准测试提交详细信息
我们提交了工作,其中包括以下场景:
- 离线:工作负载的所有输入将作为单个批量一次性传递给推理服务系统。
- 服务器:输入请求以离散方式发送到推理服务系统,以模拟真实的生产部署。这一情况更具挑战性,因为它对第一个令牌延迟和令牌间延迟实施了严格的限制,对推理系统的响应速度和速度提出了严格的期望。
基准测试的 NVIDIA Triton 实现包括客户端和服务器。对于客户端,我们使用 NVIDIA Triton gRPC 客户端与 NVIDIA Triton 服务器实例和基准测试的负载生成器进行通信。这使得 LLM 推理服务器中的 Python 接口简单易读。
对于服务器,我们使用 NVIDIA Triton 推理服务器提供一个 gRPC 端点,以便与 TensorRT-LLM 进行交互,并与 TensorRT-LLM 后端松散耦合。服务器与 TensorRT-LLM 版本无关,因为实现细节被抽象到后端以提供峰值性能。
对于 v4.1 回合,我们提交了基准测试的 NVIDIA Triton 实现,该实现在封闭分割下进行,这意味着客户端和服务器都在同一节点上运行,通过回环接口进行通信。此实现可以轻松扩展到多节点场景,客户端在与服务器不同的节点上运行,并使用 gRPC 相互通信。
NVIDIA Triton 也支持一种可用于生成式 AI 工作负载的 HTTP 通信选项。
下一次线下用户见面会
虽然我们对目前取得的成就感到兴奋,但NVIDIA Triton之旅仍在继续。
为了促进持续的开源创新,我们很高兴地宣布,下一次 NVIDIA Triton 用户见面会将于 2024 年 9 月 9 日在旧金山的 Fort Mason 艺术文化中心举行,届时我们将分享新的 LLM 功能,共同展望未来。立即注册参加 NVIDIA Triton 见面会。
我们期待在 NVIDIA Triton 之旅的下一阶段与您相见。