目錄
前言
第一部分 基礎
第1章 RAG與大模型應用
1.1 大模型應用的方向:RAG
1.1.1 什麼是RAG
1.1.2 RAG與模型微調的對比
1.1.3 RAG帶來的範式改變
1.2 為什麼需要RAG
1.2.1 大模型的知識更新問題
1.2.2 大模型生成結果的不可解釋性問題
1.2.3 大模型的數據泄露問題
1.2.4 大模型的訓練成本問題
1.3 RAG的工作流程
1.3.1 數據準備
1.3.2 數據召回
1.3.3 答案生成
1.4 RAG的優缺點
1.4.1 RAG的優點
1.4.2 RAG的缺點
1.5 RAG的使用場景
1.6 RAG面臨的挑戰
1.6.1 LLM的伸縮法則與知識庫大小的關係
1.6.2 相似度搜索的性能問題
1.7 本章小結
第2章 語言模型基礎
2.1 Transformer
2.1.1 詞嵌入
2.1.2 編碼器
2.1.3 解碼器
2.1.4 解碼頭
2.2 自動編碼器
2.2.1 ELMo
2.2.2 BERT
2.3 自回歸模型
2.3.1 GPT
2.3.2 LLaMA
2.4 本章小結
第3章 文本召回模型
3.1 文本召回模型基礎
3.2 稠密向量檢索模型
3.2.1 SimCSE
3.2.2 SBERT
3.2.3 CoSENT
3.2.4 WhiteBERT
3.2.5 SGPT
3.3 稀疏向量檢索模型
3.3.1 樸素詞袋模型
3.3.2 TF-IDF
3.3.3 BM25
3.4 重排序模型
3.5 本章小結
第二部分 原理
第4章 RAG核心技術與優化方法
4.1 提示詞工程
4.1.1 提示詞工程基礎
4.1.2 RAG場景下的提示詞設計
4.2 文本切塊
4.2.1 固定大小文本切塊
4.2.2 基於NLTK的文本切塊
4.2.3 特殊格式文本切塊
4.2.4 基於深度學習模型的文本切塊
4.3 向量資料庫
4.3.1 Faiss
4.3.2 Milvus
4.3.3 Weaviate
4.3.4 Chroma
4.3.5 Qdrant
4.4 召迴環節優化
4.4.1 短文本全局信息增強
4.4.2 召回內容上下文擴充
4.4.3 文本多向量表示
4.4.4 查詢內容優化
4.4.5 召迴文本重排序
4.4.6 多檢索器融合
4.4.7 結合元數據召回
4.5 效果評估
4.5.1 召迴環節評估
4.5.2 模型回答評估
4.6 LLM能力優化
4.6.1 LLM微調
4.6.2 FLARE
4.6.3 Self-RAG
4.7 本章小結
第5章 RAG範式演變
5.1 基礎RAG系統
5.1.1 基礎流程
5.1.2 存在的問題
5.2 先進RAG系統
5.3 大模型主導的RAG系統
5.4 多模態RAG系統
5.5 本章小結
第6章 RAG系統訓練
6.1 RAG系統的訓練難點
6.2 訓練方法
6.3 獨立訓練
6.4 序貫訓練
6.4.1 凍結召回模塊
6.4.2 凍結生成模塊
6.5 聯合訓練
6.5.1 非同步更新索引
6.5.2 批近似
6.6 本章小結
第三部分 實戰
第7章 基於LangChain實現RAG應用
7.1 LangChain基礎模塊
7.2 基於LangChain實現RAG
7.3 基於Streamlit搭建一個ChatPDF可視化應用
7.4 本章小結
第8章 RAG系統構建與微調實戰
8.1 向量模型構建
8.1.1 模型選型
8.1.2 訓練數據構造
8.1.3 向量模型訓練
8.1.4 向量模型聯合訓練
8.2 大模型指令微調
8.3 複雜問題處理
8.3.1 微調數據構造
8.3.2 微調數據處理
8.3.3 複雜問題推理處理
8.4 本章小結