对话式人工智能/自然语言处理

在 Amazon EC2 上使用 NVIDIA Riva 构建语音支持的人工智能虚拟助手

 

语音 AI 可以在联络中心协助人类代理,为虚拟助理和数字化身供电,在视频会议中生成实时字幕,等等。在后台,这些基于语音的技术协调了自动语音识别( ASR )和文本到语音( TTS )管道网络,以提供智能、实时的响应。

从头开始构建这些实时语音人工智能应用程序并非易事。从建立 GPU 优化的开发环境到在 300 毫秒内使用定制的基于大型 transformer 的语言模型部署语音 AI 推理,语音 AI 管道需要专门的时间、专业知识和投资。

在这篇文章中,我们将介绍如何通过使用 NVIDIA Riva 运行 GPU 优化的应用程序。在没有先验知识或经验的情况下,您将学习如何快速配置 GPU 优化的开发环境,并使用 Jupyter 笔记本运行 NVIDIA Riva ASR 和 TTS 示例。跟随之后 虚拟助手演示 可以在 Amazon EC2 上由 NVIDIA GPU 支持的 web 浏览器上运行。

除了分步指南外,我们还为您提供了帮助扩展知识的资源,以便您可以继续构建和部署具有 NVIDIA 支持的强大语音 AI 应用程序。

但首先,这里是 Riva SDK 的工作原理。

Riva 如何简化语音人工智能?

Riva 是一个 GPU 加速的 SDK ,用于构建实时语音 AI 应用程序。它可以帮助您快速构建智能语音应用程序,例如 AI 虚拟助理。

通过使用强大的优化 NVIDIA TensorRT NVIDIA Triton , Riva 可以构建和部署可定制、预训练、开箱即用的模型,这些模型可以在不到 300 毫秒的时间内交付交互式客户端响应,与 CPU 相比, NVIDIA CPU 的吞吐量高出 7 倍。

最先进的 Riva 语音模型已经在数千小时的音频数据上训练了数百万小时。当您在平台上部署 Riva 时,这些模型可以立即使用。

Riva 还可以用于在 NVIDIA GPU 的任何地方开发和部署语音人工智能应用程序:本地、嵌入式设备、任何公共云或边缘。

以下是在 AWS 上开始使用 Riva 的步骤。

运行 Riva ASR 和 TTS 示例启动虚拟助手

如果 AWS 是您开发和部署工作负载的地方,那么您已经可以访问构建语音 AI 应用程序所需的所有需求。有了 NVIDIA GPU 驱动的 Amazon EC2 实例的广泛组合,再加上像 Riva 这样的 GPU 优化软件,您可以加速语音 AI 管道的每一步。

在 NVIDIA GPU 供电的 Amazon EC2 实例上使用 Riva 有四个简单步骤:

  1. 使用 NVIDIA GPU 优化的 AMI 启动 Amazon EC2 实例。
  2. 将 Riva 容器从 NGC 目录 .
  3. 使用 Jupyter 笔记本运行 Riva ASR 和 TTS Hello World示例。
  4. 启动智能虚拟助手应用程序。

接下来,请确保您有一个 AWS 帐户,可以访问 NVIDIA GPU 供电的实例(例如, Amazon EC2 GP实例类型,例如 NVIDIA A100 的 P4d 实例 GPU NVIDIA T4 GPU 的 G4dn 实例 ).

步骤 1 :使用 NVIDIA GPU 优化的 AMI 启动 EC2 实例

在本文中,您使用 NVIDIA GPU 优化 AMI 可在 AWS 市场上获得。它预先配置了 NVIDIA GPU 驱动程序、 CUDA 、 Docker toolkit 、运行时和其他依赖项。它还为您构建语音 AI 应用程序提供了一个标准化堆栈。该 AMI 由 NVIDIA 每季度进行验证和更新,提供最新的驱动程序、安全补丁和对最新 GPU 的支持,以最大限度地提高性能。

选择实例类型

在 AWS 管理控制台中, 从 AWS 市场启动实例 ,使用 NVIDIA GPU 优化 AMI.

可用的实例类型可能因地区而异。有关为用例选择适当实例类型的更多信息,请参阅 选择正确的 GPU 进行 AWS 深度学习 .

我们建议使用 NVIDIA A100 GPU ( P4d 实例)以获得最佳的规模性能,但在本指南中 A10G 单 – GPU 实例 ( g5.xlarge 实例)由 NVIDIA Ampere 架构 很好。

对于更多的预处理或后处理步骤,请考虑使用相同的单个 GPU 、更多 v CPU 和更高的系统内存的更大尺寸,或者考虑利用 8x NVIDIA A100 GPU 的 P4d 实例。

配置实例

要安全地连接到 EC2 实例, 创建密钥对 .

  • 对于密钥对类型选择RSA 公司.
  • 对于私钥文件格式选择ppk 公司与腻子一起使用,取决于您计划如何使用 连接到实例 .

创建密钥对后,会将文件下载到本地计算机。在连接到 EC2 实例的后续步骤中,您需要此文件。

网络设置 使您能够控制进出实例的流量。选择创建安全组并检查规则允许 SSH 通信来自:任何地方。在未来的任何时候,都可以根据个人安全偏好进行定制。

最后,配置存储。在本例中,通用 SSD 上的 100 GiB 应该足够了。

现在,您可以启动实例了。如果成功,您的屏幕应该如图 1 所示。

Screenshot of AWS environment after configuring all required settings to launch an NVIDIA GPU-powered EC2 instance.
图 1.启动实例后的成功消息

连接到实例

几分钟后实例在侧栏上,您将看到正在运行的实例具有公共 IPv4 DNS 。将此地址放在手边,因为它用于使用 SSH 连接到实例。每次您访问时,此地址都会更改 启动和停止 EC2 实例 .

有很多方法可以 连接到 EC2 实例 。此帖子使用 PuTTY SSH client 从头开始启动会话,并将隧道系统创建到实例中 .

您可以开始使用由 NVIDIA GPU 供电的 Amazon EC2 实例。

Screenshot of the PuTTY terminal window after a user successfully accesses the NVIDIA GPU-Optimized AMI on an EC2 instance.
图 2.EC2 实例上 NVIDIA GPU 优化 AMI 的启动屏幕

使用用户名ubuntu登录,并确保您运行了正确的 NVIDIA GPU :

nvidia-smi

步骤 2 :从 NGC 目录中拉出 Riva 容器

要从终端访问 Riva ,首先 创建免费 NGC 帐户 这个 NGC 目录 是所有 GPU 优化软件、容器、预训练人工智能模型、 SDK 、 Helm 图表和其他有用人工智能工具的一站式商店。通过注册,您可以访问完整的 NVIDIA 套件,每月更新 GPU 优化的框架和培训工具,以便您可以立即构建您的人工智能应用程序。

创建帐户后, 生成 NGC API 密钥 。将生成的 API 密钥放在手边。

现在,您可以通过执行以下命令来配置 NGC CLI (预装有 NVIDIA GPU 优化的 AMI ):

ngc config set

输入前面的 NGC API 密钥,确保 CLI 输出为ASCIIJSON,并使用Choices遵循说明 命令行的部分。

配置后,在 Riva 技能快速入门 第页,通过选择右上角的Download复制下载命令。在 PuTTY 终端中运行该命令。这将启动 Riva 快速启动资源以下载到 EC2 Linux 实例上。

初始化 Riva

下载完成后,您就可以初始化并启动 Riva 了。

默认设置将在 Riva 启动过程中准备所有基础预训练模型,这可能需要几个小时,具体取决于您的互联网速度。但是,您可以使用首选配置修改/quickstart目录中的config.sh文件,围绕从 NGC 检索的模型子集来加快此过程。

在该文件中,如果系统上安装了多个 GPU ,您还可以调整存储位置并指定要使用的 GPU 。此帖子使用默认配置设置。您下载的 Riva 快速启动的版本号( vX.Y.Z )用于运行以下命令( v2.3.0 是本文中使用的版本号)。

cd riva_quickstart_v2.3.0
bash riva_init.sh
bash riva_start.sh

Riva is now running on your virtual machine. To familiarize yourself with Riva, run the Hello World 接下来是示例。

步骤 3 :运行 Riva ASR 和 TTS Hello World 示例

中提供了大量教程 / NVIDIA riva GitHub 回购。 TTS 和 ASR Python 基础笔记本探索了如何使用 Riva API 。

在开始之前,您必须克隆 GitHub repo ,设置 Python 虚拟环境,并通过在/riva_quickstart_v2.3.0目录中运行以下命令在您的机器上安装 Jupyter :

git clone https://github.com/nvidia-riva/tutorials.git

安装并创建名为venv-riva-tutorials的 Python 虚拟环境。

sudo apt install python3-venv
python3 -m venv venv-riva-tutorials
.venv-riva-tutorials/bin/activate

激活虚拟环境后,安装 Riva API 和 Jupyter 。在/riva_quickstart_v2.3.0中创建 I Python 内核 directory.

pip3 install riva_api-2.3.0-py3-none-any.whl
pip3 install nvidia-riva-client
pip3 install jupyter
ipython kernel install --user --name=venv-riva-tutorials

运行一些简单的 Hello World 例如,打开/tutorials 使用以下命令对 Jupyter 笔记本进行目录设置并启动:

cd tutorials
jupyter notebook --generate-config
jupyter notebook --ip=0.0.0.0 --allow-root

由 GPU 供电的 Jupyter 笔记本现在正在运行,可以通过网络访问。复制并粘贴终端上显示的 URL 之一,以开始与 GitHub 教程交互。

在浏览器上打开tts-python-basics.ipynbasr-python-basics.ipynb脚本,并通过选择信任笔记本不受信任在屏幕右上角。要选择venv-riva-tutorials内核,请选择内核,更改内核.

现在,您可以通过笔记本运行第一个Hello World Riva API 调用使用现成模型(图 3 )。

Screenshot of Jupyter Notebook running two scripts titled ‘How do I use Riva ASR APIs with out-of-the-box models?’ and ‘How do I use Riva TTS APIs with out-of-the-box models?’
图 3.Hello World Riva API 笔记本示例

探索其他笔记本电脑,以利用更先进的 Riva 定制功能,如文字增强、更新词汇、 TAO 微调等。按 Ctrl + C 可以退出 Jupyter 在 PuTTY 终端上,使用deactivate命令退出虚拟环境。

第 4 步:启动智能虚拟助手

现在,您已经熟悉了 Riva 的操作方式,可以探索如何将其应用于中的智能虚拟助手 / NVIDIA riva /示例应用程序 github 回购。

要在浏览器上启动此应用程序,请在/riva_quickstart_v2.3.0目录中运行以下命令:

git clone https://github.com/nvidia-riva/sample-apps.git

创建 Python 虚拟环境,并安装必要的依赖项:

python3 -m venv apps-env
. apps-env/bin/activate
pip3 install riva_api-2.3.0-py3-none-any.whl
pip3 install nvidia-riva-client
cd sample-apps/virtual-assistant
pip3 install -U pip
pip3 install -r requirements.txt

在运行演示之前,必须更新 Virtual Assistant 目录中的config.py文件。 Vim 公司 是一个可用于修改文件的文本编辑器:

vim config.py 
Screenshot of PuTTY terminal where users can edit the virtual assistant application’s config.py file.
图 4.编辑虚拟助手应用程序的配置。 py 文件

确保PORT client_config中的变量 设置为8888RIVA_SPEECH_API_URL 值设置为localhost:50051

要允许虚拟助手访问实时天气数据,请注册免费的 天气堆栈 ,获取 API 访问密钥,并在WEATHERSTACK ACCESS KEY下插入键值 和riva_config

现在,您可以部署应用程序了!

部署助手

Run python3 main.py 然后转到以下 URL :https://localhost:8888/rivaWeather。此网页打开天气聊天机器人。

Screenshot of Riva’s sample virtual assistant application.
图 5. NVIDIA Riva 驱动的智能虚拟助手

祝贺

您已经使用 NVIDIA GPU 优化的 AMI 启动了由 NVIDIA GPU 供电的 Amazon EC2 实例,从 NGC 下载了 Riva ,为 ASR 和 TTS 服务执行了基本 Riva API 命令,并启动了智能虚拟助手!

通过在riva_quickstart_v2.3.0中执行以下命令,可以随时停止 Riva 目录:

bash riva_stop.sh.

探索语音人工智能工具的资源

您可以访问一些旨在帮助您学习如何构建和部署语音人工智能应用程序的资源:

  • 这个 / NVIDIA riva /教程 GitHub repo 包含从初级到高级的脚本,引导您完成 ASR 和 TTS 增强,例如 ASR 单词增强和调整 TTS 音高、速率和发音设置。
  • 要构建和自定义语音人工智能管道,您可以使用 NVIDIA 低代码人工智能模型开发 TAO 工具包NeMo 应用框架 对于那些喜欢在引擎盖下进行微调的完全可定制的 Riva ASR 和 TTS 管道的人。
  • 最后,为了大规模部署语音人工智能应用程序,您可以部署 Riva 一 Amazon EKS 并设置 使用 Kubernetes 的自动缩放功能 .

有兴趣了解客户如何在生产中部署 Riva 吗? Minerva CQ 是一个人工智能平台,用于在联络中心提供代理协助 已部署 Riva 在 AWS 上,以及他们自己的自然语言和意图模型,在电动汽车市场上提供独特和提升的客户支持体验。

使用 NVIDIA Riva 在 Minerva CQ 平台上处理自动语音识别( ASR )已经很成功。性能基准测试非常出色, SDK 易于使用,并可根据我们的需要进行高度定制。“密涅瓦 CQ 首席执行官科西莫·斯佩拉

在中探索其他真实世界的语音人工智能用例 Riva 客户故事 看看你的公司如何开始 Riva 企业 .

 

Tags