RAG 檢索資料準備指南:切分、向量化與索引設計 技術文章封面圖

← INSIGHTS & PERSPECTIVES | 生成式AI

RAG 檢索資料準備指南:切分、向量化與索引設計

拆解 RAG 的 embedding 向量搜尋五步驟,並比較手動問答對、AI 自動產生問答對、直接文件分段三種資料準備方式的優缺點與適用場景。

相關論文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

Embedding 向量搜尋在 RAG 裡是怎麼運作的?

在 RAG(Retrieval-Augmented Generation)模型中,embedding 向量搜尋是關鍵步驟,用於在資料庫中找到與當前查詢相關的資訊。RAG 結合了檢索和生成的能力,透過把外部知識融入生成過程來提高生成內容的品質和相關性。主要步驟如下:

  1. 查詢嵌入(Query Embedding):把用戶的查詢轉換成嵌入向量,通常透過預訓練的語言模型(如 BERT 或 RoBERTa)完成,把文字表示成固定長度的向量,捕捉文字的語義資訊。
  2. 資料庫嵌入(Database Embedding):資料庫中每個文本片段(文章、段落、句子)也被轉換成嵌入向量,通常預先計算並存儲起來,以便查詢時能快速檢索。
  3. 相似度計算(Similarity Calculation):用某種相似度度量(如餘弦相似度)計算查詢嵌入向量與資料庫嵌入向量之間的相似度,角度越小代表相似度越高。
  4. 檢索相關資料(Retrieve Relevant Data):根據相似度分數,選擇與查詢最相關的前 N 個資料庫片段作為檢索結果。
  5. 融合與生成(Fusion and Generation):RAG 模型把檢索到的相關片段與查詢結合,透過生成模型(如 GPT-3)生成最終的回應,利用檢索到的資訊生成更準確、更豐富的回答。

用一個簡單範例走一次向量檢索流程?

假設資料庫裡有以下句子:

  1. 「Python 是一種流行的編程語言。」
  2. 「GPT-3 是 OpenAI 開發的語言模型。」
  3. 「嵌入向量是機器學習中的重要概念。」

用戶查詢:「什麼是 GPT-3?」

  1. 查詢嵌入:把「什麼是 GPT-3?」轉換成嵌入向量 Q。
  2. 資料庫嵌入:把資料庫中每個句子轉換成嵌入向量 D1、D2、D3。
  3. 相似度計算:計算 Q 與 D1、D2、D3 的相似度,例如:Q 與 D1: 0.2、Q 與 D2: 0.9、Q 與 D3: 0.3。
  4. 檢索相關資料:根據相似度分數,檢索到最相關的片段是「GPT-3 是 OpenAI 開發的語言模型」。
  5. 融合與生成:RAG 模型把檢索到的片段與查詢結合,生成關於 GPT-3 的詳細說明。

想更深入理解向量空間的文字語意檢索概念,可以參考這篇用書名做向量檢索的文章:Building a Recommendation System Using Neural Network Embeddings

準備檢索資料有哪三種方式?

大致可以分為【直接分段】或【以 QA 方式呈現】,而 QA 方式又分成【讓 AI 自動整理問答對】、【人工整理問答對】。Fancy AI 這類工具的資料準備介面,也大致依循這三種分法。

1. 手動輸入問答對

優點:

  • 高準確性:由專家或知識擁有者編寫,確保答案的準確性和相關性。
  • 高度針對性:可以針對特定領域或問題編寫,回答更具針對性。
  • 質量控制:可以進行嚴格的審查和驗證,確保資料的質量。

缺點:

  • 耗時耗力:手動編寫問答對需要大量人力和時間,尤其資料量大時。
  • 不易擴展:隨著知識庫增長,維護和更新問答對會愈發困難。

2. AI 自動產生問答對

優點:

  • 自動化程度高:用 AI 技術(如 NLP)自動生成問答對,大幅減少人力投入。
  • 快速生成:可以在短時間內生成大量問答對,適合快速擴展知識庫。
  • 適應性強:可以依需要自動更新和擴展問答對。

缺點:

  • 準確性不穩定:AI 自動生成的問答對可能存在錯誤或不精確的情況,需要人工審核。
  • 質量參差不齊:自動生成的答案質量可能不均一,部分回答可能缺乏深度或詳細性。

3. 直接將文件做分段

優點:

  • 節省時間:直接把長文檔分段,可以快速建立知識庫,省下人工編寫問答對的時間。
  • 完整性:保留原始文檔的完整資訊,便於系統檢索和引用。
  • 多樣性:文檔中的資訊可能涵蓋多個面向,能提供更豐富的回答。

缺點:

  • 相關性不一定高:分段的文檔內容可能不是針對具體問題,回答的針對性和相關性可能不如手動問答對。
  • 需要處理和優化:分段後的文檔需要處理和優化,確保分段的合理性與檢索效率。
  • 資料雜亂:如果文檔內容過於雜亂或不夠結構化,可能會影響檢索結果的質量。

這三種方式各適合什麼場景?

  • 手動輸入問答對 適合需要高度精確和針對性回答的應用場景,如專業領域的技術支持或知識管理。
  • AI 自動產生問答對 適合需要快速建立和擴展知識庫的情況,如大型網站的常見問題解答(FAQ)系統。
  • 直接將文件做分段 適合需要處理大量現有文檔資料的應用,如文檔管理系統或數字圖書館。

直接分段的範例長什麼樣子?

以「怎麼串接 GPT-3 的 API?」這個查詢為例,假設有以下一段文檔:

```text

Python是一種流行的編程語言。它擁有豐富的庫和框架,適用於各種應用場景。GPT-3是由OpenAI開發的一個強大的語言模型,可以生成高質量的自然語言文本。嵌入向量是機器學習中的重要概念,用於表示文字的語義信息。

```

可以把這段文檔拆分成以下分段:

  1. 「Python 是一種流行的編程語言。」
  2. 「它擁有豐富的庫和框架,適用於各種應用場景。」
  3. 「GPT-3 是由 OpenAI 開發的一個強大的語言模型,可以生成高質量的自然語言文本。」
  4. 「嵌入向量是機器學習中的重要概念,用於表示文字的語義信息。」

然後對每個分段生成嵌入向量,並在檢索系統中建立索引。當用戶查詢「什麼是 GPT-3?」時,系統會找到與該查詢最相關的分段(第三個分段),並用它來生成回應。

產生問答對的範例長什麼樣子?

延續同一段文檔,可以生成以下問答對:

  1. 問題:Python 是什麼? 回答:Python 是一種流行的編程語言。
  2. 問題:Python 有哪些特點? 回答:Python 擁有豐富的庫和框架,適用於各種應用場景。
  3. 問題:GPT-3 是什麼? 回答:GPT-3 是由 OpenAI 開發的一個強大的語言模型,可以生成高質量的自然語言文本。
  4. 問題:嵌入向量是什麼? 回答:嵌入向量是機器學習中的重要概念,用於表示文字的語義信息。
  5. 問題:Python 的應用場景有哪些? 回答:Python 適用於各種應用場景,因為它擁有豐富的庫和框架。
  6. 問題:GPT-3 的開發者是誰? 回答:GPT-3 是由 OpenAI 開發的。

生成問答對大致分三步:

  1. 文本分析:對給定的文本做語義分析,識別出關鍵概念和信息點——例如這段文本的關鍵概念包括「Python」「庫和框架」「GPT-3」「OpenAI」「嵌入向量」「機器學習」等。
  2. 生成問題:根據關鍵概念生成相關問題,問題應該簡潔明了,針對文本中的具體信息點。
  3. 生成答案:根據文本中提供的資訊生成相應答案,答案應準確反映文本內容,並與問題直接相關。

常見問題

Q三種資料準備方式可以混用嗎?

可以,而且實務上很常見。例如把長文檔先分段建立基礎索引,再挑重點段落額外生成或人工補上問答對,兼顧覆蓋率與回答精確度。

QAI 自動產生的問答對能直接拿去用嗎?

不建議完全不審核就直接使用。AI 生成的問答對品質不穩定,尤其在專業或高風險領域,上線前應該至少抽樣人工審核,確認答案沒有錯誤或誤導。

Q文件分段的長度要怎麼抓?

分段長度要在「保留完整語意」與「檢索精準度」之間取捨——分段太長,單一片段可能混雜多個主題,檢索時相關性不容易抓準;分段太短,則可能把一個完整概念切得七零八落,反而遺失上下文。實務上通常需要針對自己的資料做幾輪測試調整。

參考資料

最後更新

2026-08-27

延伸閱讀

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2024-06-06