RAG 是什麼?不用微調模型就能低成本讓 LLM 理解專業知識的 AI 技術

在使用 ChatGPT、Gemini 等奠基於大型語言模型(Large Language Models,以下簡稱 LLMs)的人工智慧服務時,很常會遇到一個問題就是:請它們提供與特定專業領域相關的資訊,往往只能獲得極為空泛、甚至是充滿幻覺(hallucination)的回覆。1隨著越來越多的企業和組織期許能夠將 LLMs 應用到生活以及工作的各個領域,如何產生客製化的 LLMs 便成為人們關注的焦點,而名為「檢索增強生成」 (Retrieval-Augmented Generation,縮寫為 RAG)就是值得我們重視的其中一項技術。本文將介紹 RAG 的運作方式、哪些使用情境適合導入 RAG?以及為什麼 NVIDIA、Microsoft 等軟硬體科技巨頭都爭相投入這個領域。

(編按:想要進一步知道 RAG 實作與產品化要考量的面向,可以閱讀這篇〈為我的筆記加上 AI:RAG 實作經驗分享與四大產品化挑戰〉。)

什麼是 RAG?跟模型微調有什麼差別?

在我前一篇分享 OpenAI 研究員 Andrej Karpathy 介紹 LLMs 的文章曾介紹到,通常 LLMs 的訓練會經過兩個階段:產出基本模型(base model)、曠日廢時且需要投入大量資源的「預訓練」階段,以及後續頻繁進行的「模型微調(fine-tuning)」階段。在上述的訓練過程中,若希望 LLMs 理解特定領域的知識,就得從模型微調的階段下手,將特定領域的專業知識輸入基本模型進行訓練。但模型的微調不僅得仰賴硬體的運算,且無法很快地將公司或組織的新資料納入模型之中,這都會對客製化 LLMs 的落地應用形成限制。而 RAG 就能夠突破上述的限制。

RAG 概念是由自然語言處理科學家 Patrick Lewis 等學者在 2020 年發表的論文2中所提出。這項技術簡而言之,就是在向 LLMs 提供用戶的提示詞(prompt)之前,會先從外部的資料庫「檢索」相關資料,再將這些相關資料連同原本的提示詞提供給 LLMs 參考並「生成」回覆。IBM 的語言技術總監 Luis Lastras 用開書考試(open-book)跟闔書考試來類比 RAG 跟模型微調的差異:「使用 RAG 系統時,你是要求模型去檢索書的內容(資料庫),而不是光依憑(模型微調)的記憶來回答問題。」3

而 RAG 所使用並非傳統的資料庫,而是所謂的向量資料庫(vector database)。這種資料庫會將文字、圖片、聲音、影片等複雜的非結構化資料,透過索引(index)演算法切分成較小的區塊(chunk),再進一步將區塊運算成可以用數字呈現、電腦可以理解、結構化的向量嵌入(vector embedding)並存放入向量資料庫中(LLMs 的訓練與運作也有使用到這套技術)。

使用向量資料庫的優勢在於可以藉由比對資料間的向量距離,就能判斷其相似程度。因此,使用 RAG 的系統能更有效率地找到與提示詞相關的資料,再傳遞給 LLMs 作為生成回覆的參考。(這邊可以想像在二維的地圖上,「台北-台中」跟「台北-東京」這兩種城市組合,前者的兩座城市的距離比較近,因此也比較「相似」。但向量資料庫中的資料可能有上千個維度。)

RAG 流程示意圖
▲ RAG 流程示意圖(圖片來源:GknorCC BY-SA 4.0, via Wikimedia Commons)

快速掌握 LLM 應用全局觀

何時要使用 RAG?何時要使用模型微調?

既然 RAG 跟模型微調這兩種方式,都可以讓 LLMs 擁有專業領域的知識,而不會只是提供空泛甚至充滿幻覺的回覆,那麽這兩項技術的差異在哪裡?分別適合怎樣的使用情境?針對這個問題,微軟的研究單位進行過一項研究4,使用 Llama2-13B、GPT-3.5 和 GPT-4 等 LLMs 為基本模型,再搭配農業的專業領域資料進行 RAG 跟微調的進一步訓練,看看使用 RAG 或經過模型微調(以及使用 RAG 再搭配模型微調)之後,不同 LLMs 的回覆是否更為精準?

微軟的研究結果發現,RAG 和微調模型確實都能讓 LLMs 的回答變得更為精準:與 GPT-4 的基本模型相比,RAG 的精準度增加的 5%、微調的精準度增加 6%,而微調模型搭配 RAG 的精準度則增加 11%。由此可見,RAG 可以用較低的訓練成本達到與微調模型差不多的表現,且還能進一步用來強化微調模型。

這份研究報告也指出兩種強化 LLMs 方式的優缺點:RAG 雖然在提示詞的輸入和結果輸出上,因為需要帶入向量資料庫的資料,必須使用較多的 token,其回答也較為冗長且難以操縱;但因為它無需額外使用硬體來微調訓練模型,只需要將內容嵌入向量資料庫即可,所以初始成本會相對低上許多。而模型微調雖然需要耗費硬體資源訓練,但是後續使用的 token 就比較少,回答也更為簡短。

在各自適合的使用情境上,研究團隊評估 RAG 更適合用於讓 LLMs 檢索和資料庫相同脈絡的議題時,譬如解讀農業數據進行分析。另一個例子則是像 NVIDIA 與電子設計公司益華(Cadence)合作開發可用於工業電子設計的 RAG。5。而模型微調則更適合想要讓 LLMs 學會新的行為模式,譬如加強預測農穫量的能力、根據各地氣候調整灌溉時程的能力等等。

此外,因為 RAG 是在 LLMs 生成回覆之前進行檢索,且系統檢索的資料都是由使用的組織提供,不僅具備一定程度的資料透明,也可以確保組織的資料安全,資料也更具可擴展性。

RAG 發展趨勢:科技巨頭爭相投入,相關產品遍地開花

目前 Amazon6、Microsoft7、Google(包含雲端服務8和開源的 LLMs Gemma9)、Oracle10、IBM11、NVIDIA12 OpenAI(GPTs 可以透過上傳檔案擴充知識庫,就是使用 Knowledge Retrieval 這個 RAG 工具13)的等科技公司都已推出 RAG 相關的產品及服務,而不少專家在討論 2024 年人工智慧預測的文章也都有提到 RAG。

譬如 NVIDIA 企業運算副總裁 Manuvir Das 就表示:「客製化(生成式人工智慧應用)正在進入到企業端。公司不會只擁有一、兩個生成式人工智慧應用,許多公司將擁有數百個使用專門資料的客製化應用,以適應其業務的各個面向。一旦開始運作,這些客製化的大型語言模型將具有 RAG 功能,將資料來源連接到生成式人工智慧模型,以獲得更準確、更聰明的回應。」14

Dell 副總裁暨營運長 Jeff Clarke 表示:「我相信企業端的多元需求,會促使更小、更有彈性、更有效率的語言模型出現⋯⋯我們也會看到,搭配 RAG 等技術,(語言模型)的架構會有更顯著的進展,讓生成式人工智慧的結果更易於使用。」15《經濟學人》的《2024全球大趨勢》專刊討論到強化 AI 模型的文章中,也用了一整個段落介紹,若想將 LLM 嵌入到更龐大、更強大的系統架構中,RAG 如何作為增強 AI 模型方法的選項之一。16

關於 RAG 的最新發展之一,就是在 02 月 14 日,NVIDIA 所推出「Chat with RTX」的服務17:一般用戶可以利用自己電腦中的 NVIDIA 顯示卡,就能擁有可以檢索電腦檔案的客製化聊天機器人。在寫作這篇文章的過程,我也完全感受到這項技術的活躍發展,在 X(前 Twitter)上很常看到網友對於 RAG 無論是新產品或新論文的分享和討論(例如下方兩則貼文),非常推薦讀者朋友們持續關注相關議題。我想在不久的將來,隨著硬體的執行演進以及 RAG 技術的普及,無論是企業還是個人,都能擁有客製化的 LLMs 助理,在不同情境下為我們的專業工作提供協助。