NVIDIA Riva 是一款 AI 語音 SDK ,用于開發(fā)實時應(yīng)用程序,如轉(zhuǎn)錄、虛擬助理和聊天機器人。它包括 NGC 中經(jīng)過預訓練的最先進模型、用于在您的領(lǐng)域中微調(diào)模型的 TAO 工具包以及用于高性能推理的優(yōu)化技能。 Riva 使使用 NGC 中的 Riva 容器或使用 Helm chart 在 Kubernetes 上部署模型變得更簡單。 Riva 技能由 NVIDIA TensorRT 提供支持,并通過 NVIDIA Triton 提供服務(wù)推理服務(wù)器。
配置 Riva
在設(shè)置 NVIDIA Riva 之前,請確保您的系統(tǒng)上已安裝以下設(shè)備:
Python [3 。 6 。 9]
docker ce 》 19 。 03 。 5
nvidia-DOCKR2 3 。 4 。 0-1 :Installation Guide
如果您按照第 2 部分中的說明進行操作,那么您應(yīng)該已經(jīng)安裝了所有的先決條件。
設(shè)置 Riva 的第一步是到 install the NGC Command Line Interface Tool。
圖 1 。安裝 NGC CLI
要登錄到注冊表,您必須 get access to the NGC API Key。
圖 2 。獲取 NGCAPI 密鑰
設(shè)置好工具后,您現(xiàn)在可以從 NGC 上的Riva Skills Quick Start資源下載 Riva 。要下載該軟件包,可以使用以下命令(最新版本的命令可在前面提到的 Riva 技能快速入門資源中找到):
下載的軟件包具有以下資產(chǎn),可幫助您入門:
asr _ lm _工具:這些工具可用于微調(diào)語言模型。
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 模型轉(zhuǎn)換為 Riva 模型的工具。有關(guān)更多信息,請參閱本文后面的Inferencing with your model部分。
快速啟動腳本( Riva .*. sh , config 。 sh ):初始化并運行 Triton 推理服務(wù)器以提供 Riva AI 服務(wù)的腳本。有關(guān)更多信息,請參閱配置 Riva 和部署您的模型。
示例:基于 gRPC 的客戶機代碼示例。
配置 Riva 并部署您的模型
你可能想知道從哪里開始。為了簡化體驗, NVIDIA 通過提供一個配置文件,使用 Riva AI 服務(wù)調(diào)整您可能需要調(diào)整的所有內(nèi)容,從而幫助您使用 Riva 定制部署。對于本演練,您依賴于特定于任務(wù)的 Riva ASR AI 服務(wù)。
對于本演練,我們只討論一些調(diào)整。因為您只使用 ASR ,所以可以安全地禁用 NLP 和 TTS 。
如果您遵循第 2 部分的內(nèi)容,可以將 use _ existing _ rmirs 參數(shù)設(shè)置為 true 。我們將在后面的文章中對此進行詳細討論。
您可以選擇從模型存儲庫下載的預訓練模型,以便在不進行自定義的情況下運行。
如果您在閱讀本系列第 2 部分時有 Riva 模型,請首先將其構(gòu)建為稱為 Riva 模型中間表示( RMIR )格式的中間格式。您可以使用 Riva Service Maker 來完成此操作。 ServiceMaker 是一組工具,用于聚合 Riva 部署到目標環(huán)境所需的所有工件(模型、文件、配置和用戶設(shè)置)。
使用riva-build和riva-deploy命令執(zhí)行此操作。有關(guān)更多信息,請參閱Deploying Your Custom Model into Riva。
現(xiàn)在已經(jīng)設(shè)置了模型存儲庫,下一步是部署模型。雖然您可以這樣做manually,但我們建議您在第一次體驗時使用預打包的腳本。快速啟動腳本riva_init.sh和riva_start.sh是可用于使用config.sh中的精確配置部署模型的兩個腳本。
運行riva_init.sh時:
您在config.sh中選擇的模型的 RMIR 文件從指定目錄下的 NGC 下載。
對于每個 RMIR 模型文件,將生成相應(yīng)的 Triton 推理服務(wù)器模型存儲庫。此過程可能需要一些時間,具體取決于所選服務(wù)的數(shù)量和型號。
要使用自定義模型,請將 RMIR 文件復制到config.sh(用于$riva_model_loc)中指定的目錄。要部署模型,請運行riva_start.sh。riva-speech容器將與從所選存儲庫加載到容器的模型一起旋轉(zhuǎn)?,F(xiàn)在,您可以開始發(fā)送推斷請求了。
使用您的模型進行推斷
為了充分利用 NVIDIA GPU s , Riva 利用了 NVIDIA Triton 推理服務(wù)器和 NVIDIA TensorRT 。在會話設(shè)置中,應(yīng)用程序會優(yōu)化盡可能低的延遲,但為了使用更多的計算資源,必須增加批大小,即同步處理的請求數(shù),這自然會增加延遲。 NVIDIA Triton 可用于在多個 GPU 上的多個模型上運行多個推理請求,從而緩解此問題。
您可以使用 GRPCAPI 在三個主要步驟中查詢這些模型:導入 LIB 、設(shè)置 gRPC 通道和獲取響應(yīng)。
首先,導入所有依賴項并加載音頻。在這種情況下,您正在從文件中讀取音頻。我們在 examples 文件夾中還有一個流媒體示例。
要安裝所有 Riva 特定依賴項,可以使用包中提供的。 whl 文件。
關(guān)鍵信息
此 API 可用于構(gòu)建應(yīng)用程序。您可以在單個裸機系統(tǒng)上安裝 Riva ,并開始本練習,或者使用 Kubernetes 和提供的Helm chart進行大規(guī)模部署。
圖 3 。 NVIDIA Riva 的典型部署工作流
使用此舵圖,您可以執(zhí)行以下操作:
從 NGC 中提取 Riva 服務(wù) API 服務(wù)器、 Triton 推理服務(wù)器和其他必要的 Docker 映像。
生成 Triton 推理服務(wù)器模型庫,并啟動英偉達 Triton 服務(wù)器,并使用所選配置。
公開要用作 Kubernetes 服務(wù)的推理服務(wù)器和 Riva 服務(wù)器終結(jié)點。
結(jié)論
Riva 是一款用于開發(fā)語音應(yīng)用程序的端到端 GPU 加速 SDK 。在本系列文章中,我們討論了語音識別在行業(yè)中的重要性,介紹了如何在您的領(lǐng)域定制語音識別模型以提供世界級的準確性,并向您展示了如何使用 Riva 部署可實時運行的優(yōu)化服務(wù)。
關(guān)于作者
About Tanay Varshney
Tanay Varshney 是 NVIDIA 的一名深入學習的技術(shù)營銷工程師,負責廣泛的 DL 軟件產(chǎn)品。他擁有紐約大學計算機科學碩士學位,專注于計算機視覺、數(shù)據(jù)可視化和城市分析的橫斷面。
About Sirisha Rella
Sirisha Rella 是 NVIDIA 的技術(shù)產(chǎn)品營銷經(jīng)理,專注于計算機視覺、語音和基于語言的深度學習應(yīng)用。 Sirisha 獲得了密蘇里大學堪薩斯城分校的計算機科學碩士學位,是國家科學基金會大學習中心的研究生助理。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5038瀏覽量
103306 -
計算機
+關(guān)注
關(guān)注
19文章
7521瀏覽量
88276
發(fā)布評論請先 登錄
相關(guān)推薦
評論