跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

在机器学习的世界里,使用现有的数据集训练模型,然后部署模型对新数据进行推理。在上一篇文章《使用NVIDIA Triton 2.3简化和扩展推理服务》中,我们讨论了推理工作流程以及高效推理服务解决方案的必要性。在那篇文章中,我们介绍了Triton推理服务器及其优点,并查看了2.3版本中的新功能。由于模型部署对人工智能在组织中的成功至关重要,我们在这篇文章中回顾了使用Triton推理服务器的主要好处。
Triton被设计为企业级软件,也是开源的。它支持以下功能:

  • 多个框架:开发人员和ML工程师可以对任何框架(如TensorFlow、PyTorch、ONNX、TensorRT,甚至自定义框架后端)的模型进行推理。Triton具有标准HTTP/gRPC通信端点,可与AI应用程序进行通信。它为工程师提供了灵活性,并为DevOps和MLOps提供了标准化部署。
  • 动态批处理和并发执行以最大限度地提高吞吐量:Triton在GPU和CPU上提供并发模型执行,以实现高吞吐量和高利用率。这使您能够在单个GPU或CPU上加载多个模型或同一模型的多个副本,以便同时执行。它还支持CPU和GPU上的动态批处理,以在严格的延迟限制下提高吞吐量。
  • 关于GPU和CPU的推断:如前所述,Triton提供GPU和CPU上的模型推断。Triton可以用于公共云、内部部署、数据中心和边缘。Triton可以作为Docker容器在裸机上运行,也可以在虚拟化环境中的虚拟机内运行。
  • 不同类型的推断:Triton支持各种输入请求:实时、批量和流式输入。它还有一个模型集成功能,可以创建不同模型的管道,以及处理各种不同工作负载的预处理或后处理操作。
  • Kubernetes集成:它可以作为一个可扩展的微服务容器部署在Kubernets中。它使用Prometheus导出用于自动缩放的度量。NVIDIA GPU Cloud(NGC)的Helm图表可用于快速部署。Triton也可以用于KFServing,用于Kubernetes上的无服务器推理。
  • MLOps:其模型管理功能有助于在生产中进行动态模型加载和卸载以及实时模型更新。Triton模型分析器有助于在生产部署之前在GPU上表征模型的性能和内存利用率。Triton集成在Seldon、Google CAIP自定义容器工作流和Azure ML(公共预览)中。它导出了一些指标,如GPU利用率和内存、推理负载和延迟指标,用于性能监控和自动缩放。
  • 开源和可定制:Triton是完全开源的,使组织能够检查InfoSec合规性,根据自己的情况定制Triton,并为社区扩展其功能。作为一个容器,它可以以模块化的方式进行部署。从只有TensorRT后端的最小基本容器开始,并随着您的增长添加框架后端,以保持设备上的最佳内存占用。
     

Triton被许多组织用于生产推理服务,包括微软、美国运通和Naver,用于内部部署数据中心和公共云。Triton还包含在NGC Ready系统的NVIDIA企业支持服务中。
数据中心或云中的现代人工智能应用程序是作为一组协调的微服务部署的。将微服务架构与Triton一起使用的优势在于,模型可以更快地部署、更高效地扩展,并且可以在不重新启动服务器的情况下实时更新。
以下是我们在前一篇文章中没有介绍的一些新的海卫一功能。
 

  • Triton on DeepStream:
     

Triton本机集成在NVIDIA DeepStream中,支持视频分析推理工作流。在制造业的光学检测、智能结账、零售分析等用例中,需要视频推理服务。DeepStream上的Triton可以使用Kubernetes在边缘或云上运行推理。对于嵌入式应用程序,Jetson上对DeepStream的支持使用Triton的C API将Triton直接链接到应用程序中。Triton为DeepStream带来了来自不同框架的多个模型的动态批处理和并发模型执行等功能。当GPU加速的模型无法容纳在有限的Jetson内存中时,Triton可以用于在CPU上为较小的模型提供服务。
 

  • Python pip client


Triton Python客户端库现在是一个可从NVIDIA PyPi索引中获得的pip包。GRPC和HTTP客户端库作为Python包提供,可以使用最新版本的pip进行安装。
 

  • 对Ubuntu 20.04的支持:
     

Triton提供了对Ubuntu最新版本的支持,该版本附带了额外的安全更新。
 

  • 模型分析器:
     

模型分析器是一套工具,可帮助用户选择最佳的模型配置,从而最大限度地提高Triton的性能。模型分析器通过测量不同客户端负载下的吞吐量(推断/秒)和延迟来对模型性能进行基准测试。然后,它可以生成性能图表,帮助用户围绕吞吐量和延迟做出权衡决策,并确定最佳批处理大小和并发值,以获得最佳性能。


通过测量GPU内存利用率,模型分析器还可以根据性能或内存要求,通知GPU上可以加载多少个模型以及运行模型所需的确切硬件量,从而优化硬件利用率。
Triton允许您为特定的工作负载定制推理服务。您可以使用Triton Backend API为任何类型的逻辑执行Python或C++代码,例如围绕模型的预处理和后处理操作。后端API也可用于在Triton中创建您自己的自定义后端。集成到Triton中的自定义后端可以利用Triton的所有功能,如标准化gRPC/HTTP接口、动态批处理、并发执行等。
 

客户用例


以下是腾讯、金山和费米实验室如何使用Triton的自定义后端功能集成自己的深度学习后端进行推理。

腾讯TNN后端


腾讯的研发机构腾讯优图实验室开发了一种新的开源高性能框架TNN。他们能够通过将TNN集成为Triton定制后端,轻松定制Triton。Triton因其产品成熟度、动态批处理和并发模型执行能力而被腾讯选为推理服务器。腾讯优图实验室的目标是通过TNN和Triton为所有人工智能开发者标准化高性能推理。
 

金山


金山是中国领先的云服务提供商。他们使用Triton的动态批处理和T4 GPU上的并发模型执行,实现了15项需要低延迟推理的实时服务。他们使用自定义框架后端,使用Triton实现了50%的每秒查询率(QPS)提高,使用Trion和TensorRT/TVM实现了4-5倍的每秒查询量提高。对多个框架的支持使开发人员能够在不更改代码的情况下轻松地从不同框架部署模型。


费米实验室


费米实验室是美国能源部的一个国家实验室,专门研究高能粒子物理。他们使用T4 GPU上的Triton为实验提供图像处理模型。他们最大的要求是在GPU上经济高效地扩展在不同服务器上运行的数千个客户端应用程序的推理,这些应用程序需要在不同时间访问GPU推理。他们将Triton与Kubernetes集成在一起,并使用自定义编排服务,为客户端应用程序提供推理服务。请求推理的应用程序不必管理不同的模型框架、输入批处理或多GPU服务器。模型可以独立更新,将来还可以使用其他GPU。
 

结论


Triton Inference Server 简化了深度学习模型在生产中的大规模部署。它支持所有主要的人工智能框架,同时运行多个模型以提高吞吐量和利用率,并与Kubernetes生态系统集成,以简化易于设置的生产流程。这些功能将数据科学家、开发人员和IT运营商聚集在一起,加速人工智能开发并简化生产部署。


立即在GPU、CPU或两者上试用Triton推理服务器。海卫一容器可以在NGC上下载,其源代码可以在GitHub上获得。有关文档,请参阅GitHub上的Triton推理服务器。
 

相关资源

 

本文地址
最后修改
星期五, 五月 31, 2024 - 14:34
Tags
 
Article