《大模型RAG实战:RAG原理、应用与系统构建》由汪鹏、谷清水、卞龙鹏所著,全面介绍了RAG(检索增强生成)技术在大模型应用中的原理、实践与优化。随着大模型发展,RAG成为提升性能的关键技术,本书旨在帮助读者掌握RAG技术,构建可靠的RAG系统。
-
RAG基础
- RAG概述:RAG是结合大模型与知识检索技术的生成模型,通过检索外部知识提升回答准确性,解决大模型知识更新难、可解释性差等问题,在问答等场景广泛应用。
- 语言模型基础:介绍Transformer、自动编码器、自回归模型等语言模型原理,如Transformer的词嵌入、编码器、解码器结构,为理解RAG技术提供理论支持。
- 文本召回模型:文本召回模型是RAG核心,包括稠密向量检索模型(如SimCSE、SBERT)、稀疏向量检索模型(如TF - IDF、BM25)和重排序模型,各有特点和适用场景。
-
RAG核心技术与优化方法
-
核心技术:提示词工程通过优化提示词提升LLM回答质量;文本切块影响召回效果,有固定大小切块、基于NLTK等多种方法;向量数据库(如Faiss、Milvus)用于存储和检索文本向量,各数据库功能和性能不同。
- 优化方法:召回环节优化通过增强全局信息、扩充上下文等多种方式提高召回质量;效果评估从召回环节和模型回答两方面进行,有命中率、MRR等多种评估指标;LLM能力优化可通过微调LLM改变回答风格,如LoRA微调方法。
-
RAG范式演变
-
基础RAG系统:基础RAG系统将文本切块、向量化后检索,存在检索、增强和生成方面的问题,如语义歧义、上下文整合困难等。
- 先进RAG系统:针对基础RAG问题,从数据清理、微调嵌入、增强检索和构建提示词4个方面优化,提升系统性能。
- 大模型主导的RAG系统:大模型决定何时调用工具检索,通过Agent实现,如LangChain中动作Agent和计划与执行Agent,可处理复杂任务。
- 多模态RAG系统:可处理多种模态数据,以GPT - 4V为例,结合LlamaIndex和Qdrant,可处理PDF文档相关查询。
-
RAG系统训练
-
训练难点:RAG系统训练面临大语言模型训练资源需求大,以及更新向量模型时知识库索引更新成本高的问题。
- 训练方法:独立训练简单但模块解耦效果有限;序贯训练通过冻结一个模块训练另一个模块,如RETRO和REPLUG模型;联合训练包括异步更新索引(如REALM模型)和批近似(如TRIME模型),能同时优化模块但复杂度高。
-
RAG实战应用
-
基于LangChain实现RAG应用:LangChain提供多种基础模块,如LLM调用、文档加载等,利用这些模块可构建RAG应用,还可基于Streamlit搭建ChatPDF可视化应用。
- RAG系统构建与微调实战:向量模型构建包括选型、训练数据构造、训练和联合训练;大模型指令微调可使模型更好遵循指令;复杂问题处理通过构造特定训练数据微调模型,让大模型决策召回,处理多实体多属性问题。