檢索增強生成(RAG):如何讓AI大模型更懂我?

0 評論 4656 瀏覽 21 收藏 8 分鐘

大模型的局限性體現在缺少實時性、無法獲取私有知識等方面,而RAG可以幫助解決私有知識問題,讓私有知識庫和AI大模型更好地融合。怎么理解RAG的原理、應用場景和優缺點?一起來看看本文的分享。

上文簡單介紹了AI大模型非常重要的提示工程,今天我們繼續學習檢索增強生成(Retrieval-Augmented Generation,RAG)。

RAG可以將私有知識庫和AI大模型融合,讓大模型“知道”我們的私有知識,變得越來越“懂”我們。

一、AI大模型的局限性

使用過大模型的小伙伴應該知道,雖然大模型看起來無所不能,但是它也經常胡編亂造,沒有足夠的確定性,這也限制了大模型在各種場景的落地。

大模型的局限性,可以簡單歸納為以下兩點:

  • 沒有實時性:AI大模型的知識不是實時的,最新的GPT-4 Turbo也只是把知識庫更新到2023年4月,所以無從得知該時間之后發生的事情。
  • 無法獲取私有知識:大模型的訓練數據主要來源于互聯網,不可能拿到個人或企業的私有數據,所以無法回答私有問題。

針對實時性問題,一般通過Actions或Function Calling(函數調用,可以理解為接口回調)等方式,讓大模型實時調用搜索、地圖、甚至企業自己實現的api,獲取各種需要的實時信息,減少幻覺,提升確定性。

而RAG可以解決私有知識問題,它通過外掛知識庫的方式,讓大模型可以根據檢索到的內容,回答私有庫的相關問題,也就是所謂的檢索增強,目的同樣是提升確定性。

二、基本概念

RAG的核心目的是通過某種途徑把我們的知識告訴給AI大模型,其核心流程就是根據用戶提問,從私有知識中檢索到“包含答案的內容”,然后把“包含答案的內容”和用戶提問一起放到prompt(提示詞)中,提交給大模型,此時大模型的回答就會充分考慮到“包含答案的內容”,看起來也就更“懂”我們。

那么具體要如何實現呢?再看一下核心流程,會發現有一個必須解決的問題,就是如何“根據用戶提問,從私有知識中檢索到包含答案的內容”,用戶的提問是自然語言(包含復雜的語義理解),傳統的關鍵字檢索(Elastic Search)是無法理解語義的,這時候就需要引入向量檢索的概念了。

  • 向量:文本的語義關系在底層被處理為向量,向量就是一組浮點數,例如[0.72, 0.42, …],代表該文本在N維空間里的坐標。在空間中距離越近的向量,語義也就越接近。一般使用歐式距離或余弦距離來衡量向量的相似度。
  • 向量檢索:向量檢索實際上是將文本分段轉換成了一個個向量,通過余弦距離或歐式距離來計算兩個向量之間的相似度,向量相似度越高,表示對應的文本語義相似度越高。
  • 向量數據庫:專門為向量檢索設計的中間件。

我們可以通過向量檢索來獲得與用戶問題語義最相近的私有知識庫的內容,即便用戶問題中沒有包含關鍵字,也可以通過語義的相關性搜索到“包含答案的內容”。

實現RAG的具體步驟如下:

  1. 加載私有知識庫文檔,并將文本切分為一個個小片段,需要注意切分的粒度,然后將切分后的文本轉換成向量,存入向量數據庫。
  2. 將用戶的提問內容也轉換成向量,在向量數據庫中檢索相似的文本內容,檢索結果就是“包含答案的內容”。
  3. 將用戶的提問內容和檢索到的“包含答案的內容”組裝成新的提示詞,發給AI大模型。
  4. AI大模型參考“包含答案的內容”(私有化的知識資料),回答用戶的問題。

這樣我們就可以收獲一位更“懂我”的大模型了。

三、應用場景

RAG可以有效擴展大模型的知識庫,以下是一些具體的例子:

  • 問答系統:RAG可以用于構建問答系統,用戶提出問題,RAG模型從大規模的文檔集合中檢索相關的文檔,然后生成回答。
  • 對話系統:在對話系統中,RAG可以用于生成更豐富、更具信息量的回答。
  • 文檔生成:RAG可以用于生成包含特定信息的文檔,例如新聞報道、研究報告等。

四、優缺點

RAG的優點:

  • 生成的回答更豐富:由于在生成回答時會考慮檢索到的文檔,因此生成的回答通常更豐富、更具信息量。
  • 能處理開放領域的問題:傳統的生成模型通常只能處理特定領域的問題,而RAG模型可以處理開放領域的問題,因為它可以從大規模的文檔集合中檢索信息。

RAG的缺點:

  • 計算成本高:RAG模型需要在大規模的文檔集合中進行檢索,這會增加計算成本。
  • 依賴文檔質量:RAG模型的性能在很大程度上依賴于文檔的質量,如果文檔質量差或切分粒度不合適,可能會影響模型的性能。
  • 可能產生不準確的回答:雖然RAG模型可以生成豐富的回答,但是如果檢索到的文檔包含錯誤的信息,可能會導致生成的回答不準確。

五、總結

本文我們主要介紹了RAG的基本原理,RAG可以有效擴展大模型的知識庫,有效提升回答的確定性,讓AI大模型變得更加“懂”我們。

下篇文章,我會介紹如何讓AI大模型連接外部世界,讓大模型和我們的業務連接的更加緊密,甚至看起來“無所不能”,敬請期待。

本文由 @AI小當家 原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!