检索增强型文本生成(Retrieval-Augmented Generation, RAG)在大型语言模型(Large Language Models, LLMs)中的应用。主要内容概要:
RAG范式:从检索的角度将RAG研究领域组织成四个主要阶段:预检索、检索、后检索和生成。
预检索:讨论了索引、查询操作和数据修改等任务,这些任务为有效的数据和查询准备奠定了基础。
检索:介绍了搜索和排名的策略,包括传统检索方法和利用预训练语言模型(如BERT)来提高语义理解。
后检索:包括重新排名和过滤,旨在优化初始检索文档的选择,以提高文本生成的质量。
生成:生成阶段的任务是利用检索到的信息提高生成响应的质量,包括增强和定制步骤。
评估方法:介绍了评估RAG系统的方法,包括对检索和生成方面的评估。
通过提供RAG领域的全面框架,旨在促进未来的研究,并从检索的角度阐明了RAG的核心概念,以便于进一步探索和创新。
RAG范式
RAG(Retrieval-Augmented Generation)是一种结合了信息检索和文本生成的方法,旨在提高大型语言模型(LLMs)的性能和表现,弥补LLMs的不足。RAG通过动态地整合最新的外部信息来解决LLMs的静态知识限制,从而生成更准确、可靠的输出。RAG范式通常包含以下几个主要阶段:
预检索(Pre-Retrieval):
这个阶段是检索过程的开始,包括索引的创建、查询的操纵和数据的修改。索引创建涉及将外部信息源组织成可以快速检索的格式。查询操纵旨在改善用户查询以更好地匹配索引数据。数据修改则可能包括去除不相关信息或添加元数据以提高检索效率。
检索(Retrieval):
在这个阶段,系统使用检索模型根据特定查询从索引中检索相关信息。这可能涉及到传统的检索算法,如BM25,或者利用预训练的语言模型,如BERT,来提高语义匹配的准确性。
后检索(Post-Retrieval):
这个阶段发生在初始检索之后,目的是优化检索到的文档。这通常包括重新排名(Re-Ranking)和过滤(Filtering)两个步骤,旨在提升文档的相关性和质量,从而为生成阶段提供更精确的信息。
生成(Generation):
最后,在生成阶段,系统将检索到的信息与用户的查询结合起来,通过大型语言模型生成文本。这个阶段可能包括增强(Enhancing)和定制(Customization)两个子步骤,以确保生成的文本不仅准确反映检索到的信息,而且满足用户的特定需求和上下文。
索引(Indexing):创建一个包含外部来源的索引,这为检索相关信息提供了基础。索引过程包括文本规范化(如分词、词干提取和去除停用词),以及将文本段落组织成句子或段落,以便于更精确的搜索。
查询操作(Query Manipulation):对用户查询进行调整以更好地匹配索引数据。这可能包括查询重构(改写查询以更贴近用户意图)、查询扩展(通过同义词或相关术语扩展查询以捕获更多相关结果)以及查询规范化(解决拼写或术语上的差异以实现一致的查询匹配)。
数据修改(Data Modification):增强检索效率的另一个关键步骤,包括预处理技术,如去除不相关或冗余信息以提高结果质量,以及通过添加元数据等额外信息来丰富数据,从而提高检索内容的相关性和多样性。
搜索与排名(Search & Ranking):这一步骤使用搜索算法浏览索引数据,寻找与用户查询相匹配的文档。在识别出相关文档后,接下来的过程是对这些文档进行初步排名,根据它们与查询的相关性进行排序。
检索策略:检索阶段可能采用不同的策略,包括利用传统的检索算法(如BM25算法)或使用预训练的语言模型(如BERT)来更好地理解查询的语义信息。这些模型通过考虑词汇的语义相似性来改进搜索的准确性。
语义理解:在检索中,语义理解是至关重要的,它允许系统不仅根据关键词的频率和存在性,而且根据词汇的上下文含义来评估文档的相关性。
向量距离测量:现代检索系统通常会计算文档和查询之间的向量距离,结合传统的检索指标和语义理解来产生既相关又符合用户意图的搜索结果。
多跳检索(Multi-hop Retrieval):一些系统可能采用多跳检索策略,通过多轮检索来迭代地改进检索结果的准确性。
重新排名(Re-Ranking):
在检索阶段得到的文档会根据与查询的相关性进行初步排名。在后检索阶段,系统会对这些已检索的文档进行重新评估和打分,以便更精确地突出显示与查询最相关的文档,并降低不相关文档的重要性。
重新排名可能会结合额外的指标和外部知识源,以提高检索精度。在这个阶段,可以使用一些准确度较高但效率较低的预训练模型,因为此时的候选文档集已经相当有限。
过滤(Filtering):
过滤步骤旨在移除那些未达到特定质量或相关性标准的文档。这可以通过多种方法实现,例如设定一个最小相关性得分阈值来排除低于一定相关性水平的文档。
过滤过程还可以利用用户反馈或先前的相关性评估来调整过滤策略,确保只有最相关的文档被保留用于文本生成。
增强(Enhancing):
这一步骤的目标是将检索到的信息与用户的查询合并,创建一个既相关又丰富的响应。通常,这涉及到对检索到的内容进行扩展,增加额外的细节,以丰富文本内容。
生成的文本应该清晰、连贯,并在保持与检索内容一致性的同时,也要有创造性地引入新的见解或观点。
定制(Customization):
这是一个可选步骤,涉及根据用户的特定偏好或请求的上下文调整内容。这可能包括将内容适应于目标受众的需求或将要呈现的格式,并精简信息以简洁地传达内容的核心。
定制过程还可能包括创建摘要或提要,强调关键点或论点,确保输出既信息丰富又简洁。
生成文本:
在这一阶段,使用大型语言模型(LLMs)来生成文本。这通常涉及将查询和检索到的信息串联起来,然后将合并后的内容输入到LLMs中进行文本生成。
质量控制:
生成的文本还需要进行质量控制,确保其准确性、相关性,并且没有误导性的信息。
后处理:
可能还需要一些后处理步骤,比如校对、编辑和格式调整,以确保最终输出的文本符合预期的质量和风格。
检索基础方面(Retrieval-based Aspect):
Accuracy:衡量检索文档在提供正确信息方面的精确度。
Rejection Rate:评估系统在找不到相关信息时拒绝回答的能力。
Error Detection Rate:评价模型识别和忽略检索文档中错误或误导信息的能力。
Context Relevance:评估检索文档与查询的相关性。
生成基础方面(Generation-based Aspect):
BLEU:衡量生成文本的流畅性和与人类产生文本的相似度。
ROUGE-L:量化文本与参考摘要的重叠,评估文本捕获主要思想和短语的能力。
Exact Match (EM) 和 F1 Score:分别确定完全正确答案的百分比和提供精确和召回的平衡评估。
多维度评估框架:
RAGAS:评估RAG系统的生成文本质量、检索文档的相关性以及生成内容的忠实度。
ARES:改进RAGAS,增加了置信区间和对排名准确性的评估。
RECALL:评估模型对外部反事实知识的鲁棒性,包括响应质量和错误检测率。
RGB:评估RAG对LLMs的影响,包括噪声鲁棒性和信息整合的准确性。
特定能力评估:
评估系统在特定任务上的表现,如对话生成、问答等。
抗误导性评估:
评估系统避免生成误导性信息的能力。
鲁棒性评估:
评估系统对于不准确信息的鲁棒性。
任务特定评估:
使用特定于任务的标准和新指标来评估性能。
用户反馈和先前评估:
利用用户反馈或先前的相关性评估来调整过滤过程。
RAG范式的关键优势在于其能够结合检索到的最新信息和语言模型的强大生成能力,以产生更丰富、更准确的文本输出。通过这种方式,RAG有助于克服传统LLMs在处理特定领域任务或需要最新信息的任务时遇到的挑战。此外,RAG范式还支持多跳检索(Multi-hop Retrieval),即通过多轮检索和生成来迭代地改进输出质量。
预检索(Pre-Retrieval)
预检索(Pre-Retrieval)是检索增强型文本生成(RAG)中的一个阶段,它为数据和查询的有效检索做准备。
预检索阶段的目的是为了确保在实际的检索阶段能够高效地访问和检索到相关信息。这个阶段的优化直接影响到检索系统的性能,因此它是RAG工作流程中不可或缺的一部分。通过精心准备数据和查询,预检索阶段有助于提高检索到的信息的相关性和准确性,从而为生成阶段提供更高质量的输入。
检索(Retrieval)
在检索增强型文本生成(RAG)中,检索(Retrieval)阶段是核心环节,它涉及以下关键步骤:
检索阶段的目标是找到与用户查询最相关的文档,并将这些文档作为输入传递到RAG的下一个阶段——后检索(Post-Retrieval)。在后检索阶段,这些文档可能会经过重新排名和过滤,以进一步优化最终用于文本生成的文档集。检索阶段的效率和准确性对整个RAG系统的性能至关重要,因为它们直接影响到生成文本的相关性和质量。
后检索(Post-Retrieval)
后检索(Post-Retrieval)发生在检索阶段之后。后检索阶段的目的是优化初始检索到的文档,以提高文本生成的质量。这个阶段主要包括两个关键步骤:
后检索阶段对于提升RAG系统生成文本的质量至关重要,因为它确保了生成模型使用的是经过精炼和高度相关的信息。完成重新排名和过滤后,选定的文档将用于生成阶段,生成模型将结合这些文档和用户的查询来产生最终的输出文本。
在整个RAG过程中,后检索阶段充当了检索阶段和生成阶段之间的桥梁,通过提升信息的相关性和准确性,为生成阶段提供更高质量的输入。
生成(Generation)
在检索增强型文本生成(RAG)中,生成(Generation)阶段是最后一个环节,涉及将检索到的信息和用户查询结合起来,以产生一个连贯、相关并满足用户需求的文本输出:
生成阶段是RAG流程中至关重要的一步,因为它直接关系到最终用户的体验。生成的文本不仅要准确传达检索到的信息,还要以一种对用户有用和可接受的方式呈现。此外,生成阶段还可能涉及到对话生成、摘要、问答等多种形式的文本生成任务。
评估(Evaluation)
评估(Evaluation)检索增强型文本生成(RAG)系统通常涉及多个方面,以确保系统在各个方面都能达到预期的性能。一些评估RAG系统的方法:
这些评估方法不仅考虑了RAG系统在检索和生成方面的性能,还考虑了系统的鲁棒性、抗误导性以及在特定任务上的表现。通过这些多维度的评估,开发人员可以更好地理解RAG系统的优势和局限性,从而指导未来的研究方向和模型改进。
