通用 AI 模型對世界所知甚多,卻對你的業務一無所知。它從未見過你的產品手冊、你的內部規範或上一季的報告。檢索增強生成(retrieval-augmented generation,RAG)正是彌合這道鴻溝的技術:它讓模型能夠使用你自己的文件來回答問題,既準確又附帶來源,而無需重新訓練模型。本指南說明 RAG 是什麼、如何運作,以及何時該使用它。

重點速覽

  • RAG 從你自己的內容中檢索相關片段並放入 prompt,讓模型依據你的知識作答,而不僅僅依賴其訓練資料
  • 它的原理是把文件轉換成 embeddings,存入 vector database,並為每個問題檢索最接近的匹配
  • RAG 減少 hallucination 並讓你能夠引用來源,且相較於 fine-tuning 更容易、更省錢地保持內容更新
  • 對於大多數「懂我們資料的 AI」情境來說,它都是正確的模式:客服機器人、內部知識助理與文件問答

RAG 解決的問題

語言模型在商業應用中有兩項局限:它們只知道訓練資料中包含的內容(因此沒有任何私有資訊,也沒有任何近期資訊),而且它們可能會自信地捏造內容。把你所有的文件塞進每一個 prompt 並不可行;內容太多,既慢又貴。RAG 透過為每個問題僅檢索相關片段並把答案錨定其上,同時解決了這兩個問題。

檢索增強生成如何運作

分為兩個階段。

建立索引(做一次,並隨內容變化更新):

  1. 把你的文件切分成大小合適的 chunk。
  2. 把每個 chunk 轉換成一個 embedding ,即捕捉其含意的數值向量。
  3. 把這些向量存入 vector database

檢索與生成(在查詢時):

  1. 把使用者的問題轉換成一個 embedding。
  2. 在 vector database 中搜尋含意與問題最接近的 chunk。
  3. 把這些檢索到的 chunk 作為上下文插入 prompt。
  4. 模型生成一個錨定於該上下文的答案,最好還能標註所用的來源。

由於檢索依據的是含意而非精確關鍵字,即使措辭不同,RAG 也能找到相關內容。

為什麼在大多數情況下 RAG 勝過 fine-tuning

fine-tuning 會在你的資料上調整模型的權重。它有其用武之地,但對於以知識為本的問答,RAG 通常是更好的選擇:

  • 時效性: 更新一份文件並重新索引,答案立即更新。fine-tuning 需要重新訓練才能反映變化。
  • 成本: 建立索引遠比反覆進行 fine-tuning 便宜。
  • 可控與可信: RAG 能展示其來源,因此答案可稽核、更易被信任。經過 fine-tuning 的知識則不透明。
  • 減少 hallucination: 把模型錨定在檢索到的文字上,能讓它更貼近事實。

fine-tuning 更適合教會模型一致的風格格式,或狹窄的專門行為,而非讓一整套知識保持更新。

什麼讓 RAG 系統變得優秀

RAG 概念簡單,卻很容易做壞。品質取決於:

  • chunking 策略: chunk 太大會稀釋相關性;太小則丟失上下文。把這一點做對很重要。
  • 檢索品質: 答案的好壞取決於檢索到的 chunk。優質的 embeddings、合理的排序,有時還需 re-ranking,都會帶來差異。
  • prompt 設計: 你如何指示模型使用檢索到的上下文(並在資訊缺失時說出「我不知道」),決定了可靠性。
  • 保持索引更新: 一條對已變更內容重新索引的流水線,能讓答案長期保持準確。

常見應用情境

  • 從你的文件中作答的客服機器人。
  • 面向規範、wiki 與報告的內部知識助理。
  • 面向合約、手冊或研究的文件問答。
  • 任何必須依據私有或頻繁變化資訊作答的助理。

關鍵重點

  • RAG 透過在查詢時檢索相關片段,把 AI 的答案錨定在你自己的文件上。
  • 它借助 embeddings 和一個 vector database 運作:索引一次,每個問題檢索並生成。
  • 在保持知識更新方面,RAG 在時效性、成本、可控與可信上都勝過 fine-tuning。
  • 品質來自 chunking、檢索、prompt 設計以及保持索引更新。

為你的企業加入懂知識的 AI

一套生產級 RAG 系統需要合適的 chunking、檢索、prompting,以及一條能保持更新的索引流水線。AI 整合服務 以精心設計的 prompt 和成本控制,將由 RAG 驅動的知識庫和其他智慧功能建構進你現有的應用,而 OpenAI API 整合服務 則專門涵蓋以 RAG 為基礎的助理。如果你從對話式介面起步,參見使用 OpenAI API 打造 AI 聊天機器人 。若想更全面地了解如何採用 AI,面向英國中小企業的 AI 整合指南 是不錯的起點。

常見問題(FAQ)

什麼是檢索增強生成(RAG)? RAG 是一種讓 AI 模型能夠使用你自己的文件作答的技術。它從你的內容中檢索最相關的片段並放入 prompt,讓模型依據你的知識作出回應,而不僅僅依賴其訓練資料。

RAG 與 fine-tuning 有何不同? RAG 在查詢時檢索相關內容並把答案錨定其上,因此更新即時生效,且可以引用來源。fine-tuning 會改變模型的權重,需要重新訓練才能反映新資訊。RAG 更適合保持知識更新;fine-tuning 更適合一致的風格或狹窄的行為。

RAG 能阻止 AI 的 hallucination 嗎? 它透過把答案錨定在檢索到的事實上,顯著減少 hallucination,並讓你能夠引用來源,使答案可稽核。它並不能完全消除 hallucination,因此良好的 prompting 仍然重要(包括指示模型在不知道時如實說明)。

什麼是 vector database,RAG 為什麼需要它? vector database 儲存 embeddings,即你文件 chunk 的數值表示,並找出含意與某個問題最接近的那些。RAG 用它依據含意而非精確關鍵字匹配來快速檢索相關上下文。

建構一個 RAG 系統我需要什麼? 你的來源文件、一條 chunking 與 embedding 流水線、一個 vector database,以及一個檢索相關 chunk 並據此向模型發出 prompt 的應用。較難的部分是 chunking 策略、檢索品質和保持索引更新。