向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的最優值。
贊
收藏
回復
分享
微博
QQ
微信
舉報

回復
相關推薦