我今天写的这篇文章尝试解答以下3 个问题:
"微调和 RAG,到底选哪个?两者区别"
"有了支持超长上下文窗口的 LLM,是否还需要 RAG "
"目前现实可行, 已经落地的 RAG 优化方案有哪些"
-------
"微调和 RAG,到底选哪个?两者区别"
这个问题在这 2 篇论文中有专门研究:
arxiv.org和
arxiv.org结论是: RAG在生成质量上往往优于(有监督/无监督)微调的语言模型,特别是在需要外部知识回答的场景下
其他的比较点:
RAG 不仅在保持高效性能的同时使用更少的算力资源,还具备灵活应对信息检索准确性问题的能力。具体而言,当检索到的信息不准确或有害时,RAG 允许对索引进行调整或替换,而不需要重新训练整个模型
此外,RAG 的模块化设计使得不同的组织可以根据需求使用专属的知识库,避免了将所有数据混合在一个不可解释的黑箱模型中的问题,从而提高了模型的透明度和可定制性。这种架构对企业和研究机构尤其有吸引力,因为它能够更好地管理专有数据和知识
---------
"有了支持超长上下文窗口的 LLM,是否还需要 RAG "
现在支持超长上下文窗口long context LLM(如 10M tokens的 gemini 1.5)的模型已经出现,许多人认为 RAG 已经没有必要,因为可以将数百个文档直接上传给 LLM 进行阅读和处理。
但是,需要考虑以下三个关键问题:
相关性:上传如此多的文档,仍然需要考虑哪些文档与问题最相关,否则容易导致答案偏离
性能影响:上传大量文档对模型性能的影响有多大?模型是否能够高效地处理并回答相关问题?
算力成本:上传过多文档会导致算力成本显著增加,这也是为什么很多 LLM 目前仍然无法支持过多上下文窗口的原因。比如,GPT-4 在处理 30k 汉字内容时可能会出现宕机的情况
对于超长上下文窗口一个有趣的类比是:尽管我们的 RAM 内存足够大,但很多操作仍需在硬盘上进行读写传输,而不是全部存储在 RAM 中
----
第 3 个问题请看文章, 这里不多说
我写的其他 RAG 相关文章:
一手体验AnythingLLM: 总感觉现在的RAG项目徒有其表, 太生硬:
mp.weixin.qq.com 阻碍AI知识库生产落地的3大困境, 3 个RAG新框架真能救场?(HippoRAG):
mp.weixin.qq.com