以下是一些改进基础搭建的知识库效果、减轻模型答案幻觉问题的建议:
RAG(Retrieval-Augmented Generation)即检索增强生成,由检索器和生成器两部分组成。检索器从外部知识中快速找到与问题相关的信息,生成器利用这些信息制作精确连贯的答案,适合处理需要广泛知识的任务。
在大模型中,向量可想象成空间中的点位,每个词或短语对应一个点。系统通过查看词在虚拟空间中点的位置,寻找直线距离最近的点来检索语义上接近的词语或信息。理解向量后,当收到一个对话时,RAG 的完整工作流程为:检索器从外部知识中检索相关信息,生成器利用这些信息生成答案。
要优化幻觉问题和提高准确性,需要了解从“问题输入”到“得到回复”的过程,针对每个环节逐个调优,以达到最佳效果。
其中,她是陈美嘉,这里是人设中的设定。吵架的经过是知识库中的内容。在我提问了之后,大模型去知识库里找到了相关内容,然后回复了我。这就是一个简单的正确回复的demo示例。然而,我们会发现,有时候她的回答会十分不准确。图二明显回答的牛头不对马嘴。图三是知识库截图,其中是有“一菲为美嘉找了一份助教工作”的内容的。但是回答这个问题时,AI并没有根据正确的知识库内容回答。这,就是基于知识库问答中的一个非常常见的错误场景。在其他情况下,甚至有可能出现报价错误、胡编乱造等等。这在严肃场景中,是不能接受的出错。现在应该能够直观的理解,为什么需要让大模型根据知识库回答的更加准确、更符合我们的要求。在AI领域中,优化AI更准确回答问题的过程,有一个更加专业的术语,叫做RAG。接下来,咱们进入正题,一步一步探索,如何优化回答。二、基础概念如果我们要优化幻觉问题和提高准确性,就务必要了解清楚从“问题输入”--“得到回复”,这个过程中,究竟发生了什么。然后针对每一个环节,逐个调优,以达到效果最佳化。因此,我们先深入其中了解问答全貌。
开发:产品视角的大模型RAG应用[heading1]调优实践[content]基于以上的分析,我们先选取了实现成本最小的方式进行调优,结果如下: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_发展行动方案。因此,人工对文件进行重命名,上传相同文件构建知识库,同时在构建知识库时勾选【开启中文标题加强】选项,发现重命名文件对结果的提升效果不明显,但勾选【开启中文标题加强】选项后,回答的无关信息减少,效果有所提升。目前来看,尽管效果有所提升,但仍未达到可用水平,后续我们也将尝试其他的调优策略。
如果我们要优化幻觉问题和提高准确性,就务必要了解清楚从“问题输入”----“得到回复”,这个过程中,究竟发生了什么。然后针对每一个环节,逐个调优,以达到效果最佳化。因此,我们先深入其中了解问答全貌。[heading3]1、RAG[content]RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合信息检索和文本生成能力的技术,它由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。简单来说,就是通过检索的模式,为大语言模型的生成提供更多信息,从而使大模型生成的答案更符合要求。[heading3]2、向量[content]首先我们需补个课,简单了解一下大模型中的“向量”:(同时建议了解下LLM的实现原理)你可以把向量想象成空间中的点位,而每个词或短语都对应一个点。当系统需要找到与一个特定词或短语相关的内容时,它会查看这个词在虚拟空间中点的位置,寻找直线距离最近的点。在这个空间中,距离越近的点,代表词义或内容上的关联度越高。简单来说,通过比较这些点的距离,检索器可以快速找到语义上接近的词语或信息,从而高效地检索相关内容。这就像在一个城市地图上找最近的餐馆,距离越近,越可能是你想去的地方。理解了向量,我们来看看收到一个对话时,RAG的完整的工作流程。