书生大模型实战营-茴香豆:企业级知识问答工具实践
本文最后更新于:2024年10月3日 12:48
本节任务要点
- 在 InternStudio 中利用 Internlm2-7b 搭建标准版茴香豆知识助手,并使用 Gradio 界面完成 2 轮问答(问题不可与教程重复,作业截图需包括 gradio 界面问题和茴香豆回答)。知识库可根据根据自己工作、学习或感兴趣的内容调整,如金融、医疗、法律、音乐、动漫等(优秀学员必做)。
实践流程
尝试将茴香豆从源码部署到本地服务器(以 InternlmStudio 为例),并开发一款简单的知识助手 Demo。
环境准备
1 |
|
安装
先从茴香豆仓库拉取代码到服务器:
1 |
|
安装茴香豆所需依赖:
1 |
|
茴香豆默认会根据配置文件自动下载对应的模型文件,为了节省时间,本次教程所需的模型已经提前下载到服务器中,我们只需要为本次教程所需的模型建立软连接,然后在配置文件中设置相应路径就可以:
1 |
|
茴香豆的所有功能开启和模型切换都可以通过 config.ini
文件进行修改
执行下面的命令更改配置文件,让茴香豆使用本地模型:
1 |
|
知识库创建
改完配置文件后,就可以进行知识库的搭建,本次教程选用的是茴香豆和 MMPose 的文档,利用茴香豆搭建一个茴香豆和 MMPose 的知识问答助手。(改成心理学相关的文档)
1 |
|
在 huixiangdou 文件加下创建 repodir 文件夹,用来储存知识库原始文档。再创建一个文件夹 workdir 用来存放原始文档特征提取到的向量知识库。.
知识库创建成功后会有一系列小测试,检验问题拒答和响应效果,如图所示,关于“mmpose 安装”的问题,测试结果可以很好的反馈相应答案和对应的参考文件,但关于“std::vector 使用”的问题,因为属于 C++ 范畴,不再在知识库范围内,测试结果显示拒答,说明我们的知识助手工作正常。
和 Web 版一样,本地版也可以通过编辑正反例来调整茴香豆的拒答和响应,正例位于 /root/huixiangdou/resource/good_questions.json
文件夹中,反例位于/root/huixiangdou/resource/bad_questions.json
。
需要注意的是,每次更新原始知识文档和正反例,都需要重新运行 python3 -m huixiangdou.service.feature_store
命令进行向量知识库的重新创建和应答阈值的更新。
配置中可见,在运行过一次特征提取后,茴香豆的阈值从 -1.0 更新到了 0.33。 配置文件中的 work_dir
参数指定了特征提取后向量知识库存放的位置。如果有多个知识库快速切换的需求,可以通过更改该参数实现。
测试知识助手
运行下面的命令,可以用命令行对现有知识库问答助手进行测试:
1 |
|
茴香豆也用 gradio
搭建了一个 Web UI 的测试界面,用来测试本地茴香豆助手的效果。
在运行茴香豆助手的服务器端,输入下面的命令,启动茴香豆 Web UI:
1 |
|
自建数据库
反向数据:不变,并且加上关于huixiangdou的正向(反正也没关系)
正向数据,用ai生成,提示词
1 |
|
输出结果
1 |
|
总结
非常实用