該推文討論了長上下文long-context模型與RAG模型的優劣勢。作者針對對長上下文模型的一些質疑進行了回應,包括成本、檢索與推理的結合、支援的token數量、快取和速度等方面。作者認為長上下文模型有其優勢,並對其未來發展持樂觀態度。
要點:
- RAG模型更便宜,而長上下文模型更昂貴,但作者認為智慧模型應該首先變得聰明,然後才考慮降低成本。
- 長上下文模型在解碼過程中可以同時混合檢索和推理,而RAG只在最開始時進行檢索。
- 長上下文模型雖然只支援100萬上下文,而RAG支援萬億級別的上下文,但作者認為絕大多數情況下都不需要超過100萬上下文的檢索。
在我聲稱 "長語境(long context )將取代 RAG "之後的兩天裡,我收到了不少批評意見(非常感謝!),其中很多都有理有據。在此,我收集了主要的反駁意見,並試著逐一回應(感覺就像論文反駁一樣):
RAG 便宜,長語境昂貴
沒錯,但請記住,與 LLM 相比,BERT-small 也很便宜,N-gram 甚至更便宜,但它們現在並沒有被使用,因為我們希望模型首先是智慧的,然後再讓智慧模型變得更便宜
人工智慧的歷史告訴我們,讓智慧模型變得更便宜比讓便宜模型變得更智慧要容易得多
當模型便宜時,它就永遠不會智慧。
長語境可以在整個解碼處理過程中混合檢索和推理
- RAG 只在一開始進行檢索。通常,給定一個問題,RAG 會檢索與問題相關的段落,然後生成。
- 而 Long-context 會對每一層和每個標記進行檢索。在許多情況下,模型需要對每個標記進行即時交錯檢索和推理,並且只有在得到第一個推理步驟的結果後才知道要檢索什麼。只有長語境long-context才能處理這種情況。
RAG 支援萬億級別的標記,而 longcontext 則是 100 萬。
沒錯,但輸入文件有一個自然分佈,我傾向於認為大多數需要檢索的情況都在百萬級別以下。
舉個例子,想象一下一個層級的人在處理一個案件時,輸入的是相關的法律檔案,或者一個學習機器學習的學生,輸入的是三本 ML 書籍--感覺沒有 1B 那麼長吧?
RAG 可以快取,而 longcontext 需要重新輸入整個文件。
這是對 longcontext 的一個常見誤解:有一種東西叫 KV 快取,你也可以設計出複雜的快取和記憶體分層 ML 系統來使用 KV 快取。也就是說,你只需讀取一次輸入,隨後的所有查詢都將重用 KV 快取。也許有人會說 kv 快取太大,但不用擔心,我們的 LLM 研究人員會及時為你提供瘋狂的 kv 快取壓縮演算法。
你還想呼叫搜尋引擎,這也是檢索。 沒錯,而且在短期內,這將繼續是真的。然而,有些瘋狂的研究人員的想象力可以天馬行空--比如,為什麼不讓語言模型直接關注整個 google 搜尋索引,即讓模型吸收整個 google。我的意思是,既然你們相信 AGI,為什麼不呢?
今天的雙子座Gemini 1.5 1M 上下文速度很慢。沒錯,而且肯定需要更快。我對此持樂觀態度--它肯定會快很多,最終會和 RAG 一樣快。