第1章:introduction
介绍了大型语言模型(LLMs)的局限性,特别是在无法整合训练后的新信息方面。提出了检索增强生成(RAG)技术作为解决方案,并通过图1展示了RAG如何帮助ChatGPT解决超出训练数据范围的问题。
第2章:RAG框架 (RAG Framework)
第2章详细介绍了检索增强生成(RAG)框架,这是解决大型语言模型(LLMs)静态限制的关键方法之一。
2.1 基本RAG工作流程 (Basic RAG Workflow)
-
索引 (Indexing) :构建一个包含外部来源的索引,这是检索相关信息的基础。
-
检索 (Retrieval) :通过检索模型根据特定查询检索索引中的相关信息。
-
生成 (Generation) :使用生成模型将检索到的信息与查询结合,产生所需的输出。
2.1.1 索引 (Indexing)
-
文本规范化处理,如分词、词干提取和去除停用词,以提高文本的索引适用性。
-
使用深度学习预训练语言模型(如BERT)生成文本的语义向量表示,这些向量被存储以实现快速精确的检索。
2.1.2 检索 (Retrieval)
-
传统检索方法(如BM25算法)侧重于词频和文档排名,但可能忽略查询的语义信息。
-
当前策略利用预训练的LLMs,如BERT,更有效地捕捉查询的语义本质,通过考虑同义词和短语结构来提高搜索准确性。
2.1.3 生成 (Generation)
-
生成阶段的任务是产生与查询相关且反映检索文档中信息的文本。
-
通常方法涉及将查询与检索到的信息串联,然后输入LLM进行文本生成。
2.2 RAG范式 (RAG Paradigm)
-
RAG范式为研究领域提供了一个直观且强大的框架,以增强LLMs的性能。
-
该范式从检索的角度将研究组织成四个主要阶段:预检索、检索、后检索和生成。
2.2.1 预检索 (Pre-Retrieval)
- 包括索引、查询操作和数据修改等任务,为有效的数据访问做准备。
2.2.2 检索 (Retrieval)
- 搜索与排名阶段,使用搜索算法在索引数据中找到与用户查询匹配的文档,并开始对这些文档进行初步排名。
2.2.3 后检索 (Post-Retrieval)
- 后检索阶段旨在优化最初检索到的文档,以提高文本生成的质量,包括重新排名和过滤。
2.2.4 生成 (Generation)
- 生成阶段是RAG过程中的关键组成部分,负责利用检索到的信息提高生成响应的质量。
第3章:预检索 (Pre-Retrieval)
第3章深入探讨了检索增强生成(RAG)中的预检索阶段,这一阶段是确保有效数据和查询准备的关键。
3.1 索引 (Indexing)
-
k-最近邻算法 (k-NN) :与预训练神经语言模型结合使用,如kNN-LMs,展示了语言建模中的重要进展。
-
索引的深度学习集成:使用预训练的语言模型来生成文本的语义向量表示,这些向量存储后可以快速精确地检索大量数据集中的信息。
3.2 查询操作 (Query Manipulation)
-
查询重构:调整用户查询以更好地匹配索引数据,包括查询重写、扩展和规范化。
-
查询重写技术:如FiD、COK和Query2doc等研究强调了创建新查询或改进现有查询以实现更相关检索结果的重要性。
-
查询生成:使用高级语言模型进行基于提示的查询生成,如PROMPTAGATOR和KnowledGPT,它们通过不同的策略来提高查询与检索系统功能的一致性。
3.3 数据修改 (Data Modification)
-
内部数据修改:如RA-DIT和RECITE研究强调通过内部数据修改来增强检索效率。
-
数据丰富:通过添加元数据等额外信息来提高检索内容的相关性和多样性。
-
外部数据改进:如UPRISE和GENREAD研究专注于改进外部数据,以增强检索结果。
核心研究和技术
-
REALM:一种索引方法,使用BERT等预训练模型来提高检索效率。
-
kNN-LMs:结合k-NN算法和预训练语言模型,用于提高语言模型的性能。
-
RAG:检索增强生成技术的缩写,它通过检索来增强语言模型的生成能力。
-
Webgpt:使用Bing API进行索引,基于实际用户搜索历史。
-
RETRO:一种RAG方法,专注于提高检索效率和准确性。
-
MEMWALKER:创新方法,通过创建记忆树来克服LLMs的上下文窗口大小限制。
第4章:检索 (Retrieval)
第4章专注于RAG(检索增强生成)中的检索阶段,这是确定信息检索系统性能的关键部分。
4.1 搜索与排名 (Search & Ranking)
- 搜索与排名的结合:检索阶段的核心是搜索算法的使用,这些算法在索引数据中导航以找到与用户查询匹配的文档,并开始对这些文档进行初步排名。
4.2 检索策略 (Retrieval Strategies)
- 传统与现代检索方法:讨论了传统检索方法(如BM25算法)与利用预训练语言模型(如BERT)的现代方法之间的差异。现代方法通过考虑同义词和短语结构来提高搜索的语义准确性。
4.3 检索模型 (Retrieval Models)
-
Atlas:研究了少样本学习方法,包括注意力蒸馏和困惑度蒸馏,以指导检索器检索更多相关文档。
-
IRCOT:将检索与推理相结合,以提高检索的有效性。
-
SURGE:使用子图检索器从知识图中提取相关子图。
-
PRCA:专注于使用特定领域的摘要性总结从文档中提取相关和上下文丰富的信息。
4.4 检索效率与准确性 (Efficiency and Accuracy)
-
检索效率:探讨了如何提高检索过程的效率,同时保持或提高检索结果的准确性。
-
检索器与生成器的协作:讨论了检索器和生成器如何协作以生成高质量的输出。
核心研究和技术
-
MEMWALKER:利用内部搜索和排名机制来识别长文本上下文问题回答中的相关信息。
-
Confidence-based Active Retrieval:基于置信度的主动检索方法,如FLARE,根据生成句子的置信度水平动态触发信息检索。
第5章:后检索 (Post-Retrieval)
第5章专注于RAG(检索增强生成)中的后检索阶段,这一阶段发生在相关信息被检索到之后,目的是进一步提升文本生成的质量。
5.1 重新排名 (Re-Ranking)
-
重新排名的目的:在检索到文档后,重新评估、打分和排序这些文档,以更准确地突出与查询最相关的文档,并减少不相关文档的影响。
-
技术与方法:
-
Re2G:引入了序列对分类方法,使用BERT变换器同时分析查询和段落,通过交叉注意力机制提升相关性。
-
PROMPTTAGATOR:采用“Lift Yourself Up”策略,通过迭代选择最佳候选项来逐步提高内容质量。
-
In-Context RALM:探索了零样本重排和预测性重排,使用训练模型来优化文档选择。
-
DKS-RAC:提出了一种基于知识的相似度方法,通过序列层面的知识对齐来改进文档选择。
5.2 过滤 (Filtering)
-
过滤的目的:移除未达到特定质量或相关性标准的文档,确保只有最相关的文档被用于文本生成。
-
技术和方法:
-
COK:提出了一种逐步修正理由的技术,通过检索知识不断优化信息的相关性和质量。
-
Self-RAG:引入了自我反思机制,使用批评标记评估检索段落的相关性、支持性和实用性。
-
FiD-TF 和 RECOMP:专注于移除检索文档中的不相关或冗余标记和信息,提高信息处理的效率。
核心研究和技术
-
RE2G:使用BERT变换器进行重新排名,提升检索的相关性。
-
PROMPTTAGATOR:通过自我生成内容逐步提高内容质量。
-
In-Context RALM:探索了使用语言模型的零样本重排和预测性重排。
-
DKS-RAC:利用序列层面的知识相似度改进检索的匹配度。
-
COK:通过逐步优化过程显著提升信息的相关性和质量。
-
Self-RAG:使用自我反思机制高效过滤掉不相关内容。
第6章:生成 (Generation)
第6章专注于RAG(检索增强生成)中的生成阶段,这是整个RAG工作流程中的最后一步,负责将检索到的信息转化为用户所需的输出。
6.1 增强 (Enhancing)
-
增强的目的:在生成阶段的核心是增强步骤,目标是将检索到的信息与用户的查询合并,创建一个连贯且相关的响应。
-
技术和方法:
-
DSP:提出了一个框架,设计用于生成多个检索查询以总结和回答问题,利用从不同段落聚合的信息。
-
PRCA:提出了一个奖励驱动的阶段,根据生成器的反馈来提炼上下文,并使用强化学习调整PRCA的参数。
-
REPLUG:提出了一种方法,将检索到的文档添加到输入上下文中,然后再由黑盒语言模型进行最终预测。
-
自定义 (Customization) :
-
PKG:框架通过内部生成背景知识,使用预训练模型,消除了传统外部检索过程的需要。
-
Self-RAG:提供了一种策略,通过在可定制的解码算法中纳入反思标记,动态调整模型的检索和生成行为。
6.2 自定义 (Customization)
-
自定义的目的:根据用户的特定偏好或请求的上下文调整内容,包括适应目标受众的需求或呈现格式。
-
技术和方法:
-
SURGE:通过应用图-文本对比学习,确保生成的对话响应与检索到的子图中包含的知识紧密对齐。
-
FiD-light:引入了一种基于列表的自回归重新排名方法,使用源指针优化排名顺序,并在模型输出中结合文本引用作为相关信息源的指针。
核心研究和技术
-
DSP:使用CombSUM计算不同检索列表中段落的累积概率分数,以编制来自多个来源的综合响应。
-
PRCA:使用强化学习调整提取的上下文,以满足生成器的具体要求,优化生成过程。
-
REPLUG:通过并行编码检索文档的集合策略,克服了语言模型上下文长度的限制,并提高了准确性。
-
RECITE:实现了一种自洽技术,通过独立生成多个朗诵文并采用多数/多数投票系统来确定最合适的答案。
第7章:RAG的比较 (Comparisons of RAG)
第7章提供了对RAG(检索增强生成)研究的全面总结,分析了不同研究的共同点和差异,以及它们在RAG领域的贡献。
7.1 综合总结 (Comprehensive Summary of RAG)
-
研究分析:对RAG研究进行了详细分析,包括使用的技术、数据源、是否涉及多跳检索、以及检索和生成阶段的具体方法。
-
多跳与单跳检索:指出了在迭代搜索轮次中,多跳检索通常能够产生更优越的结果。
-
查询操作:与在预检索阶段修改数据集相比,更多的研究集中在通过操作查询来提高检索性能。
-
检索阶段的优化:强调了优化检索阶段的重要性,这在RAG研究中占据了显著的位置。
-
生成阶段的定制:指出了在生成阶段定制内容的研究相对较少,暗示了未来探索的潜在领域。
7.2 检索器与生成器 (Retriever and Generator)
-
主要组件:在RAG中,检索器和生成器是两个核心组件,它们共同工作以提高LLMs的响应质量。
-
使用的技术:总结了在讨论的研究中使用的检索器和生成器,包括使用的预训练语言模型和信息检索技术。
-
传统与现代方法:指出了尽管大多数生成器使用了先进的语言模型,但许多检索器仍然采用传统的BM25算法,因为它的效率。
-
未来方向:强调了在检索器中开发更强大的基于IR的LLMs的潜力。
核心研究和技术
-
REALM:使用BERT和Transformers模型。
-
kNN-LMs:结合了FAISS和Transformers。
-
RAG:使用了DPR和BART-Large模型。
-
FiD:结合了BM25、DPR和T5模型。
-
Webgpt:使用了Bing API和GPT-3。
-
Re2G:采用了BM25和DPR以及BART模型。
第8章:RAG中的评估 (Evaluation in RAG)
第8章专注于RAG(检索增强生成)系统的评估方法,这是理解LLM(大型语言模型)如何通过利用外部知识生成更准确、相关和鲁棒回答的重要研究领域。
8.1 基于检索的方面 (Retrieval-based Aspect)
-
标准信息检索指标:使用平均精度均值(MAP)、精确度、倒数排名和归一化折扣累积增益(NDCG)等指标来评估搜索结果的质量。
-
RAG中的检索指标:专注于评估检索到的信息对支持生成任务的有效性,包括准确度、拒绝率、错误检测率和上下文相关性。
8.2 基于生成的方面 (Generation-based Aspect)
-
文本质量评估:使用BLEU、ROUGE-L等指标来评估LLM生成文本的语言质量和连贯性。
-
准确性和真实性:使用精确匹配(EM)和F1分数等指标来衡量生成文本的准确性和与真实数据的一致性。
-
任务特定指标:可能包括对话生成中使用的困惑度和熵,以及误导率和错误再现率等指标。
8.3 评估框架和基准 (Evaluation Frameworks and Benchmarks)
- 多维度评估:介绍了不同的评估框架,如RAGAS、ARES和RECALL,这些框架旨在从多个维度评估RAG系统,包括生成文本的质量、检索文档的相关性以及模型对错误信息的鲁棒性。
8.4 评估方法和数据集 (Evaluation Methods and Datasets)
-
评估方法:讨论了评估RAG系统的不同方法,包括使用特定的数据集和基准来测试模型性能。
-
数据集:提到了用于评估RAG模型的多种数据集,如TriviaQA、HotpotQA、FEVER、Natural Questions、Wizard of Wikipedia和T-REX。
8.5 评估的挑战和未来方向 (Challenges and Future Directions in Evaluation)
-
评估的挑战:指出了评估RAG系统时面临的挑战,包括如何全面评估系统的性能以及如何确保评估结果的公正性和准确性。
-
未来方向:强调了开发新的评估工具和方法的重要性,以适应RAG技术的快速发展和多样化的应用场景。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。