本地语音聊天机器人:在Seeed Studio reComputer Jetson上部署Riva和Llama2
所有教程都免费开源,请动动小手点个小星星https://github.com/Seeed-Projects/jetson-examples
简介
随着人工智能技术的迅速发展,语音交互已成为人机交互的重要模式之一。尤其是在智能家居、个人助手和客户服务支持等领域,对语音聊天机器人的需求显著增加。然而,大多数现有的语音聊天机器人依赖于云计算服务,这在一定程度上引发了数据隐私和网络延迟的担忧。
本项目旨在通过构建一个本地操作的语音聊天机器人来解决这些问题。我们利用Nvidia Riva和Meta Llama2,开发了一个安全、私密、响应快速的语音交互系统。
准备工作
配备16GB以上内存的Jetson设备。 硬件设备需要预先刷入JetPack 5.1.1操作系统。 扬声器和麦克风。注意: 我在Jetson AGX Orin 32GB H01 Kit上完成了所有实验,但你可以尝试在内存较少的设备上加载更小的模型。
立即购买 🖱️
开始使用
硬件连接
将音频输入/输出设备连接到reComputer。 打开reComputer并确保其正常联网。安装Riva服务器
请参考这里获取更详细的信息。
步骤1. 访问并登录NVIDIA NGC。
步骤2. 获取NGC API密钥。
Account(右上角)
--> Setup
--> Get API Key
--> Generate API Key
--> Confirm
请记录生成的API密钥。
步骤3. 在reComputer上配置NGC。
打开reComputer终端(你可以使用快捷键Ctrl+Alt+T
在reComputer桌面上快速打开终端,或者可以使用另一台电脑远程访问reComputer的终端),并依次输入以下命令。
cd ~ && mkdir ngc_setup && cd ngc_setup
wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions/3.36.0/files/ngccli_arm64.zip && unzip ngccli_arm64.zip
chmod u+x ngc-cli/ngc
echo "export PATH=\"\$PATH:$(pwd)/ngc-cli\"" >> ~/.bash_profile && source ~/.bash_profile
ngc config set
在终端交互界面中输入相关信息。
步骤4. 在reComputer上安装并运行Riva服务器。
在reComputer终端中输入以下命令。
cd ~ && mkdir riva_setup && cd riva_setup
ngc registry resource download-version nvidia/riva/riva_quickstart_arm64:2.13.1
cd riva_quickstart_v2.13.1
使用Vim
编辑配置文件。
vim config.sh
# 按键盘上的`A`键进入编辑模式。
# 根据以下指示编辑第18行和第20行。
# service_enabled_nlp=true --> service_enabled_nlp=false
# service_enabled_nmt=true --> service_enabled_nmt=false
# 按`ESC`退出编辑模式,然后使用快捷键`Shift+Z Z`保存编辑内容并关闭编辑器。
编辑后的配置文件:
config.sh# 省略长段代码,仅显示部分修改内容
service_enabled_asr=true
service_enabled_nlp=false
service_enabled_tts=true
service_enabled_nmt=false
使用类似的方法修改 /etc/docker/daemon.json
文件。
sudo vim /etc/docker/daemon.json
# 添加这一行 >> "default-runtime": "nvidia"
# 按`ESC`退出编辑模式,然后使用快捷键`Shift+Z Z`保存编辑内容并关闭编辑器。
sudo systemctl restart docker
编辑后的配置文件如下:
/etc/docker/daemon.json{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
使用以下命令初始化并启动Riva:
sudo bash riva_init.sh
sudo bash riva_start.sh
请注意,你需要保持此终端处于活跃状态。
安装并运行LLM
为了简化安装过程,我们可以参考Dusty的jetson-containers项目来安装text generation inference,并使用该工具加载Llama2 7B大语言模型。打开一个新终端并运行以下命令。
cd ~
git clone https://github.com/dusty-nv/jetson-containers.git
cd jetson-containers
pip install -r requirements.txt
./run.sh $(./autotag text-generation-inference)
export HUGGING_FACE_HUB_TOKEN=<your hugging face token>
text-generation-launcher --model-id meta-llama/Llama-2-7b-chat-hf --port 8899
你可以在这里获取hugging face token。
请注意,你需要保持此终端处于活跃状态。
克隆本地聊天机器人演示并尝试运行它
现在,你应该至少打开了两个终端,一个运行Riva服务器,另一个运行text generation inference服务器。接下来,我们需要打开一个新终端来运行我们的演示。
cd ~
git clone https://github.com/yuyoujiang/Deploy-Riva-LLama-on-Jetson.git
cd Deploy-Riva-LLama-on-Jetson
# 查询音频输入/输出设备。
python3 local_chatbot.py --list-input-devices
python3
local_chatbot.py --list-output-devices
python3 local_chatbot.py --input-device <your device id> --output-device <your device id>
# 例如: python3 local_chatbot.py --input-device 25 --output-device 30
效果演示
Youtube
参考资料
一键部署项目: Jetson examples build-an-ai-chatbot-using-riva-and-openai https://github.com/dusty-nv/jetson-containers https://github.com/huggingface/text-generation-inference https://huggingface.co/meta-llama 本文内容翻译自Seeed Studio Wiki内容贡献者
Seeed Studio–Yu Youjiang
总结
### 文章总结:《本地语音聊天机器人:在Jetson上部署Riva和Llama2》#### 项目背景
随着AI技术的迅速发展,语音交互成为重要的人机交互模式,尤其在智能家居、个人助手等领域需求激增。传统语音聊天机器人多依赖云计算,引发数据隐私和网络延迟问题。本项目通过构建本地操作的语音聊天机器人,利用NVIDIA Riva和Meta Llama2技术,提供安全、私密、快速的语音交互解决方案。
#### 准备工作
- **硬件**:配备16GB以上内存的Jetson设备(建议使用Jetson AGX Orin 32GB),需预先刷入JetPack 5.1.1操作系统,以及扬声器和麦克风。
- **软件安装**:需安装和配置NVIDIA NGC CLI,用以下载和安装Riva服务器和相关Docker配置。
#### 详细步骤
1. **硬件连接**:
将音频输入输出设备连接到Jetson reComputer,并确保设备正常联网。
2. **安装Riva服务器**:
- 访问NVIDIA NGC获取API密钥并配置NGC CLI。
- 下载并运行Riva服务器,通过编辑配置文件禁用NLP和NMT服务,仅启用ASR和TTS服务。
3. **安装并运行Large Language Model (LLM)**:
- 使用Dusty的jetson-containers项目安装text generation inference,并加载Llama2 7B模型。
- 配置Hugging Face token并启动LLM服务。
4. **运行本地语音聊天机器人演示**:
- 克隆项目代码,通过命令行参数指定音频输入输出设备ID,运行聊天机器人。
#### 效果演示及资源
- 可以通过查看项目在YouTube上的视频演示直观地了解运行效果。
- 提供了多个参考链接,如一键部署项目、如何利用Riva和OpenAI构建AI聊天机器人的教程等,全面支持项目部署和学习。
#### 贡献者
项目由Seeed Studio的Yu Youjiang贡献。
#### 总结
本文通过详细步骤介绍了如何在Nvidia Jetson设备上部署NVIDIA Riva和Meta Llama2大模型,构建一个本地的、隐私保护且响应迅速的语音聊天机器人系统。这不仅提高了应用的安全性和速度,还为AI语音交互领域的应用提供了新思路。