一文徹底搞懂大模型 - RAG(檢索、增強、生成)
RAG(Retrieval-Augmented Generation,檢索增強生成) 是一種結合了信息檢索技術與語言生成模型的人工智能技術。該技術通過從外部知識庫中檢索相關信息,並將其作爲提示(Prompt)輸入給大型語言模型(LLMs),以增強模型處理知識密集型任務的能力,如問答、文本摘要、內容生成等。RAG 模型由 Facebook AI Research(FAIR)團隊於 2020 年首次提出,並迅速成爲大模型應用中的熱門方案。
一、檢索增強生成(RAG)
**什麼是 RAG?**RAG(Retrieval-Augmented Generation,檢索增強生成),RAG 是一種 AI 框架,它將傳統信息檢索系統(例如數據庫)的優勢與生成式大語言模型 (LLM) 的功能結合在一起。
LLM 通過將這些額外的知識與自己的語言技能相結合,可以撰寫更準確、更具時效性且更貼合具體需求的文字。
什麼是 RAG?
**如何理解 RAG?**通過上一個問題,我們知道了什麼是 RAG?瞭解到 RAG 是一種結合了信息檢索、文本增強和文本生成的自然語言處理(NLP)的技術。
RAG 的目的是通過從外部知識庫檢索相關信息來輔助大語言模型生成更準確、更豐富的文本內容。那我們如何理解 RAG 的檢索、增強和生成呢?
-
檢索:檢索是 RAG 流程的第一步,從預先建立的知識庫中檢索與問題相關的信息。這一步的目的是爲後續的生成過程提供有用的上下文信息和知識支撐。
-
增強:RAG 中增強是將檢索到的信息用作生成模型(即大語言模型)的上下文輸入,以增強模型對特定問題的理解和回答能力。這一步的目的是將外部知識融入生成過程中,使生成的文本內容更加豐富、準確和符合用戶需求。通過增強步驟,LLM 模型能夠充分利用外部知識庫中的信息。
-
生成:生成是 RAG 流程的最後一步。這一步的目的是結合 LLM 生成符合用戶需求的回答。生成器會利用檢索到的信息作爲上下文輸入,並結合大語言模型來生成文本內容。
RAG 的 “檢索、增強、生成”,誰增強了誰,誰生成了答案,主語很重要。是從知識庫中檢索到的問答對,增強了 LLM 的提示詞(prompt),LLM 拿着增強後的 Prompt 生成了問題答案。
如何理解 RAG?
**如何使用 RAG?**瞭解了什麼是 RGA,同步也理解了 RAG 的檢索、增強和生成。那我們如何使用 RAG 呢?接下來以 RAG 搭建知識問答系統具體步驟爲例,來講解如何使用 RAG?
- 數據準備與知識庫構建:
-
**收集數據:**首先,需要收集與問答系統相關的各種數據,這些數據可以來自文檔、網頁、數據庫等多種來源。
-
**數據清洗:**對收集到的數據進行清洗,去除噪聲、重複項和無關信息,確保數據的質量和準確性。
-
**知識庫構建:**將清洗後的數據構建成知識庫。這通常包括將文本分割成較小的片段(chunks),使用文本嵌入模型(如 GLM)將這些片段轉換成向量,並將這些向量存儲在向量數據庫(如 FAISS、Milvus 等)中。
- 檢索模塊設計:
-
**問題向量化:**當用戶輸入查詢問題時,使用相同的文本嵌入模型將問題轉換成向量。
-
**相似度檢索:**在向量數據庫中檢索與問題向量最相似的知識庫片段(chunks)。這通常通過計算向量之間的相似度(如餘弦相似度)來實現。
-
**結果排序:**根據相似度得分對檢索到的結果進行排序,選擇最相關的片段作爲後續生成的輸入。
- 生成模塊設計:
-
上下文融合:將檢索到的相關片段與原始問題合併,形成更豐富的上下文信息。
-
大語言模型生成:使用大語言模型(如 GLM)基於上述上下文信息生成回答。大語言模型會學習如何根據檢索到的信息來生成準確、有用的回答。
大家可以結合自己的業務領域知識,開始搭建醫療、法律、產品知識問答。先搭建 Demo,然後工作中不斷完善知識庫問答對。
如何使用 RAG?
二、RAG 的原理、流程及架構
**RAG 工作原理是什麼?**大型語言模型(LLM)面臨兩個問題,第一個問題是 LLM 會產生幻覺,第二個是 LLM 的知識中斷。
-
知識截止:當 LLM 返回的信息與模型的訓練數據相比過時時。每個基礎模型都有知識截止,這意味着其知識僅限於訓練時可用的數據。
-
幻覺:當模型自信地做出錯誤反應時,就會發生幻覺。
檢索增強生成 (RAG) 擺脫了知識限制,整合了外部數據,從外部知識庫中檢索相關信息,增強模型的生成能力。
RAG 工作原理是什麼?
****RAG 工作流程是什麼?通過檢索增強技術,將用戶查詢與索引知識融合,利用大語言模型生成準確回答。
-
知識準備:收集並轉換知識文檔爲文本數據,進行預處理和索引。
-
嵌入與索引:使用嵌入模型將文本轉換爲向量,並存儲在向量數據庫中。
-
查詢檢索:用戶查詢轉換爲向量,從數據庫中檢索相關知識。
-
提示增強:結合檢索結果構建增強提示模版。
-
生成回答:大語言模型根據增強模版生成準確回答。
RAG 工作流程是什麼?
**RAG 技術架構是什麼?**RAG 技術架構主要由兩個核心模塊組成,檢索模塊(Retriever)和生成模塊(Generator)。
- 檢索模塊(Retriever):
-
文本嵌入:使用預訓練的文本嵌入模型(如 GLM)將查詢和文檔轉換成向量表示,以便在向量空間中進行相似度計算。
-
向量搜索:利用高效的向量搜索技術(如 FAISS、Milvus 等向量數據庫)在向量空間中檢索與查詢向量最相似的文檔或段落。
-
雙塔模型:檢索模塊常採用雙塔模型(Dual-Encoder)進行高效的向量化檢索。雙塔模型由兩個獨立的編碼器組成,一個用於編碼查詢,另一個用於編碼文檔。這兩個編碼器將查詢和文檔映射到相同的向量空間中,以便進行相似度計算。
- 生成模塊(Generator):
-
強大的生成模型:生成模塊通常使用在大規模數據上預訓練的生成模型(如 GLM),這些模型在生成自然語言文本方面表現出色。
-
上下文融合:生成模塊將檢索到的相關文檔與原始查詢合併,形成更豐富的上下文信息,作爲生成模型的輸入。
-
生成過程:生成模型根據輸入的上下文信息,生成連貫、準確且信息豐富的回答或文本。
結合高效的檢索模塊(Retriever)與強大的生成模型(Generator),實現基於外部知識增強的自然語言生成能力。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/r2gv2CXz17lCzuH5JamcXg