RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺乏透明、可追溯的推理过程等。提供更准确的回答、降低推理成本、实现外部记忆。
对于大语言模型来说,实时更新的新知识很难在短时间内掌握,但是结合 RAG 技术,就可以让模型针对新知识理解并基于新知识给出更加准确的回答。
在 Intern Studio 服务器上部署茴香豆
复制环境
安装茴香豆运行所需依赖
使用茴香豆搭建 RAG 助手
修改配置文件
下载知识库
创建向量库
遇到错误,没有duckduckgo_search这个包,需要重新安装!
再次运行又出现错误,由于 local_llm_path这个变量在 config.ini中出现两次,按照我们上面的配置信息,保留
local_llm_path = "/root/models/internlm2-chat-7b"
再次运行:
成功!workdir 中已经有了 RAG 的向量库。
运行茴香豆知识助手
一共给模型提问了三个问题,
queries = ["huixiangdou 是什么?", "茴香豆怎么部署到微信群", "今天天气怎么样?"]
第一个问题英文和汉字中间存在空格,模型识别不出来,把空格删掉模型就正常回答了,见下图
带空格的
不带空格的
进阶内容
加入网络搜索
登录 Serper ,注册:
进入 Serper API 界面,复制自己的 API-key:
接着,如下图所示,修改 remote_
相关配置,填写 API key、模型类型等参数。
利用 Gradio 搭建网页 Demo
首先,安装 Gradio 依赖组件:
pip install gradio==4.25.0 redis==5.0.3 flask==3.0.2 lark_oapi==1.2.4
运行脚本,启动茴香豆对话 Demo 服务:
cd /root/huixiangdou python3 -m tests.test_query_gradio
如果需要更换检索的知识领域,只需要用新的语料知识重复步骤 2.2 创建知识库 提取特征到新的向量数据库,更改 huixiangdou/config.ini
文件中 work_dir = "新向量数据库路径"
;
或者运行:
python3 -m tests.test_query_gradi --work_dir <新向量数据库路径>
无需重新训练或微调模型,就可以轻松的让基础模型学会新领域知识,搭建一个新的问答助手。
总结
根据教程配置的茴香豆模型回答对比教程中,存在一些差距,目前还不清楚是什么原因,等后续作业全部完成后再仔细研究。