logo
Loading...

🚀 從零開始打造 RAG:深入理解 LlamaIndex 組件用llamaindex框架深入探討 - AI Agent 開發特訓營:短期實現智能自動化 - Cupoy

這是一篇針對 LlamaIndex 的 RAG(檢索增強生成) 教學,將深入探討如何從零開始構建 RAG,並理解其內部機制。這份指南將著重於低層次的實作,避免直接使用高階封裝的函式,幫助你更好地理解 ...

這是一篇針對 LlamaIndex 的 RAG(檢索增強生成) 教學,將深入探討如何從零開始構建 RAG,並理解其內部機制。這份指南將著重於低層次的實作,避免直接使用高階封裝的函式,幫助你更好地理解 RAG 的每個核心組件,並自由組合來適應不同需求。 Optional:llamaindex 和 Langchain ?? 可參考我的medium有寫一篇簡單概述的https://kilong31442.medium.com/langchain-v-s-llamaindex-2fcfcbb36a47 🚀 從零開始打造 RAG:深入理解 LlamaIndex 組件 📌 介紹 這篇文章將指引你如何 從零開始構建 RAG(Retrieval-Augmented Generation),完全不依賴高階封裝的方法,而是透過最基礎的 LLM、嵌入模型、提示詞(prompt)與向量索引(vector store) 來打造一個可擴展的 RAG 系統。 我們將逐步構建 RAG 的核心組件,包括: 資料攝取(Ingestion) 向量檢索(Vector Retrieval) 回應合成(Response Synthesis) 混合搜尋(Hybrid Search) 問答與評估(QA & Evaluation) 高級檢索技術(Fusion Retrieval, Router) 結構化數據查詢(Text-to-SQL, Text-to-Pandas) 這些內容來自 LlamaIndex 的官方指南,你可以隨時參考完整文件:👉 官方文件 1️⃣ 構建資料攝取管道(Ingestion Pipeline) 📌 Ingestion from Scratch 資料攝取是 RAG 的第一步,我們需要將非結構化數據轉換為可檢索的向量格式,並存入向量數據庫。本節將示範如何 手動處理數據並建立索引,不使用 VectorStoreIndex.from_documents 等高階函式。 2️⃣ 構建向量檢索(Vector Retrieval) 📌 Vector Retrieval from Scratch 在這一部分,我們將學習如何 查詢向量數據庫,並建立自己的檢索系統,不依賴 VectorStoreIndex.as_retriever()。我們將探討: 如何計算相似度(Cosine / dot-product) 如何篩選與排序檢索結果 3️⃣ 使用開源技術構建 RAG(Open-Source Components) 📌 Open Source RAG 想要完全不依賴 OpenAI API,打造 本地端的 RAG 系統?這一部分將展示如何使用 開源 LLM、開源嵌入模型(如 sentence-transformers)、以及本地向量數據庫(如 FAISS 或 Qdrant)。 4️⃣ 從零開始構建簡易向量數據庫(Vector Store) 📌 Vector Store from Scratch 本節展示如何從基礎開始構建向量數據庫,使其具備 密集搜索(Dense Search)與元數據篩選(Metadata Filtering) 的能力。這對於想要理解向量數據庫的內部機制的工程師特別有幫助! 5️⃣ 構建回應合成(Response Synthesis) 📌 Response Synthesis from Scratch 當檢索到相關資訊後,LLM 需要根據這些內容生成回答。本節將探討: 如何有效利用檢索到的內容 如何處理 上下文溢出(Context Overflow) 如何 提供來源引用(Source Citation) 如何 進行非同步調用(Async Calls) 來提升效率 6️⃣ 建立 LLM 生成內容的評估機制(Evaluation) 📌 Evaluation from Scratch 這一部分將教你如何評估 RAG 系統的回應,確保其: 準確性(Correctness) 忠實度(Faithfulness) 我們將探討如何使用 LLM 建立 自定義評估模組,以確保系統輸出的可靠性。 7️⃣ 進階 RAG 技術(Advanced RAG) 📌 Building Advanced RAG from Scratch 如果你想進一步提升 RAG 的性能,這一部分將探討進階技術,包括: 混合搜尋(Hybrid Search) 查詢重寫(Query Rewriting) 檢索融合(Fusion Retrieval) 多步檢索(Multi-Step Retrieval) 8️⃣ 混合檢索(Hybrid Search) 📌 Building Hybrid Search from Scratch 混合檢索結合了 稀疏檢索(Sparse Retrieval, 如 BM25)與密集檢索(Dense Retrieval, 如 FAISS 向量搜索),能夠提升查詢結果的相關性。本節將示範如何構建自己的 Hybrid Search 模組。 9️⃣ 構建智慧路由(Router) 📌 Router from Scratch 除了基本的 RAG,LLM 也可以用來進行 決策與路由。這一部分展示如何構建 智能查詢路由器,自動決定: 是否要檢索數據 應該使用哪種類型的檢索 如何處理不同類型的問題 🔟 構建融合檢索(Fusion Retrieval) 📌 Fusion Retrieval from Scratch 本節將展示如何構建 進階檢索技術,包括: 查詢重寫(Query Rewriting) 動態檢索(Dynamic Retrieval) 檢索結果集成(Ensemble Retrieval) 這對於需要 更靈活檢索策略 的企業應用特別有幫助。 1️⃣1️⃣ 在結構化數據上進行問答(QA over Structured Data) 📌 Text-to-SQL from Scratch📌 Text-to-Pandas from Scratch 除了非結構化文本,LlamaIndex 也支援 結構化與半結構化數據(如 SQL 資料庫與 Pandas DataFrame)。這一部分將示範: 如何從零開始構建 Text-to-SQL 如何將 LLM 與 Pandas 整合,進行數據查詢 🎯 結論 這篇指南幫助你理解如何 從底層開始構建 RAG,讓你不再只是使用封裝好的高階函式,而是能夠 深入理解 RAG 的每個核心組件,並根據需求打造自己的 AI 工作流。 如果你對這些內容感興趣,歡迎深入閱讀 LlamaIndex 官方文件**,或關注更多的 **RAG 技術發展! 🚀 你的 RAG 之旅,現在開始! 🚀