这才是真正RAG,如果只是把检索得到结果放到prompt里面,可能够呛。
好久没有读paper了,最近因为有个小工作,来读一篇较早提出来RAG想法的文章吧。这篇文章是Facebook、伦敦大学学院以及纽约大学的研究者们搞出来的。文章首先指出,目前大语言模型在一些知识密集型任务上,性能并不高,而且你总不能一直要求大语言模型不断训练新知识吧,成本也是很高的,于是乎。他们提出了a general-purpose fine-tuning recipe for retrieval-augmented generation (RAG) — models which combine pre-trained parametric and non-parametric memory for language generation. 基于RAG的微调方法,用这个方法模型会将预训练的参数和非参数记忆结合起来进行内容生成。这句话听起来有些麻烦,但是咱们仔细看看他们是怎么做的。但是在看细节之前,先讲一下为什么现在RAG这么火,到处都在尝试用。主要原因就是大语言模型的Hallucination,幻觉特性。也就是大语言模型会,讲出不符合实际的回答(与事实不一致,或者直接捏造),有点像瞎编的一样。一些研究人员把幻觉主要分成了几类:
- 和指令表现不符,LLM忽略了用户的指令。比如你跟他说我要用中文回答,LLM用英文回答了问题。
- 上下文不一致,LLM输出了与所提供的上下文不存在或矛盾的信息。
- 逻辑不一致,LLM的输出存在逻辑错误。
幻觉的原因,目前