iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
佛心分享-IT 人自學之術

LLM入門學習系列 第 17

Day 17:RAG (Retrieval-Augmented Generation) 入門

  • 分享至 

  • xImage
  •  

1. RAG 的核心概念與流程

RAG 是將大型語言模型 (LLM) 應用帶入實際企業或個人知識庫的關鍵框架。它有效地解決了 LLM 的兩大痛點:知識截止(Knowledge Cutoff)幻覺(Hallucination),讓模型能夠基於最新、準確的外部資料來生成答案。他是一個將 檢索系統 (Retrieval System)生成模型 (Generation Model) 結合的框架。

RAG 解決的核心問題

  1. 知識截止:LLM 只能回答訓練截止日期前的內容。RAG 引入外部記憶體,讓模型能存取最新或專有的資料。
  2. 幻覺:當模型不知道答案時會編造。RAG 提供了可信來源,迫使模型「有依據地」回答。

RAG 的四步驟工作流程

  1. 使用者輸入問題 (Query):用戶提出疑問。
  2. 檢索 (Retrieval):在外部知識庫中找到最相關的文本片段(Context)。
  3. 增強提示 (Augmentation):將檢索到的內容與用戶問題一起組合成一個新的 Prompt
  4. 生成 (Generation):LLM 根據這個被增強的 Prompt,輸出一個可靠、帶來源的答案。

Query -> Retrieval -> Augmented Prompt -> LLM -> Grounded Answer


2. 知識檢索方式:向量是關鍵

RAG 的檢索環節決定了答案的品質。目前主要有兩種檢索方式:

方式 原理 優點與應用 缺點
傳統檢索 依賴關鍵字匹配 (如 TF-IDF, BM25)。 簡單、快速。 無法理解語義相近但字面不同的內容。
向量檢索 透過 Embedding 將文本轉換為向量,計算查詢向量與知識庫向量的餘弦相似度 能找到語義相關的內容,而不僅是字面匹配,是 RAG 的主流方法。 需要專門的向量資料庫支援。

3. 向量資料庫:FAISS 的作用

向量資料庫是 RAG 框架的核心引擎,專門用於高效、快速地進行高維度向量的相似度搜索。

FAISS (Facebook AI Similarity Search)

  • 定義:Meta(原 Facebook AI)開源的一個高效能向量檢索函式庫
  • 特點:它針對速度和記憶體效率進行了優化,特別適合在單機上進行大規模、高維度的相似度搜索和快速原型設計。
  • 支援:支持多種複雜的索引方法(如 HNSW, IVF),能處理百萬級甚至更大的向量集。

RAG 的基礎架構實作流程 (以 FAISS 為例)

這個流程完美地演示了如何將非結構化文本轉換為可檢索的向量索引:

  1. 建立向量模型:選擇一個 Embedding 模型(例如 SentenceTransformer)將文本轉換為向量。
  2. 文件庫:準備好你的知識庫文件。
  3. 轉換成向量:將文件內容切塊後,轉換成高維度的 float32 向量。
  4. 建立 FAISS 索引:使用 faiss.IndexFlatL2(或更複雜的索引)建立索引,並將所有文件向量加入。
  5. 查詢:將用戶問題轉換成查詢向量,使用 index.search() 快速找到 K 個最相似的文件向量及其原始文本。
  6. 生成:將檢索到的文本作為 Context,交給 LLM 輸出最終答案。

4. RAG 的應用場景

RAG 已經成為許多企業應用 LLM 的標準配置,常見應用包括:

  • 文件問答 (QA System):針對公司內部手冊、技術文件、法律合同進行提問。
  • 客戶服務知識庫:基於最新的產品說明書或 FAQ 來提供準確的客服回答。
  • 學術資料輔助:根據最新的研究論文來提供總結和見解。
  • 個人筆記搜尋助手:快速從大量的個人筆記或郵件中找到相關資訊。

總結:RAG 框架透過外部知識和 LLM 的結合,極大地擴展了語言模型的應用範圍,將其轉變為一個實用、可靠、且能不斷更新的工具。


上一篇
Day 16:提示工程(Prompt Engineering)的核心策略
下一篇
Day 18:評估指標 (Evaluation Metrics) — 衡量 LLM 的品質
系列文
LLM入門學習20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言