向o1看齐,Google开源RAG推理扩展,提升近60%
论文笔记分享, 标题Inference Scaling for Long-Context Retrieval Augmented Generation,来自google deepmind
openai o1通过让扩展推理,让模型在推理方面达到非常优异的性能。google这篇内容,核心想验证2个点
- RAG系统的性能,如何从推理计算扩展中受益
- 通过建立RAG性能和推理参数之间的关系模型来预测给定预算下的最佳测试时计算分配
文中应用了2种扩展方式,DRAG,IterRAG均有效的提高了RAG系统的性能。并且,当最优分配时,增加推理计算几乎可以线性提升RAG性能,这种关系表示为RAG的推理扩展法则。
在RAG中,与O1不同的是,用有效上下文长度来衡量推理计算。有效上下文长度为在LLM输出最终答案之前,所有迭代中总的输入token数量。
对于大多数只调用一次LLM的方法,有效上下文长度相当于prompt中的token数量,并受限于LLM的上下文窗口限制。
这里排除输出成本和检索成本,因为LLMs通常在知识密集型任务中通常答案比较短,可能是精确的实体或数字。
2种扩展上下文的方式
- DRAG
- D是Demo的意思,就是通过提供多个RAG的示例作为few-shot,提高LLMs的上下文能力。
- 输入构成有3部分,检索到的文档、输入query以及相应的问题和答案示例。所以可以扩展的有2部分,就是检索的文档数量,以及示例的数量。
- IterRAG
- Iter就是迭代的意思,通过将复杂查询分解为多个子查询来解决多跳的问题
- 在每次迭代中,模型可能会生成一个子查询、一个中间答案或最终答案。这个过程会重复迭代,直到生成最终答案或达到最大迭代次数。
总体的呈现线性的扩展规律,性能跟上下文长度之间。DRAG受限于1M窗口的限制,IterRAG可以通过迭代在更长上下文的时候表现出良好的扩展。
参数特定的缩放,总体而言,,扩大检索范围、增加例子数量、增加生成步骤的数量都会提高性能,但是收益会因有效上下文长度和方法的不同而不同。看下图斜率,增加文档数量可以得到更大的提升。并且DRAG和IterRAG的饱和程度不同。
最后给定上下文长度的最大预算,一个公式如下,其中中考虑了文档数量,示例,迭代次数等参数。但是这些参数跟特定模型相关。需要对进行实验,然后MSE算出a、b、c的最优值。
赞
收藏
回复
回复
相关推荐