RAG 修煉手冊|揭祕 RAG 時代的新向量數據庫

隨着對大型模型應用探索的深入,檢索增強生成技術(Retrieval-Augmented Generation)受到了廣泛關注,並被應用於各種場景,如知識庫問答、法律顧問、學習助手、網站機器人等。

不過,有很多朋友對於向量數據庫和 RAG 的關係及技術原理並不清楚,本文將帶大家深入瞭解 RAG 時代的新向量數據庫。

01.RAG 的廣泛應用及其獨特優勢

一個典型的 RAG 框架可以分爲檢索器(Retriever)和生成器(Generator)兩塊,檢索過程包括爲數據(如 Documents)做切分、嵌入向量(Embedding)、並構建索引(Chunks Vectors),再通過向量檢索以召回相關結果,而生成過程則是利用基於檢索結果(Context)增強的 Prompt 來激活 LLM 以生成回答(Result)。

https://arxiv.org/pdf/2402.19473

RAG 技術的關鍵在於其結合了這兩種方法的優點:檢索系統能提供具體、相關的事實和數據,而生成模型則能夠靈活地構建回答,並融入更廣泛的語境和信息。這種結合使得 RAG 模型在處理複雜的查詢和生成信息豐富的回答方面非常有效,在問答系統、對話系統和其他需要理解和生成自然語言的應用中非常有用。相較於原生的大型模型,搭配 RAG 可以形成天然互補的優勢:

  • 避免“幻覺”問題:RAG 通過檢索外部信息作爲輸入,輔助大型模型回答問題,這種方法能顯著減少生成信息不準確的問題,增加回答的可追溯性。

  • 數據隱私和安全:RAG 可以將知識庫作爲外部附件管理企業或機構的私有數據,避免數據在模型學習後以不可控的方式泄露。

  • 信息的實時性:RAG 允許從外部數據源實時檢索信息,因此可以獲取最新的、領域特定的知識,解決知識時效性問題。

雖然大型模型的前沿研究也在致力於解決以上的問題,例如基於私有數據的微調、提升模型自身的長文本處理能力,這些研究有助於推動大型模型技術的進步。然而在更通用的場景下,RAG 依然是一個穩定、可靠且性價比高的選擇,這主要是因爲 RAG 具有以下的優勢:

  • 白盒模型:相較於微調和長文本處理的“黑盒”效應,RAG 模塊之間的關係更爲清晰緊密,這在效果調優上提供了更高的可操作性和可解釋性;此外,在檢索召回內容質量和置信度(Certainty)不高的情況下,RAG 系統甚至可以禁止 LLMs 的介入,直接回復“不知道”而非胡編亂造。

  • 成本和響應速度:RAG 相比於微調模型具有訓練時間短和成本低的優勢;而與長文本處理相比,則擁有更快的響應速度和低得多的推理成本。在研究和實驗階段,效果和精確程度是最吸引人的;但在工業和產業落地方面,成本則是不容忽視的決定性因素。

  • 私有數據管理:通過將知識庫與大型模型解耦,RAG 不僅提供了一個安全可落地的實踐基礎,同時也能更好地管理企業現有和新增的知識,解決知識依賴問題。而與之相關的另一個角度則是訪問權限控制和數據管理,這對 RAG 的底座數據庫來說是很容易做到的,但對於大模型來說卻很難。

因此,在我看來,隨着對大型模型研究的不斷深入,RAG 技術並不會被取代,相反會在相當長的時間內保有重要地位。這主要得益於其與 LLM 的天然互補性,這種互補性使得基於 RAG 構建的應用能在許多領域大放異彩。而 RAG 提升的關鍵一方面在 LLMs 能力的提升,而另一方面則依賴於檢索(Retrieval)的各類提升和優化。

02.RAG 檢索的底座:向量數據庫

在業界實踐中,RAG 檢索通常與向量數據庫密切結合,也催生了基於 ChatGPT + Vector Database + Prompt 的 RAG 解決方案,簡稱爲 CVP 技術棧。這一解決方案依賴於向量數據庫高效檢索相關信息以增強大型語言模型(LLMs),通過將 LLMs 生成的查詢轉換爲向量,使得 RAG 系統能在向量數據庫中迅速定位到相應的知識條目。這種檢索機制使 LLMs 在面對具體問題時,能夠利用存儲在向量數據庫中的最新信息,有效解決 LLMs 固有的知識更新延遲和幻覺的問題。

儘管信息檢索領域也存在選擇衆多的存儲與檢索技術,包括搜索引擎、關係型數據庫和文檔數據庫等,向量數據庫在 RAG 場景下卻成爲了業界首選。這一選擇的背後,是向量數據庫在高效地存儲和檢索大量嵌入向量方面的出色能力。這些嵌入向量由機器學習模型生成,不僅能夠表徵文本和圖像等多種數據類型,還能夠捕獲它們深層的語義信息。在 RAG 系統中,檢索的任務是快速且精確地找出與輸入查詢語義上最匹配的信息,而向量數據庫正因其在處理高維向量數據和進行快速相似性搜索方面的顯著優勢而脫穎而出。

以下是對以向量檢索爲代表的向量數據庫與其他技術選項的橫向比較,以及它在 RAG 場景中成爲主流選擇的關鍵因素分析:

首先在實現原理方面,向量是模型對語義含義的編碼形式,向量數據庫可以更好地理解查詢的語義內容,因爲它們利用了深度學習模型的能力來編碼文本的含義,不僅僅是關鍵字匹配。受益於 AI 模型的發展,其背後語義準確度也正在穩步提升,通過用向量的距離相似度來表示語義相似度已經發展成爲了 NLP 的主流形態,因此表意的 embedding 就成了處理信息載體的首選。

其次在檢索效率方面,由於信息可以表示成高維向量,針對向量加上特殊的索引優化和量化方法,可以極大提升檢索效率並壓縮存儲成本,隨着數據量的增長,向量數據庫能夠水平擴展,保持查詢的響應時間,這對於需要處理海量數據的 RAG 系統至關重要,因此向量數據庫更擅長處理超大規模的非結構化數據。

至於泛化能力這個維度,傳統的搜索引擎、關係型或文檔數據庫大都只能處理文本,泛化和擴展的能力差,向量數據庫不僅限於文本數據,還可以處理圖像、音頻和其他非結構化數據類型的嵌入向量,這使得 RAG 系統可以更加靈活和多功能。

最後在總擁有成本上,相比於其他選項,向量數據庫的部署都更加方便、易於上手,同時也提供了豐富的 API,使其易於與現有的機器學習框架和工作流程集成,因而深受許多 RAG 應用開發者的喜愛。

向量檢索正憑藉其對於語義的理解能力、高效的檢索效率、以及對多模態的泛化支持等優勢,成爲了大模型時代理想的 RAG 檢索器,而隨着 AI 和 embedding 模型的進一步發展,這些優勢在未來或將更加突出。

03.RAG 場景對向量數據庫的需求

雖然向量數據庫成爲了檢索的重要方式,但隨着 RAG 應用的深入以及人們對高質量回答的需求,檢索引擎依舊面臨着諸多挑戰。這裏以一個最基礎的 RAG 構建流程爲例:檢索器的組成包括了語料的預處理如切分、數據清洗、embedding 入庫等,然後是索引的構建和管理,最後是通過 vector search 找到相近的片段提供給 prompt 做增強生成。大多數向量數據庫的功能還只落在索引的構建管理和搜索的計算上,進一步則是包含了 embedding 模型的功能。

但在更高級的 RAG 場景中,因爲召回的質量將直接影響到生成模型的輸出質量和相關性,因此作爲檢索器底座的向量數據庫應該更多的對檢索質量負責。爲了提升檢索質量,這裏其實有很多工程化的優化手段,如 chunk_size 的選擇,切分是否需要 overlap,如何選擇 embedding model,是否需要額外的內容標籤,是否加入基於詞法的檢索來做 hybrid search,重排序 reranker 的選擇等等,其中有不少工作是可以納入向量數據庫的考量之中。而檢索系統對向量數據庫的需求可以抽象描述爲:

  • 高精度的召回:向量數據庫需要能夠準確召回與查詢語義最相關的文檔或信息片段。這要求數據庫能夠理解和處理高維向量空間中的複雜語義關係,確保召回內容與查詢的高度相關性。這裏的效果既包括向量檢索的數學召回精度也包括嵌入模型的語義精度。

  • 快速響應:爲了不影響用戶體驗,召回操作需要在極短的時間內完成,通常是毫秒級別。這要求向量數據庫具備高效的查詢處理能力,以快速從大規模數據集中檢索和召回信息。此外,隨着數據量的增長和查詢需求的變化,向量數據庫需要能夠靈活擴展,以支持更多的數據和更復雜的查詢,同時保持召回效果的穩定性和可靠性。

  • 處理多模態數據的能力:隨着應用場景的多樣化,向量數據庫可能需要處理不僅僅是文本,還有圖像、視頻等多模態數據。這要求數據庫能夠支持不同種類數據的嵌入,並能根據不同模態的數據查詢進行有效的召回。

  • 可解釋性和可調試性:在召回效果不理想時,能夠提供足夠的信息幫助開發者診斷和優化是非常有價值的。因此,向量數據庫在設計時也應考慮到系統的可解釋性和可調試性。

RAG 場景中對向量數據庫的召回效果有着嚴格的要求,不僅需要高精度和快速響應的召回這類基礎能力,還需要處理多模態數據的能力以及可解釋性和可調試性這類更高級的功能,以確保生成模型能夠基於高質量的召回結果產生準確和相關的輸出。在多模態處理、檢索的可解釋性和可調試性方面,向量數據庫仍有許多工作值得探索和優化,而 RAG 應用的開發者也急需一套端到端的解決方案來達到高質量的檢索效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章