检索增强生成(RAG)将检索方法与深度学习的进步相结合,以解决大型语言模型(LLMs)的静态局限性,通过动态集成最新的外部信息。这种以文本领域为主的方法提供了一种成本效益的解决方案,用于生成LLMs可能产生的合理但不正确的回应,从而通过使用现实世界数据提高其输出的准确性和可靠性。随着RAG变得越来越复杂,并融入多个可能影响其性能的概念,来自约克大学的最新综述《A Survey on Retrieval-Augmented Text Generation for Large Language Models》将RAG范式组织为四个类别:预检索、检索、后检索和生成,提供了从检索视角的详细观点。它概述了RAG的演变,并通过分析重要研究讨论了该领域的进展。此外,本文介绍了RAG的评估方法,解决了所面临的挑战,并提出了未来的研究方向。通过提供一个有组织的框架和分类,研究旨在巩固对RAG的现有研究,阐明其技术基础,并突出其潜力,以扩大LLMs的适应性和应用。
ChatGPT的横空出世引发了全球对人工智能的热议,其强大的对话能力和广泛的应用场景,让大型语言模型(Large Language Models, LLMs)成为了人工智能领域最耀眼的明星。然而,LLMs也存在着自身的局限性,例如知识局限和“幻觉”问题,限制了其进一步发展。检索增强生成技术(Retrieval-Augmented Generation, RAG)为LLMs带来了新的突破,它通过为LLMs添加“记忆外挂”,让AI能够动态获取外部知识,从而变得更加智能。
LLMs面临的挑战
-
知识局限: LLMs的知识来源于其训练数据集,而训练数据集是静态的,无法实时更新。这导致LLMs的知识存在滞后性,并且在处理专业领域问题时,往往缺乏足够的知识储备。例如,一个在2022年训练的LLM可能无法回答关于2023年发生的事件的问题。此外,即使是对于通用知识,LLMs也可能因为训练数据的不完整性而存在盲区。
-
幻觉问题: LLMs有时会生成看似合理但实际错误的文本,这种现象被称为“幻觉”。“幻觉”问题会误导用户,降低LLMs的可信度,限制其在实际场景中的应用。例如,一个LLM可能会生成一篇关于某个不存在的科学发现的新闻报道,或者编造一段历史上从未发生过的事件。
RAG技术框架
RAG技术通过检索外部数据源,为LLMs提供最新的知识,并有效解决“幻觉”问题,提升LLMs的智能水平。RAG框架主要包含四个阶段:预检索、检索(Retrieval)、后检索和生成(Generation)。
基本工作流程:索引(Indexing)、检索(Retrieval)、生成(Generation)
-
索引(Indexing): 首先,需要对外部数据源进行预处理,构建索引,以便快速检索相关信息。这类似于图书馆的图书分类系统,可以帮助我们快速找到需要的书籍。
-
检索(Retrieval): 当用户输入查询时,RAG系统会使用检索模型从索引中搜索与查询相关的文档,并按照相关性进行排序。常用的检索模型包括BM25、DPR等。
-
生成(Generation): 最后,RAG系统会将检索到的信息与用户查询结合,生成符合用户需求的文本内容。这个过程类似于我们阅读书籍后进行总结和归纳,并将自己的理解表达出来。
RAG范式:预检索、检索(Retrieval)、后检索、生成(Generation)
RAG范式将基本工作流程进一步细化,分为四个阶段:
-
预检索:
-
索引构建(Indexing): 对外部数据源进行预处理,构建索引,以便快速检索相关信息。例如,将文本数据进行分词、去除停用词等处理,并建立倒排索引。
-
查询操作: 对用户查询进行分析和处理,例如改写查询、扩展查询等,以提高检索效率和准确性。例如,将用户的自然语言查询转换为关键词查询,或者根据同义词扩展查询范围。
-
数据修改: 对外部数据进行预处理,例如去除冗余信息、添加元数据等,以提升检索结果的质量。例如,去除重复的文档,或者为文档添加主题标签。
-
检索(Retrieval): 使用检索模型从索引中搜索与查询相关的文档,常用的检索模型包括BM25、DPR等。BM25是一种基于词频统计的检索模型,而DPR是一种基于深度学习的检索模型,能够更好地理解语义信息。
-
后检索:
-
重新排序(Re-Ranking): 基于更多信息对检索结果进行排序,例如使用LLMs对文档进行打分,进一步提高排序的准确性。例如,使用LLM判断文档与查询的相关性,并根据相关性进行排序。
-
过滤: 去除不相关或低质量的文档,确保生成内容的质量。例如,去除与查询主题不相关的文档,或者去除包含虚假信息的文档。
-
生成(Generation):
-
信息增强: 将检索到的信息与用户查询结合,生成符合用户需求的文本内容。例如,将检索到的信息作为LLM的输入,让LLM根据这些信息生成文本。
-
定制化: 根据用户偏好或应用场景调整生成内容的风格、长度等。例如,根据用户的指令生成不同风格的文本,或者根据应用场景生成不同长度的文本。
预检索阶段
预检索阶段的目标是为高效检索建立数据索引,并对用户查询和外部数据进行预处理,以提升检索结果的质量。
索引构建(Indexing)
索引构建(Indexing)是将外部数据源转化为可快速检索的形式的过程。这类似于图书馆的图书分类系统,将书籍按照主题、作者等信息进行分类,方便读者快速找到需要的书籍。在RAG系统中,索引构建通常使用倒排索引等技术,将文本数据进行分词、去除停用词等处理,并建立关键词与文档之间的对应关系。
查询操作
查询操作是对用户查询进行分析和处理的过程,目的是提高检索效率和准确性。这类似于我们在图书馆检索书籍时,会根据书籍的主题、作者等信息进行关键词搜索,而不是直接输入整本书的名称。在RAG系统中,查询操作通常包括查询改写、查询扩展等技术,例如将用户的自然语言查询转换为关键词查询,或者根据同义词扩展查询范围。
数据修改
数据修改是对外部数据进行预处理的过程,目的是提升检索结果的质量。这类似于图书馆在整理书籍时,会去除破损的书籍,或者为书籍添加标签,方便读者找到需要的书籍。在RAG系统中,数据修改通常包括去除冗余信息、添加元数据等技术,例如去除重复的文档,或者为文档添加主题标签。
检索(Retrieval)阶段
检索(Retrieval)阶段的目标是根据用户查询,从索引中搜索并排序相关的文档。
搜索与排序
搜索与排序是RAG系统的核心功能,其目标是根据用户查询,从索引中找到最相关的文档,并按照相关性进行排序。常用的检索模型包括BM25、DPR等。BM25是一种基于词频统计的检索模型,而DPR是一种基于深度学习的检索模型,能够更好地理解语义信息。
后检索阶段
后检索阶段的目标是进一步优化检索结果,确保生成内容的质量。
重新排序(Re-Ranking)
重新排序(Re-Ranking)是基于更多信息对检索结果进行排序的过程,例如使用LLMs对文档进行打分,进一步提高排序的准确性。例如,使用LLM判断文档与查询的相关性,并根据相关性进行排序。
过滤
过滤是去除不相关或低质量的文档的过程,确保生成内容的质量。例如,去除与查询主题不相关的文档,或者去除包含虚假信息的文档。
生成(Generation)阶段
生成(Generation)阶段的目标是将检索到的信息与用户查询结合,生成符合用户需求的文本内容,并根据用户偏好或应用场景进行定制化。
信息增强
信息增强是将检索到的信息与用户查询结合,生成符合用户需求的文本内容的过程。例如,将检索到的信息作为LLM的输入,让LLM根据这些信息生成文本。
定制化
定制化是根据用户偏好或应用场景调整生成内容的风格、长度等的过程。例如,根据用户的指令生成不同风格的文本,或者根据应用场景生成不同长度的文本。
RAG研究现状
现有研究的综合概述
当前RAG研究主要集中在如何提高检索(Retrieval)阶段的效率和准确性,以及如何更好地将检索到的信息与LLMs结合,生成高质量的文本内容。多跳检索和多模态RAG是当前研究的热点方向。
-
多跳检索: 多跳检索是指在检索过程中进行多次检索,每次检索都根据上一次检索的结果进行调整,以找到更相关的文档。例如,第一次检索可以根据用户的关键词找到相关的文档,第二次检索可以根据第一次检索到的文档中的关键词进行扩展,找到更相关的文档。
-
多模态****RAG: 多模态RAG是指将RAG技术扩展到多模态领域,例如图像描述、文图生成、文本生成语音等。多模态RAG需要融合文本、图像、语音等多种模态信息,并开发相应的检索和生成模型,才能实现不同模态信息的有效转换和生成。
检索器与生成器的选择
-
检索模型: 传统的BM25算法仍然是RAG研究中常用的检索模型,但基于预训练语言模型的检索方法,例如DPR、Contriever等,由于能够更好地理解语义信息,具有更大的潜力,未来有望取代BM25。
-
生成模型: T5、BART等LLMs被广泛应用于RAG的生成(Generation)阶段,而BERT、Transformer等基础模型较少使用。这是因为LLMs在文本生成方面具有更强的能力,能够生成更流畅、更符合语法规则的文本内容。
RAG评估方法
RAG的评估方法主要分为检索评估和生成评估两个方面。
检索评估
检索评估主要评估检索结果的相关性和准确性,常用的指标包括:
-
准确率: 评估检索到的文档中包含正确信息的比例。
-
拒绝率: 评估系统在没有找到相关信息时拒绝回答的比例。
-
错误检测率: 评估系统识别并去除错误或误导性信息的比例。
-
上下文相关性: 评估检索到的文档与查询的上下文相关程度。
-
真实性: 评估生成内容是否准确反映了检索到的信息,是否存在虚假信息。
生成评估
生成评估主要评估生成文本的质量、流畅度和与事实的一致性,常用的指标包括:
-
BLEU: 评估生成文本与参考文本的相似程度。
-
ROUGE-L: 评估生成文本与参考文本在最长公共子序列上的重叠程度。
-
EM: 评估生成文本与参考文本完全一致的比例。
-
F1分数: 综合评估生成文本的准确率和召回率。
-
误导率: 评估生成文本包含虚假信息的比例。
-
错误重现率: 评估生成文本中重复出现错误的比例。
未来发展方向
RAG技术在未来有广阔的发展空间,以下是一些重要的研究方向:
-
提升检索(Retrieval)质量: 网络上存在大量的虚假信息和不可靠信息,如何有效地识别和过滤这些信息,是提升RAG系统性能的关键。未来需要开发更强大的检索模型,能够更好地理解语义信息,并结合知识图谱等技术,提高检索结果的准确性和可靠性。
-
多模态****RAG: 将RAG技术扩展到多模态领域,例如图像描述、文图生成、文本生成语音等,是未来重要的研究方向。多模态RAG需要融合文本、图像、语音等多种模态信息,并开发相应的检索和生成模型,才能实现不同模态信息的有效转换和生成。
结论
RAG技术为LLMs带来了新的突破,让AI能够动态获取外部知识,突破自身局限,变得更加智能。随着RAG技术的不断发展,LLMs将在更多领域发挥更大的作用,推动人工智能迈向更加美好的未来。
如何学习大模型 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 的正确特征了。