利用RAG开源库LangChain-Chatchat搭建地理教学产品智能问答服务

目录

背景介绍:

Demo界面:

Demo能力:

技术原理:

测试情况:

测试方法:

主要配置参数说明:

测试总结:

测试案例展示:

结果分析与后续计划:


背景介绍:

        2023年年底,公司想要做一款地理教学产品,为中小学生提供生动有趣的地理教学体验。领导希望能将地理知识问答功能纳入其中,学生可以与ChatBot对话,请教地理相关的问题。

        于是我们做了相关技术的调研,找到了一款RAG开源库LangChain-Chatchat,并做了相关的实验。2024年1月3日,我将调研情况进行了简单整理,记录于此,以备后续查阅。若有相关需求或经验同学,欢迎交流!

原作者源码地址如下:

https://github.com/chatchat-space/Langchain-Chatchat

Demo界面:

Demo能力:

使用开源的检索增强生成(RAG)大模型知识库LangChain-Chatchat v0.2.8版本(2023年12月1日发布)。与本产品智能问答模块相关的能力如下:

1)知识库管理:可上传、删除知识库,上传的知识会转成向量入到向量库中,删除知识则会从向量库里移除相关知识的向量。

2)知识库问答:结合Embedding模型和LLM的能力,实现知识库问答功能。用户输入问题,系统在知识库中查找与用户问题匹配的知识,经过LLM整理后,返回给用户。

技术原理:

测试情况:

测试方法:

输入与已入库知识库知识相关的问题,期望系统从知识库中检索到相应的答案,并以简洁、严谨的形式返回。

主要配置参数说明:

配置项

参数值

LLM

当前:Qwen-1_8B-Chat

离线:ChatGLM(1|2|3-6b)、Qwen(1.8|7|14|72b)、Baichuan(1|2-7|13b)、Llama-2-7b-chat-hf……

联网:ChatGPT、智谱AI、讯飞星火、百度千帆、阿里通义千问、字节火山方舟、百川……

Embedding模型

当前:bge-large-zh

可选:m3e、bge、text2vec、ERNIE等

向量库

Faiss、Milvus、PGVector

数据库

sqlite、mysql

已入库的知识

目前已上传:

1)自行整理的高考知识点,包含了自然地理、人文地理、世界地理共148KB的文本内容:

2)高中地理课本,包含如下4本教材的文本内容,pdf扫描件转word,转文字精度较高:

Prompt配置

其它入库/问答参数

Temperature:0.1

TopK:3

知识匹配分数阈值:0.5,取值范围在0-1之间,SCORE越小,相关度越高,取到1相当于不筛选,建议设置在0.5左右。

分词器:ChineseRecursiveTextSplitter。知识入库时,利用标点符号对文档进行分割,超过给定长度(250字符)则递归分割。

测试总结:

  1. 知识库中存在的知识,系统基本可从知识库中查询到,但存在较多结果不准确的情况。
  2. 知识库中不存在的知识,系统会利用LLM自身能力解答,结果准确性视LLM模型本身而定。
  3. 在目前LLM参数量较小(1.8B)及知识库体量不大的情况下,秒级返回检索结果

测试案例展示:

结果分析与后续计划:

1)LLM

本测试使用Qwen-1_8B-Chat模型,参数量1.8B较小,显存占用4G左右,模型对自然语言的理解和整理能力较弱,或为导致已有知识库检索结果不准确的主要原因,需要尝试参数量更大的模型。大领导建议尝试在线API,看看其检索效果,我们是线上产品,可以接入别的LLM的API。

2)Embedding模型和向量库相似度检索

  • Embedding模型选用bge-large-zh,其作用是将用户输入query转成向量,对整个链路精度的影响或许不大,但仍需要进一步验证
  • 向量库选用FAISS,在检索时其会返回与用户输入query向量相似度最高的TopK个docs向量,这TopK个向量与用户输入query相关度有多高待进一步验证

3)分词算法

目前采用默认的ChineseRecursiveTextSplitter。知识入库时,利用标点符号对文档进行分割,超过给定长度(250字符)则递归分割。暂未验证向量库中存储向量的合理性,对整个链路精度的影响或许不大,但仍需要进一步验证。

4)知识本身质量:

word文档排版较为复杂,文字内容分散、图片较多。暂不清楚分词算法对其分词的逻辑,可能会出现意想不到的情况。需要进一步验证知识入库前的数据质量,必要时进行数据清洗,或寻找其它格式更好的来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值