了解如何掌握 RAG(檢索增強生成),這是一項能克服 AI 模型知識限制並運用最新資訊的核心技術。
想像一下。您有多年來精心整理的工作手冊,或大量的個人筆記。當您根據這些珍貴的資料向近期流行的 AI 聊天機器人提問時,如果 AI 回答:「抱歉,我不知道那些內容」,會有多令人沮喪?
我們常用的大型語言模型(LLM,透過學習大量文字數據來生成自然語言的 AI),天生僅能知曉其已學習過的公開網際網路數據範圍內的資訊。參考資料 4 換句話說,屬於您自己的特別數據對於 AI 而言是「未知的領域」。為了解決這個問題而出現的技術,正是 RAG(檢索增強生成,Retrieval Augmented Generation)。
為什麼這很重要?
RAG 是目前為了改善 AI 模型的回答品質與精確度,最被廣泛使用的技術。參考資料 4 在處理企業內部使用的文件或即時新聞等 AI 模型無法預先學習的資訊時,它是不可或缺的。參考資料 5
簡單來說,這就像不是只給參加考試的學生(AI)教科書(學習數據),而是允許他們自由使用參考圖書館(外部資料庫)。比喻來說,在原本只能靠腦袋回想答案、卻什麼都不知道的情況下,將其轉換為「開卷考試」的技術。透過這種方式,AI 就能給出更精確且可靠的回答。參考資料 5
輕鬆理解:為 AI 建立一個參考資料室
許多 RAG 教學只會簡單地調用現成的框架,並說:「只要呼叫這三個函數就完成了」。但這樣學習容易忽略技術的核心原理。參考資料 2 若想真正理解技術,透過「從零開始(from scratch)」親自堆疊結構的經驗至關重要。參考資料 11
製作 RAG 的過程,大致依循下列順序:
- 準備文件:將 PDF 或文件檔案提取為 AI 可讀取的文字。
- 分塊(Chunking):將冗長的文件拆分為 AI 易於一次處理的小片段。
- 生成嵌入(Embedding):將文字片段轉換為 AI 可理解的數值向量形式座標。
- 相似度檢索(Similarity Search):當用戶提問時,AI 會從數據片段中找出與問題最相似的內容。
- LLM 回答生成:將找出的資訊與問題一同傳遞給 AI 模型,讓模型據此完成最終回答。參考資料 7
例如,當我們想在厚重的百科全書中尋找特定內容時,我們親自翻閱索引(檢索)找出相關頁面,總結後告訴朋友,這與上述過程完全相同。
現況:發展到什麼地步了?
今日的 RAG 技術已達到非常實用的階段。即使不懂程式設計,也可以使用簡單的無程式碼(No-code)工具來配置自動化工作流,參考資料 1 或者運用 Python 等程式語言從頭到尾精確地直接實現。參考資料 16
不過,初次嘗試的人有時會因為環境配置複雜或教學內容過舊而感到困惑。參考資料 16 此外,隨著數據量增加,單純的檢索有時會導致精確度下降,為了應對此情況,優化檢索範圍或管理上下文長度等各種高階技術也在持續發展中。參考資料 10
未來發展如何?
未來,RAG 技術將朝著任何人都能輕鬆接觸與實現的方向發展。那些曾經親手從頭實現一切、領悟基本原理的人,日後在設計更大規模的企業級系統時,將擁有更穩固的基礎。參考資料 20 您現在也可以立刻開始一個小專案。親手製作的經驗,將是理解 AI 時代最快的鑰匙。參考資料 15
MindTickleBytes 的 AI 記者觀點
RAG 正是將 AI 從單純的知識儲存庫,轉變為身邊「聰明秘書」的關鍵。這段讓 AI 能閱讀並回答我文件的旅程,或許就是改變我們檢索與處理資訊方式本身,最微小卻宏大的一個變革。
參考資料
- Build a RAG Chatbot in n8n — Easiest Way to Embed AI… - YouTube, https://www.youtube.com/watch?v=D_Epp2UmQAk
- Retrieval Augmented Generation from Scratch Tutorial, https://joescharf.com/retrieval-augmented-generation-from-scratch-tutorial/
- Retrieval Augmented Generation (RAG) - DeepLearning.AI, https://learn.deeplearning.ai/courses/retrieval-augmented-generation/lesson/rrngb/a-conversation-with-andrew-ng
- What is Retrieval-Augmented Generation (RAG)?, https://www.analyticsvidhya.com/blog/2023/09/retrieval-augmented-generation-rag-in-ai/
- Understanding RAG by Building a ChatPDF App… - DEV Community, https://dev.to/sharathkurup/understanding-rag-by-building-a-chatpdf-app-from-numpy-to-faiss-part-2-33oe
- Understanding RAG Part V: Managing Context Length, https://machinelearningmastery.com/understanding-rag-part-v-managing-context-length/
-
GitHub - linga009/causal-graph-rag Linga Murthy Narlagiri, https://www.linkedin.com/posts/lingam2620121989_github-linga009causal-graph-rag-activity-7475187703802679296-tdjm - RAG Crash Course for Beginners - YouTube, https://www.youtube.com/watch?v=swvzKSOEluc
-
Build RAG From Scratch in Python Modern RAG Project for Beginners …, https://www.youtube.com/watch?v=mMb_0cqw-E8 - Building RAG Systems: From Zero to Hero - DEV Community, https://dev.to/gautamvhavle/building-production-rag-systems-from-zero-to-hero-2f1i
- 縮短 AI 的學習時間
- 幫助 AI 基於其未學習過的數據生成答案
- 縮小 AI 模型的大小
- 提取文件文字並進行分塊(chunking)
- 生成嵌入(Embedding)
- 重新訓練 AI 模型
- 因為模型能自行找出正確答案
- 因為可以檢索並運用學習數據之外的最新資訊或個人數據
- 因為 AI 模型的運算速度變快了