檢索增強生成 (RAG) 是一種無需重新訓練即可將新資料來源新增至大型語言模型 (LLM) 的方法。
閱讀本文後,您將能夠:
複製文章連結
檢索增強生成 (RAG) 是一種在不對大型語言模型 (LLM) 進行完整重新訓練的前提下,透過授予模型存取特定領域知識庫的權限,來最佳化其在特定情境下表現的技術方法。RAG 具有顯著的成本效益優勢,能夠快速調整 LLM 以適應專業化應用場景。開發人員可運用這種方法來對人工智慧 (AI) 模型進行微調。
LLM 接受過大量資料的訓練,但它們可能無法在某些環境中產生所需的特定資訊。它們對人類語言的運作方式有大致的瞭解,但並非總是具有特定主題領域的特定專業知識。RAG 是糾正此問題的一種方法。
試想一位汽車機修師要維修一台1964年的雪佛蘭 (Chevy) 老車。儘管這位機修師經過數千小時的實踐,已經累積了豐富的汽車維護經驗,但要有效完成這輛老車的保養工作,他仍然需要參考該車型的使用手冊。然而,他並不需要重新考取機修師資格證書——只需翻閱使用手冊,就能將自己既有的汽車維修知識應用到這輛特定車型上。
RAG 與此類似。它為 LLM 提供「手冊」(或知識庫),以便 LLM 可以根據具體的使用案例調整其一般知識。例如,一般的 LLM 可能能夠產生有關 API 查詢如何運作的內容,但不一定能夠告訴使用者如何查詢特定應用程式的 API。然而,透過 RAG 技術,該 LLM 可透過連結至該應用程式的技術文件,快速適配並服務於這一特定應用場景。
通常,當 LLM 收到查詢時,它會根據其預先存在的參數和訓練處理該查詢。
RAG 使 LLM 能夠參考「外部資料」——LLM 訓練資料集中不包含的資料庫。因此,與 LLM 的正常運作方式相比,具有 RAG 的 LLM 使用外部資料來增強其回應,這就是其名稱檢索(首先擷取外部資料)增強(使用這些資料改進回應)生成(建立回應)的由來。
延續前述汽車機修師的範例,若他選擇使用 LLM 來輔助工作,而非直接查閱使用手冊,那麼透過 RAG 技術,該 LLM 可以將對擁有者手冊的查閱程序直接整合進其運作流程中。即便該 LLM 在原始訓練過程中很可能未曾接觸過經典車型的維修手冊,或者,即便相關資訊曾出現在其訓練資料中,所占比例也極其有限,那麼透過 RAG 技術,該 LLM 仍然能夠產生相關且準確的查詢。
為了使 LLM 能夠使用和查詢外部資料來源(例如汽車維修手冊),會先將資料轉換為向量,然後儲存在向量資料庫中。此流程使用機器學習模型來產生資料集中項目的數學表示法。(每個「向量」都是一個數字陣列,例如 [-0.41522345,0.97685323...]。)
當使用者傳送提示時,LLM 會將該提示轉換為向量,然後搜尋依據外部資料來源建立的向量資料庫,以查找相關資訊。它會將這些資訊作為額外的上下文新增到提示中,然後將增強後的提示輸入其標準模型以產生回應。
使用 RAG 對 LLM 進行微調的優點包括:
一些潛在的缺點包括:
RAG 聊天機器人是一種基於 LLM 的聊天機器人,藉助 RAG 技術,專門用於特定的使用案例——連接到一個或多個與聊天機器人操作的環境相關的外部資料來源。專為汽車維修廠設計的 RAG 聊天機器人可即時存取汽車技術文件;對於維修廠的技師而言,這樣的專業化系統將比通用型 LLM 聊天機器人更具實際價值。
低秩適應 (LoRA) 是微調模型的另一種方法,這意味著在不完全重新訓練的情況下使其適應特定環境。然而,LoRA 技術需要調整模型的參數,而 RAG 技術則完全不涉及對模型參數的修改。在此處瞭解有關 LoRA 的更多資訊。
AutoRAG 為開發人員設定和管理 RAG 管道。它連接索引、擷取和產生所需的工具,並透過定期將資料與索引同步,來使所有內容保持最新。設定後,AutoRAG 會在背景中索引內容並即時回應查詢。瞭解 AutoRAG 的運作方式。