当GPT-4无法正确回答一个问题时,依靠RAG和检索得到的正确知识,一定就能生成正确的回答吗?如果RAG知识库中的知识是错的、或者RAG知识库中的知识与大模型内部的知识相矛盾,会出现什么结果?
围绕这些问题,斯坦福大学近期的一篇论文[1]介绍了作者们的有关实验以及实验的结果。
实验结果
实验的主要结果如下。
一、当大模型使用检索出的正确知识回答问题时,能够正确回答94%的测试问题。相比之下,当大模型不使用检索、单独回答测试问题时,只能正确回答35%的测试问题。这表明RAG能够提高、但是不能确保大模型回答问题的准确性。
二、检索得到的知识是否会被大模型采用,与大模型对于其内部知识的确信程度有关:
- 如果大模型对于其内部知识的确信程度较弱,生成的回答则倾向于使用检索得到的知识;
- 如果大模型对于其内部知识的确信程度较强,生成的回答则倾向于使用大模型内部的知识;
- 计算“确信程度”时,实验中依据的是大模型输出的token的logprobs值。
三、当RAG知识库中的知识与正确的知识相矛盾时,矛盾的程度越大,生成的回答就越倾向于使用大模型内部的知识。这表明了知识库中存储正确知识的重要性。
四、当检索得到的知识与大模型内部的知识相矛盾时,矛盾的程度越大,生成的回答就越倾向于使用大模型内部的知识。这表明了大模型内部知识的正确性同样非常重要。
五、提示语的倾向性会影响生成的回答:
- 如果提示语倾向于忽略大模型的内部知识,生成的回答就倾向于使用检索得到的知识;
- 如果提示语鼓励在(a)检索得到的知识和(b)大模型内部知识两方面之间做出权衡,生成的回答则倾向于使用大模型内部的知识。
实验结果总结
上述的实验结果可以总结为:
- RAG能够提高大模型回答问题的准确性;
- 即使所有相关的知识都能被检索到,RAG也难以达到100%的准确率;【算AI】小编猜测这一现象可能与检索到知识的过于复杂、检索到知识的呈现格式容易引发误解等有关[2],也可能与大模型内部的错误知识有关;
- RAG知识库知识的正确性,以及大模型内部知识的正确性,都非常重要;
- 提示语的措辞对于RAG的准确性也非常重要。
实验的局限
论文的作者们指出了实验的一些局限,包括:
- 测试用的问答仅涉及药物服用剂量、体育成绩、新闻、维基百科中的日期、人名、城市名等少数知识领域;
- 测试用的问答仅包括针对事实的问答,而不包括涉及更高层次推理的问答;
- 测试中模拟的错误知识不包括较难模拟的错别字、模糊含义、信息缺失等类型的错误知识;
- 试验用的大模型仅包括了能输出token的logprobs值的大模型,例如GPT-4、GPT-3.5、以及部分Mistral-7B模型,而没有包括Gemini、Claude等其它大模型。
实验简介
作者们在实验中使用了1200多道问答题。提问问题的类型包括:
- 某药物的最大服用剂量是多少;
- 某项速滑运动的奥运会记录是多长时间;
- 某件事情是哪年发生的;
- 某人出生于哪个城市,等等。
作者们在模拟产生不同错误程度的错误知识时,使用了以下的方法:
- 将正确知识中的数值部分替换成不同偏差程度的数值;
- 将正确知识中的年代部分替换成不同偏差程度的年代;
- 将正确知识中的地名、人名等文本替换成不同差别程度的文本。
参考文献:
[1] How Faithful are RAG Models? Quantifying the Tug-of-War between RAG and LLMs' Internal Prior. https://arxiv.org/pdf/2404.10198
[2] RAGged Edges: The Double-Edged Sword of Retrieval-Augmented Chatbots. https://arxiv.org/pdf/2403.01193
封面图:Phillip Glickman、Unsplash