新書推薦:
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:HK$
44.7
《
大模型启示录
》
售價:HK$
112.0
《
东法西渐:19世纪前西方对中国法的记述与评价
》
售價:HK$
201.6
《
养育男孩:官方升级版
》
售價:HK$
50.4
《
小原流花道技法教程
》
售價:HK$
109.8
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
《
武当内家散手
》
售價:HK$
50.4
|
編輯推薦: |
(1)作者经验丰富:3位作者在一线互联网大厂和上市公司又多年的AI技术经验和算法经验,是RAG领域的实践者和布道者。(2)理论全面深入:系统梳理与大模型和RAG相关核心技术和优化方法,全面总结RAG的范式演变。(3)内容实战导向:不仅讲解了各种RAG系统的训练方法,而且还讲解了如何从零搭建一个RAG系统以及RAG系统在大模型应用开发中的使用。
|
內容簡介: |
内容简介这是一本全面讲解RAG技术原理、实战应用与系统构建的著作。作者结合自身丰富的实战经验,详细阐述了RAG的基础原理、核心组件、优缺点以及使用场景,同时探讨了RAG在大模型应用开发中的变革与潜力。书中不仅揭示了RAG技术背后的数学原理,还通过丰富的案例与代码实现,引导读者从理论走向实践,轻松掌握RAG系统的构建与优化。无论你是深度学习初学者,还是希望提升RAG应用技能的开发者,本书都将为你提供宝贵的参考与指导。通过阅读本书,你将掌握以下知识:?透彻理解RAG的召回和生成模块算法?高级RAG系统的技巧?RAG系统的各种训练方式方法?深入了解RAG的范式变迁?实战0基础搭建RAG系统?实战高级RAG系统微调与流程搭建
|
關於作者: |
汪鹏
资深NLP技术专家和AI技术专家,拥有多年NLP落地经验。擅长结合用户场景,针对性地设计图谱、问答、检索、多模态、AIGC等相关的算法和落地方案。在Kaggle获得多枚奖牌,等级master。拥有公众号“NLP前沿”。
谷清水
毕业于清华大学,有国内多家大厂工作经历,7年深度学习项目开发经验。在KDD-CUP等机器学习竞赛中多次获奖,持有多项发明专利。知乎ID:“战士金”。
卞龙鹏
某上市公司资深AI算法工程师,多年互联网一线工作经验,10年机器学习与数据挖掘经验。持多项发明专利,发表多篇SCI文章,主攻机器视觉、模式识别、自然语言处理。
|
目錄:
|
目 录 Contents
前 言
第一部分 基础
第1章 RAG与大模型应用 2
1.1 大模型应用的方向:RAG 2
1.1.1 什么是RAG 2
1.1.2 RAG与模型微调的对比 5
1.1.3 RAG带来的范式改变 5
1.2 为什么需要RAG 6
1.2.1 大模型的知识更新问题 6
1.2.2 大模型生成结果的不可解释性问题 8
1.2.3 大模型的数据泄露问题 8
1.2.4 大模型的训练成本问题 9
1.3 RAG的工作流程 9
1.3.1 数据准备 10
1.3.2 数据召回 11
1.3.3 答案生成 12
1.4 RAG的优缺点 12
1.4.1 RAG的优点 12
1.4.2 RAG的缺点 13
1.5 RAG的使用场景 14
1.6 RAG面临的挑战 16
1.6.1 LLM的伸缩法则与知识库
大小的关系 16
1.6.2 相似度搜索的性能问题 17
1.7 本章小结 19
第2章 语言模型基础 20
2.1 Transformer 20
2.1.1 词嵌入 24
2.1.2 编码器 35
2.1.3 解码器 39
2.1.4 解码头 41
2.2 自动编码器 41
2.2.1 ELMo 42
2.2.2 BERT 43
2.3 自回归模型 47
2.3.1 GPT 48
2.3.2 LLaMA 53
2.4 本章小结 56
第3章 文本召回模型 58
3.1 文本召回模型基础 58
3.2 稠密向量检索模型 61
3.2.1 SimCSE 61
3.2.2 SBERT 63
3.2.3 CoSENT 64
3.2.4 WhiteBERT 65
3.2.5 SGPT 66
3.3 稀疏向量检索模型 67
3.3.1 朴素词袋模型 67
3.3.2 TF-IDF 68
3.3.3 BM25 70
3.4 重排序模型 71
3.5 本章小结 72
第二部分 原理
第4章 RAG核心技术与优化方法 74
4.1 提示词工程 74
4.1.1 提示词工程基础 74
4.1.2 RAG场景下的提示词
设计 81
4.2 文本切块 83
4.2.1 固定大小文本切块 84
4.2.2 基于NLTK的文本切块 85
4.2.3 特殊格式文本切块 85
4.2.4 基于深度学习模型的文本
切块 86
4.3 向量数据库 87
4.3.1 Faiss 88
4.3.2 Milvus 92
4.3.3 Weaviate 93
4.3.4 Chroma 93
4.3.5 Qdrant 93
4.4 召回环节优化 94
4.4.1 短文本全局信息增强 94
4.4.2 召回内容上下文扩充 95
4.4.3 文本多向量表示 96
4.4.4 查询内容优化 98
4.4.5 召回文本重排序 101
4.4.6 多检索器融合 102
4.4.7 结合元数据召回 104
4.5 效果评估 107
4.5.1 召回环节评估 107
4.5.2 模型回答评估 109
4.6 LLM能力优化 115
4.6.1 LLM微调 115
4.6.2 FLARE 117
4.6.3 Self-RAG 119
4.7 本章小结 120
第5章 RAG范式演变 121
5.1 基础RAG系统 121
5.1.1 基础流程 121
5.1.2 存在的问题 122
5.2 先进RAG系统 125
5.3 大模型主导的RAG系统 127
5.4 多模态RAG系统 131
5.5 本章小结 135
第6章 RAG系统训练 136
6.1 RAG系统的训练难点 136
6.2 训练方法 138
6.3 独立训练 138
6.4 序贯训练 139
6.4.1 冻结召回模块 140
6.4.2 冻结生成模块 141
6.5 联合训练 143
6.5.1 异步更新索引 143
6.5.2 批近似 147
6.6 本章小结 149
第三部分 实战
第7章 基于LangChain实现RAG
应用 152
7.1 LangChain基础模块 152
7.2 基于LangChain实现RAG 156
7.3 基于Streamlit搭建一个ChatPDF可视化应用 158
7.4 本章小结 161
第8章 RAG系统构建与微调
实战 162
8.1 向量模型构建 162
8.1.1 模型选型 162
8.1.2 训练数据构造 163
8.1.3 向量模型训练 166
8.1.4 向量模型联合训练 167
8.2 大模型指令微调 175
8.3 复杂问题处理 179
8.3.1 微调数据构造 180
8.3.2 微调数据处理 194
8.3.3 复杂问题推理处理 200
8.4 本章小结 203
|
內容試閱:
|
Preface?前 言
为什么要写这本书
OpenAI于2022年11月30日发布的ChatGPT几乎颠覆了现有的NLP范式,使NLP算法的日常工作和技术栈都发生了一定的改变。最受关注的两个落地方向分别为RAG(Retrieval-Augmented Generation,检索增强生成)和Agent。RAG的产品落地要先于Agent,且RAG的研究已经有多年了。RAG可以拆解成多个模块,如果将每个模块理解成一个小工具,那么RAG实际上是一个特定任务的Agent。因此,本书以RAG为主题。写作本书的时候,我还在金山办公软件有限公司任职,现成的文档、知识库业务促使我在2023年初就开始尝试大模型的落地。最先落地的应用就是基于金山知识库的RAG,后续推出了基于云文档的ChatFile,以及基于金山协作的搜索助手等,它们均是以RAG为核心的落地应用。
目前,虽然闭源的大模型上下文窗口已经可以将大部分的书籍、资料放入大模型的输入提示词中,但即使是一个小型企业,企业内的知识库文档量也是非常庞大的,我们不可能全部都放入大模型的提示词中。另外,大模型在无损推理时,为了保证推理效率,需要缓存每个时间步的KV,随着长度的增加,显存消耗是非常庞大的,所以单张推理卡的推理长度有限。因此,我们无须担心大模型的上下文窗口长度变长,RAG就没用了。随着大模型的上下文窗口的长度不断变长,对RAG的落地越来越友好,比如我们可以通过召回大量候选来提高系统的召回率,也可以通过提高切块的大小或者不切块来保证召回文本的完整性等。
本书比较全面地囊括了过去一年内大模型RAG系统的使用技巧和范式变迁。通过这本书,读者不仅能了解到RAG的基本原理,也能了解到RAG的各种进阶技巧,从而构建出一个可靠的RAG系统。
读者对象
大模型应用落地者
RAG 零基础人员
期望了解RAG高级技巧的人员
本书内容
本书共8章,分为三大部分。
在第一部分(第1~3章)中,我们首先介绍了RAG的定义,为什么需要RAG,以及RAG的工作流程、优缺点以及使用场景。然后,我们介绍了Transformer、自动编码器和自回归模型等语言模型。最后,我们讨论了文本召回模型,涵盖文本召回模型基础、稠密向量检索模型、稀疏向量检索模型以及重排序模型等。
在第二部分(第4~6章)中,我们深入剖析了RAG的核心技术与优化方法,包括提示词工程、文本切块、向量数据库、召回环节优化、效果评估以及LLM能力优化等方面。此外,我们还介绍了RAG范式的演变,从基础RAG系统到先进RAG系统,再到大模型主导的RAG系统以及多模态RAG系统。最后,我们讨论了RAG系统的训练方法,包括独立训练、序贯训练和联合训练等。
在第三部分(第7章和第8章)中,我们首先以一个基于LangChain实现的RAG应用为例,详细介绍了如何搭建一个RAG系统。接着,我们通过案例展示了RAG系统在向量模型构建、大模型指令微调以及复杂问题处理等方面的实战应用。
本书由多个作者合作完成,其中第1、6、8章由汪鹏撰写,第2、5章由卞龙鹏撰写,第3、4、7章由谷清水撰写。
由于作者的水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者发现了书中的错误或者遇到任何问题,可以提交到https://github.com/Nipi64310/RAG-Book.git,也欢迎发送邮件至邮箱by_nipi@163.com,或者私信至微信公众号“NLP前沿”,期待得到读者的真挚反馈。
谨以此书献给我最亲爱的家人,以及众多热爱AI的朋友们!
汪鹏
2024年4月
|
|