目前针对RAG和Long-Context存在很多声音,大家争论的点在于:
- 1 如果大模型可以接受的Long-Context越长,似乎就不需要检索了。
- 2 大模型Long-Context越长,其推理的KV-Cache越大,占用显存消耗越大。
1 RAG和Long-Context的区别
- 1 RAG:通过用户问题从数据库/知识库中找到相关片段内容,再利用大模型查找或总结出答案。
- 2 Long-Context:将所有文本内容全部灌入到大模型中,用户问一个问题,再利用大模型查找或总结出答案。
- 3 RAG和Long-Context其本质在于通过retriever检索还是大模型检索外部知识中的key information。
2 RAG和Long-Context的劣势
RAG利用检索系统来从向量库中检索出用户query的知识,但是整个过程会出现文档原始语义切割问题,检索准确率等问题。
Long-Context使用大模型一次性进行Self-Attention可以精准定义用户query需要的内容,但是这也对模型的长文本定位能力发出了挑战。
3 RAG和Long-Context的优势
在某些上下文长度未超过大模型的限制时,直接一股脑交给大模型即可。
反之,还是需要检索系统帮助进行信息的压缩,再交给长上下文的大模型。
故RAG和Long-Context应该是互补的关系,我们可以良好的根据场景和资源消耗来决定如何搭配使用来构建问答系统。
4 参考文献