RAG 修煉手冊|RAG 敲響喪鐘?大模型長上下文是否意味着向量檢索不再重要

Gemini 發佈後,由於其在處理長上下文方面表現出色,行業不乏“RAG 已死”的聲音。RAG 到底有沒有被殺死?向量數據庫的還是 AI 應用開發者的最佳拍檔嗎?本文將一起探討。

01.Gemini 發佈後

AIGC 的迭代速度正以指數級的速度增長。Gemini 剛發佈不久,便迅速被 OpenAI 的Sora 奪去了光芒。顯然,與詳盡的技術對比報告和性能指標相比,大衆對 Sora 提供的酷炫逼真的視覺效果更爲關注。有愛好者嘗試使用 Gemini 來分析 Sora 生成視頻的結果,這種做法宛如用最強之矛去攻擊最堅固之盾。

測試結果顯示,Gemini 1.5 不僅準確理解了視頻的基本內容,還指出了生成視頻中的一些不符合常理的細節。只有魔法對抗魔法,儘管 Sora 的生成效果確實令人驚豔,但還是很容易被 Gemini 找到了漏洞,與衆人所期待的“物理引擎”水平之間還存在顯著的差距。

相比 Sora 的博人眼球,Gemini 發佈的五十多頁技術報告更值得一讀。

報告詳細介紹了長上下文和多模態測試,這些測試的許多方面將對 AIGC 應用未來發展產生深遠影響。Gemini 支持高達 1000萬 token 的超長上下文和強大的多模態能力,這意味着利用 Gemini 能夠與整本書籍、龐大的文檔集、數百個文件組成的數十萬行代碼庫、完整電影、整個播客系列等進行交互。

02.大海撈針 - 長上下文究竟意味着什麼?

Gemini 1.5 的亮點在於其長上下文處理能力,特別是在處理龐大數據集時的強大搜索功能。技術報告中的“needle-in-a-haystack”(大海撈針)測試精彩展示了這一點。

在這項測試中,模型需要從一個長序列中檢索到特定的文本片段。通過在不同位置插入文本(即“針”)並要求模型找到這些“針”,測試了模型在不同上下文長度下的信息檢索能力。Gemini 1.5 Pro 在長達 530k token 的文檔中實現了 100% 的準確檢索,在長達 1M token 的文檔中保持了超過 99.7% 的檢索準確率。此外,即使在文檔長度達到 10M tokens 時,模型仍能以 99.2% 的準確率找到並提取信息。這一結果不僅證明了Gemini 1.5 Pro 處理長文檔的能力,還展示了其在極端長上下文中的穩定性和準確性。

圖源https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf

儘管 GPT-4 在小於 128k 的上下文中表現也同樣出色,但 Gemini 的處理更長上下文的能力有了顯著擴展。在長文檔 QA 測試中,直接將一本 710K token 的書作爲上下文輸入給 Gemini,結果遠勝於 0-shot 查詢和只召回 4k token 的標準 RAG 查詢。人類評估和 AutoAIS 評估的結果都顯示 Gemini 模型對原材料有很好的理解。

相反,在 0-shot 設置下,大型模型通常選擇避免回答問題,以減少可能出現的幻覺和非事實性斷言。對於 RA G而言,我們觀察到特定的問題集通常需要解決指代表達式(例如,“兄弟”,“主角”),這需要跨越長距離依賴進行推理,而這些依賴通常不容易通過 RAG 的檢索技術捕獲。

圖源https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf

由於 Gemini 在處理長上下文方面表現出色,甚至有人高喊“RAG已死”。據愛丁堡大學博士符堯在評價 Gemini 1.5 Pro 的帖子中寫道:“一個擁有 1000 萬 token 上下文窗口的大模型擊敗了 RAG。大語言模型已經是非常強大的檢索器,那麼爲什麼還要花時間構建一個弱小的檢索器,並將時間花在解決分塊、嵌入和索引問題上呢?”

03.RAG - 中點還是終點?

RAG 技術,即檢索增強生成(Retrieval-Augmented Generation),是一種利用外部來源獲取的事實來增強生成式人工智能模型準確性和可靠性的技術。通常包括兩個階段:檢索上下文相關信息和使用檢索到的知識指導生成過程。通過從更多數據源添加背景信息,以及通過訓練來補充大型語言模型(LLM)的原始知識庫,檢索增強生成能夠提高搜索體驗的相關性。

在過去的 2023 年,RAG 技術取得了快速發展,也帶火了向量數據庫。搜索增強能夠有效解決幻覺、時效性差、專業領域知識不足等阻礙大模型應用的核心問題。一方面,搜索增強技術能有效提升模型性能,並且使大模型能“外掛硬盤”,實現互聯網實時信息+企業完整知識庫的“全知”。這一技術不僅提高了生成式模型的準確性和可靠性,還使其能夠更好地理解上下文,並將檢索到的知識融入到生成過程中,從而生成更加貼合實際需求的文本。

隨着大型模型對上下文長度的支持加強以及從長上下文檢索信息的能力逐漸增強,我們不禁要問:RAG 技術是否已經過時,成爲人工智能生成與檢索應用中的過客?

在筆者看來,RAG 技術的發展纔剛剛起步,並且隨着大型模型在處理長上下文和遵循指令方面的能力不斷提升,RAG 技術將持續發展迭代。單純依賴大型模型並不能完全滿足非結構化數據處理的 4V 特性:

1.Velocity(速度):根據目前的測試反饋,Gemini 在回答 36 萬個上下文時需要約 30 秒,並且查詢時間隨着 token 數量呈非線性上升。儘管我們對算力和模型的發展都持樂觀態度,但要使長上下文實現秒級響應對於基於 transformer 的大型模型仍然是一個極具挑戰性的目標。

2.Value(價值):儘管長下文的大模型生成結果具有很高的質量,但是推理成本依然是落地的阻礙。例如,如果將上下文的窗口設定爲 1M,按照當前 0.0015 美元/1000 token 的收費標準,一次請求就要花掉 1.5 美元。這樣高昂的成本顯然是無法實現日常使用的。

3.Volume(體量):1000 萬 token 相對於當前龐大的非結構化數據體量而言,依然是九牛一毛。目前還沒有方式把整個 Google 搜索的索引數據扔進大模型。

4.Variety(多樣性):實際的落地場景中,不僅僅包含了長文本,圖片等非結構化數據,更包含了複雜的結構化數據,比如時間序列數據、圖數據、代碼的變更歷史等等,處理這些數據依然需要足夠高效的數據結構和檢索算法。

04.RAG 路在何方?

RAG 已經被證明是一種解決大模型幻覺的有效方法,如何進一步提升 RAG 的實戰效果?

1.提升長上下文的理解能力

圖源https://arxiv.org/abs/2402.11573

由於嵌入模型通常較小,上下文窗口有限,傳統的 RAG 通常依賴分塊對數據進行切分。這導致了上下文信息的丟失,例如一些代詞的信息無法連貫地理解。

舉例來說明,在某個對話中,提到 “Bill 週日去了埃菲爾鐵塔,之後又跟朋友一起去了盧浮宮”。當我們進行傳統的提問,例如詢問“Bill週日下午去了哪裏?”時,由於上下文信息被分割成多個分塊,可能會導致搜索到的信息僅包含了Bill週日去了埃菲爾鐵塔,從而形成了錯誤的結論。這種情況下,由於上下文被切分,系統無法正確理解代詞“去了哪裏”的指代對象,從而導致了錯誤的結果。

近期,基於大型模型實現的嵌入逐漸成爲主流。在 Huggingface MTEB LeaderBoard 中,效果最好的嵌入基本上都是由大型模型所霸榜。這一趨勢的一個副產品是嵌入的上下文窗口也逐漸提升,例如 SRF-Embedding-Mistral 和 GritLM7B 已經支持 32k 的長上下文,這意味着嵌入本身處理長上下文的能力也得到了大幅提升。

最近發佈的 BGE Landmark embedding 的論文也闡述了一種利用長上下文解決信息不完整檢索的方法。通過引入無分塊的檢索方法,Landmark embedding 能夠更好地保證上下文的連貫性,並通過在訓練時引入位置感知函數來有限感知連續信息段中最後一個句子,保證嵌入依然具備與 Sentence Embedding 相近的細節。這種方法大幅提升了長上下文 RAG 的精度。

圖源https://arxiv.org/abs/2402.11573

2.利用多路召回提升搜索質量

爲了提升 RAG 的回覆質量,關鍵在於能夠檢索到高質量的內容。數據清理、結構化信息提取以及多路混合查詢,都是提高搜索質量的有效手段。最新的研究表明,相比稠密向量模型,使用如 Splade 這類稀疏向量模型,在域外知識搜索性能,關鍵詞感知能力以及可解釋方面表現更佳。最近開源的 BGE_M3 模型能夠在同一模型中生成稀疏、稠密以及類似 Colbert 的 Token 多向量,通過不同類型的向量多路召回並結合大型模型進行排名,可以顯著提高檢索效果。這種混合查詢的方法也被向量數據庫廠商廣泛接受,最近發佈的 Milvus 2.4 版本也支持了稠密和稀疏向量的混合查詢。

圖源https://arxiv.org/pdf/2402.03216.pdf

3.使用複雜策略提升RAG能力

圖源https://towardsdatascience.com/12-rag-pain-points-and-proposed-solutions-43709939a28c

開發大模型應用不僅面臨算法挑戰,還涉及複雜的工程問題。這要求開發者具備深入的算法知識及複雜系統設計和工程實踐的能力。採用複雜策略,如查詢改寫、意圖識別和實體檢測,不僅提升了準確性,也顯著加快了處理速度。即使是先進的 Gemini 1.5 模型,在進行 Google 的 MMLU 基準測試時也需調用 32 次才能達到 90.0% 的準確率,顯示出採用複雜工程策略以提升性能的必要性。通過使用向量數據庫和 RAG,採取空間換時間的策略,使 RAG 系統能更有效利用大型語言模型(LLM)的能力。這不僅限於生成答案,還包括分類、提取結構化數據、處理複雜 PDF 文檔等任務,增強了 RAG 系統的多功能性,使其能適應更廣泛的應用場景。

05.大內存的發展並不意味着硬盤的淘汰

大模型技術正在改變世界,但無法改變世界的運行規律。

自馮諾依曼架構誕生之日起,存儲器、計算器和外存分開,即使在單機內存已經達到TB級別的今天,SATA磁盤和閃存依然在不同應用場景下發揮着重要的價值。

對於大模型而言,長期記憶的重要性也將持續存在。AI 應用的開發者一直在追求查詢質量和成本之間的完美平衡。當大型企業將生成式人工智能投入生產時,他們需要控制成本,同時保持最佳的響應質量。RAG 技術和向量數據庫依然是實現這一目標的重要工具。

本文首發於微信公衆號「硅基立場」。

閱讀原文


  • 如果在使用 Milvus 或 Zilliz 產品有任何問題,可添加小助手微信 “zilliz-tech” 加入交流羣。 ​
  • 歡迎關注微信公衆號“Zilliz”,瞭解最新資訊。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章