部署本地语音聊天机器人:在Seeed Studio reComputer Jetson上部署Riva和Llama2

本地语音聊天机器人:在Seeed Studio reComputer Jetson上部署Riva和Llama2

所有教程都免费开源,请动动小手点个小星星https://github.com/Seeed-Projects/jetson-examples

简介

随着人工智能技术的迅速发展,语音交互已成为人机交互的重要模式之一。尤其是在智能家居、个人助手和客户服务支持等领域,对语音聊天机器人的需求显著增加。然而,大多数现有的语音聊天机器人依赖于云计算服务,这在一定程度上引发了数据隐私和网络延迟的担忧。

本项目旨在通过构建一个本地操作的语音聊天机器人来解决这些问题。我们利用Nvidia RivaMeta Llama2,开发了一个安全、私密、响应快速的语音交互系统。

准备工作

注意: 我在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

参考资料

内容贡献者

Seeed Studio–Yu Youjiang

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值