iT邦幫忙

2025 iThome 鐵人賽

DAY 2
1
生成式 AI

OCR × Layout x Ollama × RAG:打造純地端智慧文件問答系統系列 第 2

Day02 - OCR 知識:什麼是 RAG?它如何解決 LLM 的知識盲點

  • 分享至 

  • xImage
  •  

在進入 RAG(Retrieval-Augmented Generation,檢索增強生成)的世界前,讓我們先思考一個核心問題:為什麼大型語言模型(LLM)有時會「自信滿滿地答錯」?這種現象,我們稱之為**「幻覺(hallucination)」**。它的根本原因在於,LLM 的知識主要來自於訓練時的資料,缺乏即時更新或存取特定領域資訊的能力。

RAG 的誕生,正是為了解決這個限制。它巧妙地結合了資訊檢索生成式 AI 的優點,讓生成模型在回答問題前,能先從外部知識庫中檢索相關資料,再據此給出更準確的回應。本篇文章將帶你深入了解 RAG 的兩個核心靈魂——RetrieverGenerator,以及它們如何協同合作,打造一個高效的問答系統。

什麼是 RAG?

眾所周知,LLM 的知識是靜態的,無法即時更新,這使得它在處理需要最新或特定知識的任務時顯得力不從心。RAG 透過一個聰明的架構來解決這個問題:當使用者提問時,系統會先檢索你的專屬文件庫,找出所有相關的內容,然後再將這些內容作為上下文,提供給 LLM 來生成回答。

簡單來說,RAG 讓 LLM 從一個「只靠記憶」的學生,變成一個「懂得找參考資料」的學術專家,這不僅能確保答案的準確性,更能有效降低「幻覺」的發生。

https://ithelp.ithome.com.tw/upload/images/20250916/201440246iB29icuis.png

RAG 的兩大核心:Retriever 與 Generator

要打造一個強大的 RAG 系統,我們需要兩大核心組件完美配合:

1. Retriever(檢索器)

Retriever 的任務,就像是 RAG 系統中的**「獵人」。它根據使用者的問題,從龐大的知識庫中快速找出最相關的內容片段**。

  • 它的職責:精準找到正確的「素材」。
  • 它的重要性:Retriever 的表現,直接決定了後續 LLM 生成答案的品質。如果它找到的資料不對,即使再聰明的 LLM 也無法給出正確的答案。
  • 常見的實作方法
    • 稀疏檢索:如 TF-IDF、BM25,透過關鍵字比對來尋找相似內容。
    • 密集檢索:利用語意嵌入(embedding)技術,找出語意上相近的內容,例如使用 OpenAI Embeddings 或 DPR。
    • 混合檢索:結合上述兩者優點,以提高檢索精準度與召回率。

2. Generator(生成器)

Generator 則是 RAG 系統中的**「大廚」,通常由一個大型語言模型(LLM)擔任,如 GPT-4、LLaMA、Claude 等。它的任務是「烹調」**Retriever 找到的素材。

  • 它的職責:理解使用者的提問意圖,閱讀 Retriever 提供的內容,然後生成流暢、語意正確的自然語言回答。
  • 它的重要性:Generator 不只是簡單地摘要內容,它必須具備閱讀理解、資訊重組與語言生成的能力,將多段資訊融合成一個邏輯清晰的答案。
  • 背後的核心技術:Transformer 架構與注意力機制(Attention Mechanism)。這讓模型能夠靈活地決定在生成每個詞時,該多關注檢索內容中的哪些關鍵資訊。

Retriever 與 Generator 的協同工作流程

RAG 系統的運作流程,就是這兩個核心組件的接力賽:

  1. 使用者提問:你向系統提出問題,例如:「最近政府有什麼針對中小企業的補助方案?」
  2. Retriever 啟動:Retriever 會在你的企業文件庫中,快速搜尋所有與「政府補助」、「中小企業」等關鍵字或語意相關的文件片段。
  3. Generator 接收上下文:Retriever 找到的相關文件片段,會被組合成一個完整的提示(prompt),連同你的問題一起送給 Generator。
  4. Generator 生成答案:Generator 讀取這個提示,並根據這些外部資訊,生成一個精確、可靠且具備邏輯性的回答。

RAG 的優化策略與常見挑戰

即使是如此強大的 RAG,在實作上仍有許多挑戰:

  • 幻覺:儘管 RAG 能有效降低幻覺,但如果 Retriever 找錯資料,Generator 仍可能基於錯誤的資訊產生不實內容。
  • 多段資訊的整合與推理困難:當需要從多個不連續的文件片段中進行邏輯推理時,Generator 面臨著巨大的挑戰。
  • 引用與真實性(Faithfulness)問題:模型有時會無法正確引用來源,甚至憑空捏造出處。

為了解決這些問題,開發者會採用精準的 Prompt 設計加入 Chain of Thought(CoT)推理,或是使用更先進的 RAG 架構來持續優化系統。

RAG 系統的效能,取決於 Retriever 找到的資料品質,以及 Generator 融合資訊與生成答案的能力。理解這兩個核心組件的角色與運作方式,是掌握 RAG 技術的關鍵。

結語:從混亂中提取清晰資訊的關鍵

RAG 系統的效能,取決於 Retriever 找到的資料品質,以及 Generator 融合資訊與生成答案的能力。然而,這一切的前提是,我們的原始資料必須是可讀、可被有效檢索的。對於掃描文件、圖片或是複雜版面的 PDF,若沒有先將其轉換成清晰、可供機器處理的文字,再強大的 Retriever 與 Generator 也無濟於事。這也正是我們在 Day01 提到的 OCR 的價值所在。

在下一篇文章中,我們將深入探討 OCR 的基本概念,並介紹在 Python 中常用的 OCR 套件,為我們後續的實作打下堅實的基礎。


上一篇
Day01 - 系列導讀:為什麼需要文件問答系統?RAG × OCR × Layout 的價值
下一篇
Day03 - OCR 知識:OCR 基礎、常見 OCR 應用場景
系列文
OCR × Layout x Ollama × RAG:打造純地端智慧文件問答系統3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言