大模型部署手记(18)Windows+JupyterLab+Nemo+Llama2+llama-index+语音对话机器人

本文详细描述了作者在Windows环境下如何通过Nvidia的Nemo库构建中文场景检索式对话机器人,包括创建conda环境、安装必要的库(如PyTorch、FastText)、解决安装问题以及配置和测试各个组件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在Nvidia上了一课:《基于 LLM 构建中文场景检索式对话机器人:Llama2+NeMo》

于是张小白很想在Windows GPU上试一试。

打开Jupyter Notebook

系统会弹出以下窗口:

复制上面的链接:

http://127.0.0.1:8888/?token=7779a3c170bdf513646f6e631fc0ee12e7686216eedce604

在浏览器打开:

点击New-》Terminal:

在弹出的窗口中输入conda env list

可以看到前面玩转大模型使用的conda环境清单。

new一个notebook:

不过这种方法貌似不好使用conda环境。

换一种方式:

打开 Anaconda Powershell Prompt 创建一个conda环境

conda create -n nemo python=3.10 -y

conda activate nemo

根据 GitHub - NVIDIA/NeMo: NeMo: a toolkit for conversational AI

安装Pytorch:

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

安装Nemo:

#apt-get update && apt-get install -y libsndfile1 ffmpeg pip install Cython

pip install nemo_toolkit['all']

经过漫长的等待和重试之后:

pip install fasttext

查看 windows使用pip 安装 fasttext 总是失败,合理利用第三方安装包的库_安装pyfasttext0.4.5版本失败-优快云博客

打开 https://www.lfd.uci.edu/~gohlke/pythonlibs/

搜索fasttext:

下载python 3.10的win64的版本:fasttext-0.9.2-cp310-cp310-win_amd64.whl

C:\Users\xishu\Downloads

pip install ./fasttext-0.9.2-cp310-cp310-win_amd64.whl

重试:

pip install nemo_toolkit['all']

看看第二个pynini在刚才那个链接有没有呢?

并没有。

查看 程序报错无tn.chinese,后win10安装WeTextProcessing库报错解决-优快云博客

conda install -c conda-forge pynini

重试:

pip install nemo_toolkit['all']

世上无难事,只怕有心人。

下载Nemo代码仓:

d:

cd \

git clone https://github.com/NVIDIA/NeMo.git

参考 【精选】在 Windows 上使用 NVIDIA Nemo 搭建翻译 API 服务_nvidia nemo windows_Anomniverse的博客-优快云博客

查看Nemo是否安装成功:

git clone https://github.com/wnger/nemo-api.git

cd nemo-api

python test.py

看样子是可以的。

安装llama-index

pip install llama-index

创建d:\nemo-llama目录,将 讲座的notebook文件和讲义存到该目录:

参考 张小白带您跟随胡琦大大一起做蚂蚁牙黑Part Two:张小白本地JupyterLab的尝试-云社区-华为云

安装下jupyterLab

pip install jupyter

pip install jupyterlab

好像这步没装啥。。。

切换到nemo-llama目录,运行:

jupyter lab --no-browser

浏览器打开终端显示的地址: http://127.0.0.1:8888/lab?token=7282f7740cf30656f7aa42e638ec1960a1a6cb07d132d4bb

点击Notebook

python -V

双击打开左边的notebook文件:nemo_llama2.ipynb

依次执行notebook的cell:导入Nemo工具库及相关工具类

缺包:

增加一个cell安装这个包:!pip install chinese2digits

再来:导入Nemo工具库及相关工具类

成功了。

执行下一个cell:加载语音识别模型

还好这个模型只是从nvidia下载而不是从Huggingface.co下载。

耐心等待下载完毕。

运行成功。

用录音机录一段话:

打开文件夹:

这时保存的文件是 test.m4a格式。

使用格式工厂将其转为wav格式:

将转换好的文件复制到 d:\nemo-llama目录下:

执行下一个cell:传入语音文件进行语音识别

经过咨询专家:

格式转换的时候,需要设置成 单声道输出:

转换成功后,将test.wav文件传到 D:\nemo-llama 目录。

重新执行:

执行下一个cell:Llama_index工具库中导入向量储存索引、数据读取以及上下文处理工具类

执行下一个cell:从llama index工具库中导入prompt设置工具类

在执行下一个cell之前,先去Huggingface下载 LinkSoul/Chinese-Llama-2-7b 模型:

下载完的模型保存在 D:\nemo-llama\LinkSoul\Chinese-Llama-2-7b

同时下载 sentence-transformers/all-mpnet-base-v2 (此处需注意还需要下载1_Pooling子目录)

下载完的模型保存在 D:\nemo-llama\sentence-transformers\all-mpnet-base-v2

执行下一个cell:通过HuggingFaceLLM加载并设置大模型相关参数

需要安装个加速包:

再来:

根据专家的提示,试试去掉别的参数: model_kwargs={"torch_dtype": torch.float16 }

终于加载成功!

执行下一个cell:从langchain中导入HuggingFaceEmbeddings以及从llama index中导入langchainEmbeding与serviceContext工具类

执行下一个cell:构建servicecontext服务上下文管道,用来融合大模型和向量化模型

查看 https://zhuanlan.zhihu.com/p/272181552?utm_id=0

打开记事本,修改hosts文件:

打开一个cell,执行:

import nltk

nltk.download('punkt')

貌似网好像还是不大通畅。。

多试几次,终于成功。

重新执行这个cell:

成功了!

执行下一个cell:使用SimpleDirectoryReader读取数据

准备一本电子书,将其放入 D:\nemo-llama\book 目录·,修改路径:

documents = SimpleDirectoryReader("D:\\nemo-llama\\book").load_data()

执行:

执行下一个cell:依据数据集构建向量化索引知识库

这个执行比较长,要耐心等待执行完毕。

继续执行:

这个也得耐心等待。。。

等了好半天,终于出来了。

'莫扎特的弦乐五重奏是一种具有优美旋律和丰富的和声的音乐形式。它通常由四个乐章组成,每个乐章都有自己独特的主题和变化。莫扎特的弦乐五重奏还具有丰富的情感表达和精湛的技巧,使其成为古典音乐中最受欢迎的形式之一。 '

执行下一个cell:构建机器的“嘴巴”将文字用声音说出来

执行下一个cell:加载fastpitch声学模型

耐心等待执行完毕:

执行下一个cell:通过Fastpitch声学模型将文字转换成对应频谱图

执行下一个cell:加载HiFigan声码器模型

找不到这个文件,于是专家给了一个文件:

重新执行:

执行下一个cell:使用HiFigan声码器将频谱图合成出语音

执行完毕。

但是生成的语音好像有点不大对头。。

现在nemo的版本:

专家提醒,换成 nemo 1.18.1的版本试试:

重新运行:

语音文件成功生成了!

另外,还需要回头重新录音,将语音改成 “莫扎特的弦乐五重奏有什么特点”并做单声道输出,然后依次执行所有cell。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小白TWO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值