logo
Loading...

從零開始打造 RAG!深入理解基礎組件! - AI Agent 開發特訓營:短期實現智能自動化 - Cupoy

為什麼要學會從零開始打造 RAG? 在 AI 技術蓬勃發展的今天,RAG(Retrieval-Augmented Generation,檢索增強生成)已經成為構建智能應用的核心方法之一。許多開發者在使...

為什麼要學會從零開始打造 RAG? 在 AI 技術蓬勃發展的今天,RAG(Retrieval-Augmented Generation,檢索增強生成)已經成為構建智能應用的核心方法之一。許多開發者在使用 RAG 時,往往依賴於高階框架(如 LangChain、LlamaIndex),它們封裝了許多細節,使開發變得更為便捷。然而,這些高階抽象也讓許多開發者難以理解底層機制,無法根據自身需求進行客製化。 因此,本系列文章將帶領讀者一步步從零開始打造 RAG,讓大家掌握其核心技術,包括向量存儲、檢索、回應生成與評估等,幫助開發者真正理解 RAG 的內部運作,從而能夠靈活設計自己的 AI 方案。 為什麼選擇 LlamaIndex? 在本系列文章中,我們選擇使用 LlamaIndex 來構建 RAG,而不是 LangChain,原因如下: 強大的生態系:LlamaIndex 具有完整的 LlamaCloud 平台,讓開發者能夠輕鬆管理向量索引與 RAG 應用。 資料建構優勢:LlamaIndex 在處理資料時提供更靈活的方式,例如索引的層級設計更細緻,允許開發者以不同方式組織、檢索與操作資料。 與 LangChain 的對比:雖然 LangChain 也非常強大,但主要著重在代理(Agent)與鏈結(Chains)建構,而 LlamaIndex 則在資料建構與檢索增強生成(RAG)方面有更大的優勢。 以下是 LangChain 與 LlamaIndex 在 RAG 領域的比較: 生態系統擁有 LlamaCloud,方便管理索引與 RAG 應用主要以鏈結(Chains)與代理(Agents)為主資料索引建構提供細緻的索引結構,如樹狀索引、關係型索引等主要依賴外部 Vector Store,如 Pinecone、FAISS檢索方式支援高階檢索策略,如 Hybrid Search、Fusion Retrieval主要依賴外部檢索 API,內建檢索較為基本查詢擴展提供 Query Pipeline 進行高階查詢,如 Text-to-SQL、Text-to-Pandas主要透過 Chain 來處理查詢,靈活度較低應用場景特別適合需要處理大量結構化與非結構化數據的應用適合需要 Agent-based 工作流的應用 RAG 從零開始:完整學習路線 在這個系列中,我們會拆解 RAG 的核心組件,並逐步介紹如何從零開始構建一個完整的 RAG 應用。 1. 從零開始打造資料攝取(Ingestion)流程 在這一部分,我們將學習如何將原始資料轉換為可用的向量索引,並儲存至 Vector Store。內容包括: 解析並清理非結構化資料 使用 Embedding Model 轉換文本為向量 儲存索引至向量資料庫(如 FAISS 或 Weaviate) ➡️ 詳細教學:資料攝取從零開始 2. 從零開始打造檢索系統(Vector Retrieval) 檢索系統是 RAG 的核心,我們將學習: 如何從 Vector Store 中高效檢索相關資訊 透過相似度計算(Cosine Similarity、Dot Product)來排序結果 加入 Metadata Filtering 增強查詢能力 ➡️ 詳細教學:檢索系統從零開始 3. 使用開源技術打造完整的 RAG 工作流 如果希望打造一個完全開源的 RAG 應用,本章節將介紹如何使用: Hugging Face Embeddings + FAISS 進行索引 OpenAI 或 Hugging Face LLM 進行回應生成 FastAPI 構建可部署的 API ➡️ 詳細教學:開源 RAG 工作流 4. 從零開始構建簡單的向量資料庫 想深入理解向量資料庫的原理?我們將學習如何: 以 NumPy 建立基本的向量索引 使用 KD-Tree 或 HNSW 進行高效檢索 處理 Metadata 以增強查詢能力 ➡️ 詳細教學:向量資料庫從零開始 5. 從零開始構建回應合成(Response Synthesis) 當檢索到資料後,如何確保生成的回應有高品質? 如何處理 Context Overflow? 如何進行多段內容的拼接? 如何讓 AI 生成帶有引用的回答? ➡️ 詳細教學:回應合成從零開始 6. 從零開始構建 RAG 產出評估(Evaluation) 如何確保 RAG 產出的回應是正確的? 透過 LLM 進行語意正確性評估 衡量回應的忠實度(Faithfulness) 設計自訂的評估指標 ➡️ 詳細教學:RAG 評估從零開始 7. 進階 RAG 技術:混合檢索(Hybrid Search)與動態路由(Router) 如果想提升 RAG 的檢索能力,可以考慮: 混合檢索(Hybrid Search):結合密集檢索(Dense Retrieval)與稀疏檢索(Sparse Retrieval) 動態路由(Router):讓 LLM 自動選擇適當的檢索方式,提高查詢效率 ➡️ 詳細教學:混合檢索與路由 8. 結構化資料上的 RAG 應用(Text-to-SQL、Text-to-Pandas) RAG 主要處理非結構化數據,但我們也可以將其應用到結構化資料,如: Text-to-SQL:讓 LLM 轉換自然語言為 SQL 查詢 Text-to-Pandas:讓 LLM 幫助我們分析 Pandas DataFrame ➡️ 詳細教學:結構化資料上的 RAG 結語 本系列文章將從最基礎的向量檢索技術開始,逐步帶你學習如何從零打造完整的 RAG 應用。無論你是新手還是想深入研究 RAG 的進階開發者,都能從這個系列中學到寶貴的知識! 敬請期待完整的教學內容!🚀