👀10分鐘搞懂RAG架構:離線索引+在線檢索的閉環秘密

image

本文較長,建議點贊收藏,以免遺失。更多AI大模型應用開發學習視頻及資料,盡在聚客AI學院

RAG的檢索增強生成(Retrieval-Augmented Generation, RAG)技術,一直是不少人研究和優化的方向,RAG通過整合外部知識庫來增強模型能力,特別適用於實時性、準確性和專業深度要求高的企業場景。但它也有一些固有的缺陷。今天我將深入解析RAG的檢索增強生成優化核心技術,如果你在項目中也遇到了瓶頸,建議你仔細把文章看完。廢話不多說,我將從問題背景到解決方案再到優化實踐,確保詳細覆蓋技術細節。

image

一、RAG的背景:解決大語言模型的三大核心缺陷

大語言模型(如GPT系列)本質上是基於固定訓練數據的概率生成器,這導致其在實際應用中存在三個關鍵矛盾:

1、知識的靜態性與需求的實時性矛盾:

LLM的訓練數據有明確截止點(例如GPT-4數據截止於2023年10月),無法獲取後續信息(如2024年新品發布)。重新訓練模型以更新知識成本高昂(數百萬至數億美元),且可能引發災難性遺忘問題。RAG通過外接動態知識庫(如公司文件系統或新聞API)來解決這一矛盾。當用戶查詢最新信息時,RAG先檢索外部數據庫中的實時內容,再讓LLM基於檢索結果生成答案,從而將LLM從靜態記憶者轉變為動態整合者。

image

2、生成的概率性與結果的準確性矛盾:

LLM的生成機制依賴詞序概率預測,易產生幻覺(Hallucination),例如編造不存在的藥物名稱或財務數據。RAG通過引入事實邊界約束來破局:要求LLM的答案嚴格基於檢索到的權威文檔(如年度報告或官方手冊),並附帶來源鏈接以確保可審計性。這在金融、醫療等合規敏感行業中至關重要。

3、通用知識與專業深度矛盾:

通用LLM缺乏企業或行業的內部知識(如公司SOP或工業設備故障手冊)。RAG通過構建定制化知識基座解決這一問題:將企業內部文檔或行業手冊導入向量數據庫,使通用LLM瞬間升級為領域專家。例如,導入機器人維護手冊後,LLM能精確指導“電機軸承磨損”的故障排查步驟。

二、RAG的核心架構:離線索引與在線檢索生成的閉環

RAG技術基於“用檢索事實約束生成”的邏輯,實現分為兩個階段:離線索引(預處理知識庫)和在線檢索生成(實時響應查詢)。這種架構確保高效性和可擴展性。

image

1、離線索引階段:構建可檢索的知識塊

此階段將非結構化文檔(如PDF、Word或網頁)轉化為語義可計算的格式,包括以下步驟:

  • 數據加載:從企業系統(如SharePoint)或公共源(如新聞API)收集文檔,確保覆蓋全業務場景(如客戶服務SOP)。
  • 分割分塊:將長文檔切成100-500字的語義塊,以適配LLM的上下文窗口限制(例如GPT-4的8,192 token限制)。分割需按自然語義邊界進行(如章節或段落),保持塊內完整性。
  • 向量化(Embedding):使用嵌入模型(如text-embedding-3-small或Sentence-BERT)將文本塊轉換為向量(數字數組),實現語義相似性計算(例如“貓”和“狗”向量相近)。
  • 存儲:將向量和文本塊存入向量數據庫(如Chroma或Milvus),支持高效相似性搜索(百萬級數據中快速返回Top-K結果)。

2、在線檢索生成階段:實時查詢處理

用戶查詢時,RAG執行以下步驟生成答案:

  • 查詢向量化:用相同嵌入模型將用戶問題(如“iPhone16發布時間”)轉換為向量,確保與數據庫向量在同一語義空間。
  • 相似性搜索:在向量數據庫中查找Top-K相似塊(例如Top-5),如查詢“iPhone發布時間”時匹配到“蘋果發布會新聞”塊。
  • 構造增強提示(Prompt):將檢索塊和問題拼接為指令

例如:“嚴格根據以下內容回答:內容1:2024年iPhone16於3月12日發布(來源:蘋果官網);問題:iPhone16發布時間?”此步驟通過約束詞(“嚴格根據”)防止LLM幻覺。

  • 生成答案:LLM基於提示輸出結果,如“iPhone16系列於2024年3月12日發布”。此時,LLM角色變為事實整合器,而非依賴靜態記憶。

三、高級RAG優化:解決基礎架構的瓶頸

基礎RAG(Naive RAG)存在檢索不準、上下文冗餘和查詢模糊等瓶頸。高級RAG通過三個優化方向提升性能:

image

1、查詢優化:將模糊用戶問題轉化為精準檢索指令:

  • 查詢重寫:用LLM改寫問題,例如將“蘋果新品什麼時候出”優化為“2024年蘋果iPhone系列發布時間”。
  • HyDE(假設文檔嵌入):讓LLM生成假設答案(如“解決客戶投訴的步驟:1.傾聽;2.道歉”),再用於檢索,提升相關性。
  • 多輪查詢:拆分複雜問題,例如“某公司2023年淨利潤及增長率”分解為子問題分別檢索。

2、檢索優化:結合語義與關鍵詞以提高覆蓋率:

  • 混合搜索:融合稠密向量檢索(語義相似)和稀疏檢索(如BM25關鍵詞匹配),例如查詢“BM25算法”時同時搜索語義塊和關鍵詞塊。
  • 重排序:用交叉編碼器對Top-K塊打分,篩選最相關塊(如僅輸入得分>8的塊)。

3、後處理:精煉檢索結果:

  • 上下文壓縮:用LLM壓縮冗餘塊,例如將“iPhone16發布會細節”簡化為核心發布時間。
  • 冗餘過濾:基於向量相似性去重。

ps:關於RAG檢索增強生成的技術優化,其實之前我也寫過很多,這裡就不再過多展示,我這裡把之前的一些技術文檔整理給粉絲朋友,點個小紅心自行領取:《檢索增強生成(RAG)》

總結

RAG並非替代LLM,而是通過動態知識庫、事實約束和專業知識植入來彌補其短板。在實際應用中,RAG已證明價值。例如:製造行業用於設備維護助手(基於故障手冊生成維修步驟)、零售行業用於智能導購(整合產品參數和用戶評價)。未來,隨著向量數據庫和嵌入模型的優化,RAG將繼續成為企業級AI的核心支柱,其核心邏輯——以檢索事實約束生成——將確保AI從演示工具進化為生產力引擎。好了,今天的分享就到這裡,點個小紅心,我們下期再見。


原文出處:https://juejin.cn/post/7546326670677229594


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝8   💬8   ❤️16
411
🥈
我愛JS
📝1   💬6   ❤️4
91
🥉
酷豪
📝1   ❤️1
50
#4
AppleLily
📝1   💬4   ❤️1
38
#5
💬3  
10
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次