当GPT-4无法正确回答一个问题时,依靠RAG和检索得到的正确知识,一定就能生成正确的回答吗?如果RAG知识库中的知识是错的、或者RAG知识库中的知识与大模型内部的知识相矛盾,会出现什么结果?
围绕这些问题,斯坦福大学近期的一篇论文[1]介绍了作者们的有关实验以及实验的结果。
实验结果
实验的主要结果如下。
一、当大模型使用检索出的正确知识回答问题时,能够正确回答94%的测试问题。相比之下,当大模型不使用检索、单独回答测试问题时,只能正确回答35%的测试问题。这表明RAG能够提高、但是不能确保大模型回答问题的准确性。
二、检索得到的知识是否会被大模型采用,与大模型对于其内部知识的确信程度有关:
- 如果大模型对于其内部知识的确信程度较弱,生成的回答则倾向于使用检索得到的知识;
- 如果大模型对于其内部知识的确信程度较强,生成的回答则倾向于使用大模型内部的知识;
- 计算“确信程度”时,实验中依据的是大模型输出的token的logprobs值。
三、当RAG知识库中的知识与正确的知识相矛盾时,矛盾的程度越大,生成的回答就越倾向于使用大模型内部的知识。这表明了知识库中存储正确知识的重要性。
四、当检索得到的知识与大模型内部的知识相矛盾时,矛盾的程度越大,生成的回答就越倾向于使用大模型内部的知识。这表明了大模型内部知识的正确性同样非常重要。
五、提示语的倾向性会影响生成的回答:
- 如果提示语倾向于忽略大模型的内部知识,生成的回答就倾向于使用检索得到的知识;
- 如果提示语鼓励在(a)检索得到的知识和(b)大模型内部知识两方面之间做出权衡,生成的回答则倾向于使用