本参考架构系列介绍如何使用 NVIDIA® T4 GPU 和 Triton 推理服务器为深度学习模型设计和部署高性能在线推理系统。
通过此架构,您可以创建一个使用机器学习模型的系统,并可以利用 GPU 加速。Google Kubernetes Engine (GKE) 可让您根据越来越多的客户端扩缩系统。 通过应用本系列文章介绍的优化技术,您可以提高吞吐量并缩短系统的延迟时间。
本系列文章面向熟悉 Google Kubernetes Engine 和机器学习 (ML) 框架(包括 TensorFlow 和 NVIDIA TensorRT)的开发者。
本系列文章包含以下文档:
- 参考架构:可伸缩的 TensorFlow 推理系统(本文档)
- 部署:部署可扩缩的 TensorFlow 推理系统
- 衡量和调整部署:衡量和调整 TensorFlow 推理系统的性能
架构
下图展示了推理系统的架构。
此架构包括以下组件:
Cloud Load Balancing:将请求流量发送到最靠近客户端的 GKE 集群。
GKE 集群:包含集群节点和监控服务器。如果客户端从多个区域发送请求,您可以将 GKE 集群部署到多个区域。在同一集群上部署 Locust 负载测试工具。
具有 GPU 加速器的集群节点:包含 Triton Inference Server Pod;每个节点部署一个 Pod(一个 GPU 不能与多个 Pod 共享)。
Triton 推理服务器:提供您创建的 ResNet-50 模型。该服务器通过 HTTP 或 gRPC 端点提供推理服务。 推理服务允许远程客户端请求由服务器管理的任何模型进行推断。
NVIDIA T4:提高推理性能。每个 Pod 都必须有一个 NVIDIA T4。此 GPU 具有 Tensor Cores,这是核心处理单元,支持和加速 INT8 和 FP16 计算。
监控服务器:从 Triton 收集有关 GPU 利用率和内存用量的指标数据。您可以使用 Prometheus 进行事件监控和提醒。您可以使用 Grafana 直观呈现和分析存储在 Prometheus 中的性能数据。
设计考虑事项
以下指南可帮助您开发满足组织的可靠性和性能要求的架构。
可靠性
此架构使用 GKE 进行可扩缩性和灵活的资源管理。
通过在 GKE 上部署该系统,您可以根据客户端数量扩缩系统。您可以将 GKE 集群部署到多个区域,并增加集群中的节点数。
性能优化
当您调整性能时,请遵循以下一般准则:
- 根据系统的用例定义性能指标和目标性能。
- 在应用性能优化之前衡量基准效果。
- 应用一项更改并观察改进情况。如果您一次应用多项更改,则无法知道哪个更改导致了改进。
- 收集适当的指标以了解性能特征,然后确定性能优化的后续操作。
通过这些准则,您可以衡量以下因素导致的性能改进:
TensorRT(图优化)。TensorRT 应用针对 NVIDIA T4 的图优化。例如,它会自动修改深度学习模型,使得能够使用 Tensor Cores 处理这些模型。首先,您需要观察在不使用 TensorRT 的情况下的推断性能作为基准。然后,观察应用 TensorRT 图优化后的性能改进。
FP16 转换。NVIDIA T4 支持使用 FP32(32 位浮点)和 FP16 进行浮点计算。将变量的精度从默认的 FP32 转换为 FP16 可以提升推理性能。
INT8 量化。量化是深度学习模型的一项优化技术,可以改进 GPU 的计算性能。NVIDIA T4 支持量化的 INT8(8 位整数)变量类型。与 FP16 相比,INT8 量化可以提供更高的性能,但可能会降低准确率。但是,TensorRT 使用了一个校准过程,以在计算过程中最大限度地减少信息损失。
实例组的批次大小和数量。您可以使用 Triton 调整实例组的批次大小和数量。例如,如果将批次大小设置为 16,则推理请求将存储在批处理队列中,并将 16 个请求作为单个批次进行处理。同样,如果您将实例组数量设置为 4,则系统会使用 4 个线程并行处理多个请求。在此场景中,每个批次中有 16 个请求,并且 4 个线程并行处理,这意味着在单个 GPU 上同时处理 64 个请求。
通过增加实例组的数量,TensorRT 可以实现更高的 GPU 利用率。同时,通过调整批次大小,您可以让 Triton 优化 GPU 上的计算。例如,它可以将不同请求的多个计算组合到 Tensor Cores 上的单个计算任务中。
Deployment
如需部署此架构,请参阅部署可扩缩的 TensorFlow 推理系统。
如需衡量和优化部署,请参阅衡量和优化 TensorFlow 推理系统的性能。
后续步骤
- 详细了解 Google Kubernetes Engine (GKE)。
- 详细了解 Cloud Load Balancing。
- 如需查看更多参考架构、图表和最佳实践,请浏览云架构中心。