作者:北方的郎
原文:https://zhuanlan.zhihu.com/p/15596329418
在人工智能的浪潮中,大语言模型(LLMs)如ChatGPT等已经展现出了令人惊叹的能力,能够生成流畅的文本、回答复杂的问题,甚至进行多轮对话。然而,尽管这些模型在通用任务上表现出色,但在处理特定领域或需要最新信息的查询时,它们仍然面临着“幻觉”问题——即生成看似合理但实际不准确的内容。为了解决这一问题,检索增强生成(Retrieval-Augmented Generation, RAG)技术应运而生。RAG通过动态检索外部信息来增强LLMs的回答能力,从而减少不准确内容的生成。而在这个过程中,查询优化(Query Optimization, QO)成为了决定RAG效果的关键因素。
由来自腾讯的研究者发表了“A Survey of Query Optimization in Large Language Models”,深入探讨了查询优化技术的演变、核心方法及其在大语言模型中的应用,带领读者全面了解这一领域的最新进展与未来方向。
Paper:A Survey of Query Optimization in Large Language Models
Abs:https://arxiv.org/abs/2412.17558
以下为内容摘要:
1. 引言
大语言模型(LLMs)在自然语言处理领域取得了显著成就,但在处理特定领域或需要最新信息的任务时,仍然存在明显的局限性。特别是在面对超出其训练数据范围的查询时,LLMs容易产生“幻觉”,即生成看似合理但实际不准确的内容。为了解决这一问题,检索增强生成(RAG)技术被引入,通过动态检索外部信息来增强LLMs的回答能力,从而减少不准确内容的生成。
自Lewis等人于2020年提出RAG以来,该领域发展迅速,尤其是在ChatGPT等模型的出现后。然而,尽管RAG技术取得了显著进展,但关于其底层机制和后续研究的系统性分析仍然缺乏。此外,该领域的研究焦点分散,术语使用不一致,导致了一定的混乱。
RAG通常涉及多个核心概念,包括查询优化、信息检索和响应生成。其中,查询优化在直接决定检索信息的相关性方面起着至关重要的作用,进而影响最终回答的质量。尽管查询优化在检索增强的大语言模型中经历了快速发展,但缺乏系统性的总结来阐明其更广泛的轨迹。本文旨在填补这一空白,通过梳理查询优化在检索增强LLMs中的演变过程,展望其未来发展。
2. 查询优化的分层
查询优化对于提升检索增强生成的效果和精度至关重要。通过优化用户的原始查询,这一过程解决了语义模糊、复杂需求以及查询与目标文档之间的相关性差异等挑战。有效的查询优化需要对用户意图和查询上下文有深刻的理解,尤其是在处理复杂或多方面的查询时。成功实施查询优化可以显著提高问题解决的性能,从而大幅提升模型生成输出的质量。
查询扩展
查询扩展技术在提升检索增强生成性能方面至关重要,尤其是在与大语言模型结合时。根据知识来源的不同,查询扩展可以分为内部扩展和外部扩展。前者侧重于最大化原始查询或使用的大语言模型中现有信息的价值,而后者则从外部来源(如网络或知识库)引入补充数据,以填补空白、提供额外背景或拓宽内容范围。
内部扩展
近年来,研究人员开发了多种查询扩展技术,通过利用大语言模型来增强信息检索系统。早期的GenRead方法通过精心设计的指令提示LLMs生成基于初始查询的上下文文档,然后由LLM读取这些生成的文档以生成最终响应,从而有效弥合查询理解与答案生成之间的差距。
Query2Doc方法通过少样本提示生成伪文档,从而扩展原始查询。由于LLMs在网页规模的文本语料库上进行训练,这些伪文档通常包含高度相关的信息,有助于消除查询歧义并引导检索器找到更相关的结果。
ReFeed方法通过首先生成初始输出,然后从大型文档集合中检索相关信息,并将这些信息纳入上下文演示中以优化输出,从而高效且经济地解决LLM的局限性。
InterFeng提出了一种交互式检索框架,其中检索模型通过利用LLM生成的知识集合来扩展查询中的知识,同时LLMs通过利用检索到的文档来增强提示的制定,从而在检索模型和LLMs之间创建协同循环,以改进信息访问。
HyDE方法使用零样本提示生成假设文档,即使其中包含“幻觉”,然后通过无监督对比编码器将该文档编码为嵌入向量,以在语料库嵌入空间中识别邻域。通过基于向量相似性检索类似的真实文档,HyDE将生成的内容与实际语料库联系起来,并通过编码器的密集瓶颈过滤掉不准确的内容。
FLARE引入了一种迭代预测机制,基于原始查询预测未来内容并检索相关信息以增强检索性能。如果生成的临时下一句包含低置信度标记,FLARE将其视为新查询以检索更多文档,重复此过程直到获得满意的答案。
MILL提出了一种查询-查询-文档生成方法,利用LLMs的零样本推理能力生成多样化的子查询和相应文档,然后通过相互验证过程协同生成和检索的文档,从而实现最佳扩展和全面检索结果。
GENQRENSEMBLE建议使用基于集成的提示技术,通过零样本指令的改写生成多组关键词,通过结合这些关键词集,该方法通过多样性和冗余性提高了检索效果。
ERRR强调从LLMs中提取参数知识,并使用专门的查询优化器优化这些查询,确保仅检索最相关的信息,这对于生成准确和相关的响应至关重要。
外部扩展
外部扩展是一种复杂的过程,通过无缝整合来自不同外部来源的相关信息,显著增强文档内容。这种方法通过战略性地整合权威事实、最新数据点和相关背景知识,丰富了文档语料库的整体背景、深度和准确性。
LameR通过提示LLMs结合查询和问题的领域内候选答案来增强查询,这些候选答案无论正确与否,都是通过目标集合上的标准检索程序获得的。GuideCQR利用初始检索文档中的关键信息来优化对话查询重构的查询。CSQE促进语料库中嵌入知识的整合,并利用LLMs的相关性评估能力系统识别初始检索文档中的关键句子,这些语料库衍生的文本与LLM增强的扩展一起用于扩展查询,从而增强查询与目标文档之间的相关性预测。MUGI探索并利用LLMs生成多个伪参考,将其与查询整合以增强稀疏和密集检索器。
问题分解
对于复杂查询,仅使用原始查询进行搜索通常无法检索到足够的信息。LLMs首先需要将此类查询分解为更简单、可回答的子查询,然后搜索与这些子组件相关的信息。通过整合这些子查询的响应,LLMs能够构建对原始查询的全面响应。
DSP框架依赖于在LLM和检索模型(RM)之间传递自然语言文本,DSP可以表达高级程序,引导管道感知演示,搜索相关段落并生成基于基础的预测,系统地将问题分解为LLM和RM可以更可靠处理的小型转换。
Least-to-Most提示利用少样本提示首先将复杂问题分解为一系列更简单的子问题,然后依次解决这些问题。Plan-and-Solve提示涉及制定计划将整个任务划分为较小的子任务,然后根据计划执行这些子任务。这些方法强调了分解在处理复杂查询中的重要性,使模型能够有效处理每个组件。
SELF-ASK引入了组合性差距的概念,描述了模型在所有组合性查询中错误回答的组合性查询的比例,这突显了LLMs在整合子查询答案以解决更复杂查询时面临的挑战。
EAR应用查询扩展模型生成一组多样化的查询,使用查询重新排序器选择那些可能带来更好检索结果的查询。CoK首先提出并准备几个初步的理由和答案,同时识别相关的知识领域。如果没有答案中的多数共识,CoK通过从识别领域适应知识逐步纠正理由,作为最终响应整合的更好基础。
ICAT在没有LLM微调或手动注释上下文样本的情况下诱导推理能力,通过仔细选择相关任务的数据源,将复杂查询分解为更简单的查询或生成逐步理由。
ReAct引入了一种范式,将推理和行动与LLMs结合,以解决各种语言推理和决策任务。ReAct提示LLMs生成口头推理轨迹和任务上的行动,使模型能够进行动态推理以创建、维护和调整高级行动计划,同时与外部环境(如维基百科)交互以将额外信息纳入推理。
AutoPRM和RA-ISF采用查询分解来处理复杂查询。AutoPRM首先将复杂问题分解为更易管理的子查询,然后依次应用强化学习以迭代改进子查询求解器。RA-ISF通过迭代处理子查询,同时整合文本相关性与自知识回答能力,减轻无关提示的影响。该过程涉及将初始多轮查询分解为单轮查询,独立处理每个子任务,然后综合这些响应以解决初始查询。
RQ-RAG通过将预定义模式基于开放域知识图提取大量实例,然后将其口头化为自然语言中的复杂查询和相应子查询,增强了LLMs的查询规划能力。
ALTER和IM-RAG专注于增强检索和推理过程。ALTER使用问题增强器通过生成多个子查询来增强原始问题,每个子查询从不同角度检查原始问题,以处理复杂的表格推理任务。IM-RAG引入了一个改进器,改进检索器的输出,有效弥合推理器和信息检索模块之间的能力差距,并促进多轮通信。
REAPER是一个基于推理的规划器,旨在高效检索复杂查询所需的信息。使用单个较小的LLM,REAPER生成一个计划,包括要调用的工具、调用顺序以及每个工具的参数。
HIRAG将原始查询分解为多跳查询。每个子查询基于检索到的知识进行回答,然后使用思维链(CoT)方法整合答案以得出最终答案。MQA-KEAL将知识编辑存储为外部内存中的结构化知识单元。为了解决多跳查询,它首先使用任务分解将查询分解为较小的子问题。对于每个子问题,它迭代查询外部内存和/或目标LLM以生成最终响应。
RichRAG和ConTReGen进一步改进了检索过程。RichRAG引入了一个子方面探索器,剖析输入查询并揭示其潜在方面。这与多方面检索器集成,策划与这些识别方面相关的外部文档的多样化语料库以回答查询。ConTReGen提出了一种上下文驱动的树结构检索方法,以增强检索内容的深度和相关性。它结合了查询方面的分层自上而下的深入探索与系统自下而上的综合,确保多面信息的全面覆盖和连贯整合。
PlanxRAG制定了一个全面的推理计划,表示为有向无环图(DAG)。该推理DAG将主查询分解为相互关联的原子子查询,提供了一个计算结构,使子查询之间的信息共享更加高效。RAG-Star无缝整合检索到的信息,以指导基于树的审议推理过程,利用LLMs的固有知识。通过利用蒙特卡洛树搜索,RAG-Star迭代规划中间子查询,并根据LLM自身的能力生成推理答案。
查询消歧
对于具有多个可能答案的模糊查询,仅依赖原始查询进行信息检索是不够的。为了提供完整且细致的响应,LLMs必须学会通过识别用户意图来澄清查询,然后制定更有针对性的搜索查询。在收集相关信息后,LLMs可以提供详细且全面的响应。主要有两种查询消歧方法。一种是查询本身模糊,另一种是多轮查询,需要通过结合历史对话内容来重写查询以实现消歧。
Ling等人早期引入了一种基于自然语言的演绎推理格式,将推理验证过程分解为一系列逐步的子过程。每个子过程仅接收必要的上下文和前提,使LLMs能够生成精确的推理步骤,这些步骤严格基于先前的步骤。这种方法使语言模型能够依次进行推理自我验证,显著增强了生成推理步骤的严谨性和可信度。
EchoPrompt通过使用“让我们重复查询并逐步思考”等提示引入查询重述子任务,鼓励模型在参与推理之前用自己的话重述查询,确保更好的理解和一致性。重要的是,用于答案提取的提示在所有零样本方法中保持一致。ToC通过利用少样本提示和外部知识递归构建模糊查询的消歧树,检索相关事实以基于该树生成全面的长形式答案,从而提供更准确和详细的响应。InfoCQR引入了一种新颖的“重写-然后编辑”框架,其中LLMs首先重写原始查询,然后修改重写后的查询以消除歧义。精心设计的指令独立指导LLMs完成重写和编辑任务,从而生成更具信息性和明确的查询。
AdaQR提出了一种新颖的偏好优化方法,旨在通过利用对话答案来建模检索器的偏好,从而更好地适应重写器。具体来说,训练后的重写器生成多个重写,然后将其用作查询以从目标检索器中检索段落。然后,AdaQR计算给定每个检索段落和对话的答案的条件概率,通过对段落集进行边缘化获得答案的边缘概率。该边缘概率作为量化检索器对重写偏好的奖励,并根据其奖励配对这些重写,以使用直接偏好优化优化训练后的重写器。
maferw通过整合来自检索文档和生成响应的多方面反馈作为奖励,探索最佳查询重写策略,从而提高查询重写的有效性。CHIQ利用LLMs的NLP能力,如解决共指关系和扩展上下文,以减少对话历史中的歧义。这种增强提高了生成搜索查询的相关性。本文研究了将精炼的对话历史整合到现有框架中的各种方法,包括临时查询重写、生成伪监督信号以微调查询重写模型,以及结合这两种方法。
3. 查询抽象
对于复杂的多跳查询,顺序分解可能无法产生准确的答案,甚至可能使查询进一步复杂化。人类通常会退后一步进行抽象,以得出解决复杂查询的高级原则,从而减少在中间推理步骤中出错的机会。
step-back通过精心设计的提示操纵初始查询,确保输出更符合原始查询的理念,特别是对于需要复杂推理的任务。Zhou等人要求LLMs进行抽象查询的概念推理,在可验证的符号空间内生成解决方案,从而促进对抽象概念的更深入理解和处理。CoA将一般的CoT推理抽象为具有抽象变量的推理链,使LLMs能够通过利用领域专用工具(如计算器的计算结果或从网络搜索引擎检索的相关文章)来解决查询。
AOT使用抽象骨架框架构建整个推理过程,可能解锁引发抽象推理的关键。与无约束的CoT不同,AOT格式在整个推理过程中明确整合了不同层次的抽象。在每个更高的层次上,抽象是较低层次的蒸馏版本,包含更少的具体细节,同时明确说明每个推理步骤的目标和功能。此外,Baek等人生成了更高层次的抽象信息,作为现有查询的上下文背景,提供了对查询对象的更全面理解。
MA-RIR将查询方面定义为多面查询中的一个子跨度,表示查询中的一个独特主题或方面,从而允许在复杂查询的不同方面进行更集中和有效的推理。Meta-Reasoning试图将每个查询中的实体和操作语义解构为通用符号表示,使LLMs能够学习跨各种语义复杂场景的通用推理模式。
RuleRAG观察到广泛的逻辑规则可以指导人们完成给定任务,提出了一种新方法,可以逻辑地回忆支持查询的文档,基于检索到的信息和可归因规则生成最终响应。SimGRAG通过两阶段过程有效解决了将查询文本与知识图(KG)结构对齐的挑战。首先,在查询到模式阶段,它使用大语言模型将查询转换为所需的图模式。其次,在模式到子图阶段,它使用图语义距离(GSD)量化这些模式与候选子图之间的对齐。
4. 挑战与未来方向
查询中心的过程奖励模型
改进LLMs推理的一个有前途的方法是使用过程奖励模型(PRMs)。PRMs在多步推理过程的每一步提供反馈,与仅在最后一步提供反馈的结果奖励模型(ORMs)相比,可能增强信用分配。然而,由思维链(CoT)提示方法生成的PRMs过程通常不可预测,难以找到最优路径。利用最优路径来优化复杂查询,构建查询中心的过程奖励模型可能是一种更简单和有效的策略,这意味着在多步推理过程的每个子查询中提供奖励。
查询优化基准
目前,查询优化领域缺乏显著的基准,这阻碍了在不同场景下对查询优化技术的一致评估和比较。特别是在复杂环境中,如优化多轮检索增强对话中的查询以及分解复杂问题时,这一问题尤为突出。开发全面的评估框架和基准可能显著促进查询优化技术的进步,例如现有的RAG基准。
提高查询优化的效率和质量
许多现有方法未能追求最优的查询优化路径,而是依赖于类似于穷举枚举的策略。这种策略导致计算时间增加和搜索成本上升,因为系统花费资源探索大量非最优路径。此外,它可能引入不一致或无关的搜索信息,可能影响结果的总体质量和可靠性。
未来的研究应专注于设计能够识别最优优化路径的高效算法,而无需进行穷举搜索。这样的进展将减少时间和资源消耗,同时提高查询优化结果的一致性和准确性。例如,查询分解可以进一步分为并行分解和顺序分解。顺序分解通常对应于多跳查询。这种分类的原因是并行分解通常不会增加额外的搜索时间,而顺序分解需要迭代搜索以逐个解决依赖查询,这通常随着跳数的增加而增加搜索时间。
通过后性能增强查询优化
典型的基于提示的方法范式涉及为LLMs提供几个真实优化案例(可选)和查询优化器的任务描述。尽管LLMs能够识别查询的潜在用户意图,但它们缺乏对优化查询产生的检索质量的认识。这种脱节可能导致优化的查询看起来正确但产生不满意的排名结果。虽然一些现有研究利用强化学习根据生成结果调整查询优化过程,但在整合排名结果方面仍有大量研究领域未被探索。
5. 结论
本文深入探讨了查询优化技术领域,重点关注其在检索增强大语言模型中的应用。本文的研究涵盖了广泛的优化方法,提供了对该领域的全面理解。通过分析查询优化的复杂性,本文识别了该领域的关键挑战和机遇。随着该领域研究的不断推进,开发专门针对检索增强大语言模型需求的方法论对于解锁其在各个领域的全部潜力至关重要。本调查旨在作为检索增强大语言模型的宝贵资源,提供当前领域的详细概述,并鼓励进一步研究这一重要主题。