智能体引用知识库效果不好,可以从以下方面着手调整:
在最开始,我们需要确定知识库包含哪些文档,比如政策原文文档、业务积累的QA、操作指引、产品说明等,并对这些文档进行预处理。知识库本身质量对最终效果的影响至关重要,这是大模型最终生成回答的原始语料。在此阶段,可以考虑以下优化方向:文档的格式:pdf、docx()等不同格式的文档,识别难度不一样。从目前公开的资料来看,一般PDF文档的效果会更好一些,因为pdf文档的格式信息相对来说较为简洁,对大模型干扰少。但也有说.docx的效果更优的,因此实践中还是要根据场景去测试。文档命名:尽量控制在10字左右,涵义简洁明了,避免标题中出现无意义的数字、符号或缩写。文档语言:尽量统一为同一种。因为embedding模型对于中英文、繁简体的支持可能不一样,如果文档不做处理,引擎会把中英文切到一个chunk里面,向量化之后有一半可能是乱码,有一半是没有用的数据。文档内容:设置可清晰识别的一二级标题,对难以处理的图片、表格、公式、超链接、附件、架构图、代码等进行特殊处理。
本地word文件,这里要注意了~~~如何拆分内容,提高训练数据准确度,将海报的内容训练的知识库里面画小二这个课程80节课程,分为了11个章节,那训练数据能不能一股脑全部放进去训练呢。答案是~~不能滴~~~正确的方法,首先将11章的大的章节名称内容放进来,如下图所示。章节内详细内容格式如下如所示,如果你再分节的内容,依次类推细化下去。每个章节都按照这种固定的方式进行人工标注和处理然后选择创建知识库自定义清洗数据,这里不再赘述。
基于以上的分析,我们先选取了实现成本最小的方式进行调优,结果如下:1、更换大模型:从ChatGLM2-6B替换成baichuan2-13b,发现针对我们的场景,后者的性能可以提升一倍左右。2、更换embedding模型:将embedding模型从LangChain Chatchat默认的m3e-base替换为bge-large-zh,发现后者优于前者3、测试不同Top k的值:比较Top 5、Top 10、Top 15的结果,发现Top 10时效果最优。4、对文档名称进行处理:由于原来的政策文件,在导出时文件名会进行简化,如too_long_发展行动方案。因此,人工对文件进行重命名,上传相同文件构建知识库,同时在构建知识库时勾选【开启中文标题加强】选项,发现重命名文件对结果的提升效果不明显,但勾选【开启中文标题加强】选项后,回答的无关信息减少,效果有所提升。目前来看,尽管效果有所提升,但仍未达到可用水平,后续我们也将尝试其他的调优策略。