Home
Login

第五階段:AI應用場景探索

全面的檢索增強生成(RAG)系統高級技術合集,涵蓋從基礎到前沿的30+種RAG技術實現,包含完整代碼示例和詳細文檔

RAGRetrievalAugmentedGenerationVectorSearchGitHubTextFreeEnglish

RAG 技術學習資料詳細介紹

專案概述

RAG Techniques 是一個由 Nir Diamant 建立的 GitHub 開源專案,專注於展示各種先進的檢索增強生成(Retrieval-Augmented Generation,RAG)系統技術。該專案旨在為研究人員和開發者提供一個全面的資源庫,幫助他們建構更準確、更具上下文相關性的 RAG 系統。

專案特色

🌟 核心特色

  • 前沿技術:涵蓋最新的 RAG 系統增強技術
  • 完整文件:每種技術都有詳細的文件說明
  • 實踐指南:提供實際的實作指導
  • 持續更新:定期更新最新的技術進展
  • 社群驅動:擁有活躍的 Discord 社群(20,000+ AI 愛好者)

🎯 目標受眾

  • AI 研究人員
  • 機器學習工程師
  • 開發者和從業者
  • 對 RAG 技術感興趣的學習者

技術分類與詳細介紹

1. 基礎技術(Foundational 🌱)

Simple RAG

  • 描述:介紹基本的 RAG 技術,適合初學者
  • 實作:支援 LangChain 和 LlamaIndex
  • 功能:基本檢索查詢和增量學習機制

Simple RAG using CSV

  • 描述:使用 CSV 檔案的基本 RAG 實作
  • 功能:利用 CSV 檔案建立基本檢索並與 OpenAI 整合

Corrective RAG

  • 描述:增強 Simple RAG,添加驗證和改進機制
  • 功能:檢查檢索文件相關性並高亮顯示用於回答的文件片段

2. 分塊技術(Chunking Techniques)

Choose Chunk Size

  • 描述:選擇適當的文本塊大小以平衡上下文保留和檢索效率
  • 實作
# 範例:不同分塊大小的實驗
chunk_sizes = [200, 500, 1000, 2000]
for size in chunk_sizes:
    # 測試不同大小的檢索效果
    evaluate_chunk_performance(size)

Proposition Chunking

  • 描述:將文本分解為簡潔、完整、有意義的句子
  • 特色
    • 💪 命題生成:使用 LLM 生成文件塊的事實陳述
    • ✅ 品質檢查:評估準確性、清晰度、完整性和簡潔性

Semantic Chunking

  • 描述:基於語義連貫性而非固定大小來分割文件
  • 優勢:使用 NLP 技術識別主題邊界,建立更有意義的檢索單元

3. 查詢處理技術(Query Processing)

Query Transformations

  • 描述:修改和擴展查詢以提高檢索效果
  • 技術包括
    • ✍️ 查詢重寫:重新表述查詢以改善檢索
    • 🔙 回退提示:生成更廣泛的查詢以獲得更好的上下文
    • 🧩 子查詢分解:將複雜查詢分解為簡單的子查詢

Hypothetical Questions (HyDE)

  • 描述:生成假設性問題以改善查詢與資料的匹配
  • 功能:建立指向資料中相關位置的假設性問題

Hypothetical Prompt Embeddings (HyPE)

  • 描述:HyDE 的增強版本,在索引階段預計算假設性提示
  • 優勢
    • 📖 預計算問題:在索引時生成多個假設性查詢
    • 🔍 問題-問題匹配:使用者查詢與儲存的假設性問題匹配
    • ⚡ 無執行時開銷:不需要在查詢時呼叫 LLM

4. 上下文處理技術(Context Processing)

Context Enrichment Techniques

  • 描述:透過嵌入單個句子並擴展到鄰近句子來增強檢索準確性
  • 實作
# 範例:上下文視窗擴展
def get_context_window(sentence_index, window_size=2):
    start = max(0, sentence_index - window_size)
    end = min(len(sentences), sentence_index + window_size + 1)
    return sentences[start:end]

Contextual Compression

  • 描述:壓縮檢索到的資訊,同時保留與查詢相關的內容
  • 方法:使用 LLM 壓縮或總結檢索到的塊

Contextual Chunk Headers (CCH)

  • 描述:建立文件級別和章節級別的上下文,並將其添加到塊頭部
  • 功能:改善檢索準確性

5. 檢索增強技術(Retrieval Enhancement)

Fusion Retrieval

  • 描述:透過結合不同檢索方法優化搜尋結果
  • 實作:結合基於關鍵詞的搜尋和基於向量的搜尋

Intelligent Reranking

  • 描述:應用先進的評分機制改善檢索結果的相關性排名
  • 技術
    • 🧠 基於 LLM 的評分
    • 🔀 交叉編碼器模型
    • 🏆 後設資料增強排名

Multi-faceted Filtering

  • 描述:應用各種過濾技術來改善檢索結果品質
  • 包括
    • 🏷️ 後設資料過濾
    • 📊 相似度閾值
    • 📄 內容過濾
    • 🌈 多樣性過濾

6. 進階架構技術(Advanced Architecture)

Hierarchical Indices

  • 描述:建立多層系統進行高效的資訊導航和檢索
  • 實作:文件摘要和詳細塊的雙層系統

Ensemble Retrieval

  • 描述:結合多個檢索模型或技術獲得更穩健和準確的結果
  • 方法:使用投票或權重機制確定最終檢索文件集

RAPTOR

  • 描述:遞迴抽象處理樹狀組織檢索
  • 特色:使用抽象總結遞迴處理檢索文件,以樹狀結構組織資訊

7. 自適應技術(Adaptive Techniques)

Adaptive Retrieval

  • 描述:根據查詢類型和使用者上下文動態調整檢索策略
  • 功能:對不同類別的查詢使用客製化的檢索策略

Self RAG

  • 描述:結合檢索和生成方法的動態方法
  • 流程:檢索決策 → 文件檢索 → 相關性評估 → 回應生成

Corrective RAG (CRAG)

  • 描述:動態評估和糾正檢索過程的複雜 RAG 方法
  • 組件:檢索評估器、知識細化、網路搜尋查詢重寫器

8. 多模態技術(Multi-modal)

Multi-modal Retrieval

  • 描述:擴展 RAG 能力以處理多種資料類型
  • 方法
    • 多媒體標題:為所有多媒體資料生成標題
    • Colpali:將所有資料轉換為圖像並使用視覺 LLM

9. 知識圖譜整合

Knowledge Graph Integration (Graph RAG)

  • 描述:整合知識圖譜的結構化資料以豐富上下文
  • 功能:檢索與查詢相關的實體和關係

GraphRAG (Microsoft)

  • 描述:微軟的開源 GraphRAG 系統
  • 特色:從文本單元提取實體、關係,生成社群摘要

10. 評估技術(Evaluation)

DeepEval Evaluation

  • 描述:全面的 RAG 系統評估
  • 指標:正確性、忠實性、上下文相關性

GroUSE Evaluation

  • 描述:基於上下文的 LLM 評估
  • 功能:使用 GroUSE 框架的 6 個指標進行評估

實作指南

快速開始

# 複製儲存庫
git clone https://github.com/NirDiamant/RAG_Techniques.git

# 導航到特定技術目錄
cd all_rag_techniques/technique-name

# 按照各技術目錄中的詳細實作指南進行操作

技術棧支援

  • LangChain:主要框架支援
  • LlamaIndex:部分技術支援
  • OpenAI API:生成模型整合
  • 各種嵌入模型:支援多種向量化方法

學習路徑建議

初學者路徑

  1. Simple RAG → 了解基本概念
  2. Choose Chunk Size → 學習文本分塊
  3. Query Transformations → 理解查詢優化
  4. Context Enrichment → 掌握上下文處理

進階路徑

  1. Semantic Chunking → 進階分塊技術
  2. Fusion Retrieval → 多方法結合
  3. Intelligent Reranking → 結果優化
  4. Hierarchical Indices → 複雜架構

專家路徑

  1. Self RAG → 自適應系統
  2. Graph RAG → 知識圖譜整合
  3. RAPTOR → 遞迴處理
  4. Multi-modal Retrieval → 多模態處理

這個學習資料提供了從基礎到進階的完整 RAG 技術學習路徑,適合不同水平的學習者,是當前最全面的 RAG 技術資源庫之一。