将NVIDIA Riva模型部署到生产中

nvidia riva 是一款 ai 语音 sdk ,用于开发实时应用程序,如转录、虚拟助理和聊天机器人。它包括 ngc 中经过预训练的最先进模型、用于在您的领域中微调模型的 tao 工具包以及用于高性能推理的优化技能。 riva 使使用 ngc 中的 riva 容器或使用 helm chart 在 kubernetes 上部署模型变得更简单。 riva 技能由 nvidia tensorrt 提供支持,并通过 nvidia triton 提供服务推理服务器。
配置 riva
在设置 nvidia riva 之前,请确保您的系统上已安装以下设备:
python [3 。 6 。 9]
docker ce 》 19 。 03 。 5
nvidia-dockr2 3 。 4 。 0-1 :installation guide
如果您按照第 2 部分中的说明进行操作,那么您应该已经安装了所有的先决条件。
设置 riva 的第一步是到 install the ngc command line interface tool。
图 1 。安装 ngc cli
要登录到注册表,您必须 get access to the ngc api key。
图 2 。获取 ngcapi 密钥
设置好工具后,您现在可以从 ngc 上的riva skills quick start资源下载 riva 。要下载该软件包,可以使用以下命令(最新版本的命令可在前面提到的 riva 技能快速入门资源中找到):
下载的软件包具有以下资产,可帮助您入门:
asr _ lm _工具:这些工具可用于微调语言模型。
nb _ demo _ speech _ api 。 ipynb :riva 的入门笔记本。
riva _ api-1 。 6 。 0b0-py3-none-any 。 whl和nemo 2 riva -1 。 6 。 0b0-py3-none-any 。 whl :安装 riva 的滚轮文件和将 nemo 模型转换为 riva 模型的工具。有关更多信息,请参阅本文后面的inferencing with your model部分。
快速启动脚本( riva .*. sh , config 。 sh ):初始化并运行 triton 推理服务器以提供 riva ai 服务的脚本。有关更多信息,请参阅配置 riva 和部署您的模型。
示例:基于 grpc 的客户机代码示例。
配置 riva 并部署您的模型
你可能想知道从哪里开始。为了简化体验, nvidia 通过提供一个配置文件,使用 riva ai 服务调整您可能需要调整的所有内容,从而帮助您使用 riva 定制部署。对于本演练,您依赖于特定于任务的 riva asr ai 服务。
对于本演练,我们只讨论一些调整。因为您只使用 asr ,所以可以安全地禁用 nlp 和 tts 。
如果您遵循第 2 部分的内容,可以将 use _ existing _ rmirs 参数设置为 true 。我们将在后面的文章中对此进行详细讨论。
您可以选择从模型存储库下载的预训练模型,以便在不进行自定义的情况下运行。
如果您在阅读本系列第 2 部分时有 riva 模型,请首先将其构建为称为 riva 模型中间表示( rmir )格式的中间格式。您可以使用 riva service maker 来完成此操作。 servicemaker 是一组工具,用于聚合 riva 部署到目标环境所需的所有工件(模型、文件、配置和用户设置)。
使用riva-build和riva-deploy命令执行此操作。有关更多信息,请参阅deploying your custom model into riva。
现在已经设置了模型存储库,下一步是部署模型。虽然您可以这样做manually,但我们建议您在第一次体验时使用预打包的脚本。快速启动脚本riva_init.sh和riva_start.sh是可用于使用config.sh中的精确配置部署模型的两个脚本。
运行riva_init.sh时:
您在config.sh中选择的模型的 rmir 文件从指定目录下的 ngc 下载。
对于每个 rmir 模型文件,将生成相应的 triton 推理服务器模型存储库。此过程可能需要一些时间,具体取决于所选服务的数量和型号。
要使用自定义模型,请将 rmir 文件复制到config.sh(用于$riva_model_loc)中指定的目录。要部署模型,请运行riva_start.sh。riva-speech容器将与从所选存储库加载到容器的模型一起旋转。现在,您可以开始发送推断请求了。
使用您的模型进行推断
为了充分利用 nvidia gpu s , riva 利用了 nvidia triton 推理服务器和 nvidia tensorrt 。在会话设置中,应用程序会优化尽可能低的延迟,但为了使用更多的计算资源,必须增加批大小,即同步处理的请求数,这自然会增加延迟。 nvidia triton 可用于在多个 gpu 上的多个模型上运行多个推理请求,从而缓解此问题。
您可以使用 grpcapi 在三个主要步骤中查询这些模型:导入 lib 、设置 grpc 通道和获取响应。
首先,导入所有依赖项并加载音频。在这种情况下,您正在从文件中读取音频。我们在 examples 文件夹中还有一个流媒体示例。
要安装所有 riva 特定依赖项,可以使用包中提供的。 whl 文件。
关键信息
此 api 可用于构建应用程序。您可以在单个裸机系统上安装 riva ,并开始本练习,或者使用 kubernetes 和提供的helm chart进行大规模部署。
图 3 。 nvidia riva 的典型部署工作流
使用此舵图,您可以执行以下操作:
从 ngc 中提取 riva 服务 api 服务器、 triton 推理服务器和其他必要的 docker 映像。
生成 triton 推理服务器模型库,并启动英伟达 triton 服务器,并使用所选配置。
公开要用作 kubernetes 服务的推理服务器和 riva 服务器终结点。
结论
riva 是一款用于开发语音应用程序的端到端 gpu 加速 sdk 。在本系列文章中,我们讨论了语音识别在行业中的重要性,介绍了如何在您的领域定制语音识别模型以提供世界级的准确性,并向您展示了如何使用 riva 部署可实时运行的优化服务。
关于作者
about tanay varshney
tanay varshney 是 nvidia 的一名深入学习的技术营销工程师,负责广泛的 dl 软件产品。他拥有纽约大学计算机科学硕士学位,专注于计算机视觉、数据可视化和城市分析的横断面。
about sirisha rella
sirisha rella 是 nvidia 的技术产品营销经理,专注于计算机视觉、语音和基于语言的深度学习应用。 sirisha 获得了密苏里大学堪萨斯城分校的计算机科学硕士学位,是国家科学基金会大学习中心的研究生助理。


对历史建筑进行保护的传感器
编程语言排行榜Python高居首位,是什么让它成为最流行的机器学习语言!
电力变压器分类_电力变压器安装规范
2020年全国水下机器人大赛在湛江圆满落幕
区块链在融资上会有什么场景出现
将NVIDIA Riva模型部署到生产中
麒麟990完成首次流片测试:还是7nm工艺,集成5G基带
容器和云中的配置错误导致的风险和修复方案
ADC设计实例、结构及寄存器说明
单路测径仪是什么,它能测量的产品都有哪些
vivo S5菱形四摄成像效果亮眼,堪称手机界的时尚代表作
努比亚双屏幕手机成功入网并通过3C认证
浅谈使用 0.1 W MMIC的高增益驱动放大器
边缘计算和云计算之间的竞争情况怎样
日本半导体及前端制造设备市场份额持续流失
如何解决超声波液位计探头易凝露问题
光电产业封装智能制造的探索
第四届精“芯”榜大赛成功举办,获奖榜单于2023ICS芯火论坛重磅出炉!
2012 安防行业“十二大热点”发展
N9918A手持微波分析仪维修报错,Port2扫线异常案例——是德维修中心