長上下文 還是 RAG? Google:我全都要!
嘿,大家好!這里是一個專注于AI智能體的頻道!
最近,深度學(xué)習(xí)和人工智能領(lǐng)域的大牛們在arXiv上發(fā)表了一篇有趣的研究,標(biāo)題挺長的:《檢索增強生成或長上下文大型語言模型?全面研究和混合方法》。
今天分享一篇由Google DeepMind和密歇根大學(xué)的研究人員發(fā)布的一個長上下文和RAG混合的方法。
Retrieval Augmented Generation or Long-Context LLMs? AComprehensive Study and Hybrid Approach
檢索增強生成(RAG)一直是大型語言模型(LLMs)高效處理超長文本的強大工具。然而,像Gemini-1.5和GPT-4這樣的最新LLM展現(xiàn)了直接理解長文本的卓越能力。我們對RAG和長文本(LC)LLM進行了全面的比較,旨在利用兩者的優(yōu)點。我們使用三種最新的LLM,在各種公開數(shù)據(jù)集上對RAG和LC進行基準(zhǔn)測試。結(jié)果顯示,當(dāng)資源充足時,LC在平均性能上始終優(yōu)于RAG。然而,RAG顯著較低的成本仍然是一個明顯的優(yōu)勢?;谶@一觀察,我們提出了Self-Route,這是一種簡單但有效的方法,根據(jù)模型的自我反思將查詢路由到RAG或LC。Self-Route顯著降低了計算成本,同時保持了與LC相當(dāng)?shù)男阅?/strong>。我們的研究為使用RAG和LC的長文本應(yīng)用提供了指導(dǎo)。
首先,讓我們聊聊RAG。這種方法讓LLM通過檢索相關(guān)信息來生成回答,就像是給模型加了個外掛,讓它能夠訪問海量信息,而且成本很低。但是,隨著LLM的發(fā)展,像Gemini1.5和GPT-4這樣的模型已經(jīng)能夠直接理解超長文本了。這就引出了一個問題:我們是否還需要RAG?
研究人員決定做個全面的比較。他們用最新的三個LLM在不同的公共數(shù)據(jù)集上進行了基準(zhǔn)測試。結(jié)果發(fā)現(xiàn),只要資源足夠,LC在幾乎所有情況下都比RAG表現(xiàn)得更好。但是,RAG的成本優(yōu)勢依然明顯。這就是說,雖然LC在理解長文本上更勝一籌,但RAG在成本上更具吸引力。
基于這個問題,研究人員提出了一種新方法,叫做SELF-ROUTE。這種方法根據(jù)模型的自我評估來決定是使用RAG還是LC。SELF-ROUTE在保持與LC相當(dāng)?shù)男阅艿耐瑫r,顯著降低了計算成本。例如,在Gemini-1.5-Pro上,成本降低了65%,在GPT-4上降低了39%。
研究人員通過深入分析了RAG與LC的預(yù)測差異,發(fā)現(xiàn)RAG和LC在很多情況下會給出相同的預(yù)測,無論是正確的還是錯誤的。事實上,對于 63% 的查詢,模型預(yù)測是完全相同的;對于 70% 的查詢,分數(shù)差異小于 10(絕對值)。有趣的是,相同的預(yù)測不一定正確,如代表平均分數(shù)的不同顏色所示,即(S_RAG + S_LC) / 2。這一觀察結(jié)果表明,RAG 和 LC 不僅傾向于做出相同的正確預(yù)測,而且傾向于做出類似的錯誤。
因此,我們可以在大多數(shù)查詢中利用 RAG,為一小部分真正擅長的查詢保留計算成本更高的 LC。通過這樣做,RAG 可以在不犧牲整體性能的情況下顯著降低計算成本。
SELF-ROUTE也比較簡單,其實就倆步驟:先是RAG加Route這一步,然后是長上下文預(yù)測那一步。前一步里,我們把查詢和檢索到的內(nèi)容塊兒給LLM,然后讓它預(yù)測這查詢能不能回答,如果能,就生成答案。這跟咱們平時用的RAG差不多,但有個關(guān)鍵的不同點:LLM現(xiàn)在有個選擇權(quán),如果覺得根據(jù)提供的內(nèi)容回答不了問題,它可以選擇不回答,提示詞是“Write unanswerable if the query can not be answered based on the provided text”。
對于那些LLM覺得能回答的查詢,我們就直接接受RAG的預(yù)測作為最終答案。對于那些LLM覺得回答不了的,咱們就進入第二步,把完整的上下文信息給長上下文LLM,讓它來得出最終預(yù)測,也就是LC。評測發(fā)現(xiàn),雖然RAG得分穩(wěn)定低于LC,但是SELF-ROUTE可以用更少的tokens,獲得接近甚至更好的效果
