微软:RAG并不是你唯一的解决方案!
将外部数据整合到LLMs中的技术,如检索增强生成(RAG)和微调,得到广泛应用,但在不同专业领域有效部署数据增强LLMs面临着重大挑战:
- 从检索相关数据和准确解释用户意图到充分利用LLMs的推理能力来处理复杂任务
- 对于数据增强LLM应用来说,没有一种放之四海而皆准的解决方案。
- 应用落地性能不佳往往是由于未能正确识别任务的核心焦点,或者任务本身就需要多种能力结合,必须被分离出来以获得更好解决方案。
数据增强LLM应用中不同查询层次的主要技术总结
微软亚洲研究院(MSRA)提出了一种RAG任务分类方法,根据所需的外部数据类型和任务的主要焦点,将用户查询分为四个层次:
- 显式事实查询(Level-1):直接从数据中检索明确的事实。
- 隐式事实查询(Level-2):需要推理或整合数据中的隐含信息。
- 可解释推理查询(Level-3):需要理解并应用领域特定的理由和逻辑。
- 隐式推理查询(Level-4):需要从数据中推断出隐含的推理逻辑。
四个层次查询的主要焦点
同时,也将外部数据整合到LLMs中的形式归为三种:上下文、小型模型和微调,强调了它们各自的优势、局限性以及它们适合解决的问题类型。
将特定领域数据注入到大型语言模型(LLM)的三种方式:a) 根据查询提取部分领域数据作为LLM的上下文输入,b) 用特定领域数据训练一个较小的模型,然后指导后续输入到LLM的外部信息的整合,以及 c) 直接使用外部领域知识对通用的大型语言模型进行微调,使其成为领域专家模型。
L1:显式事实查询
定义:
- 显式事实查询(L1)是最简单的数据增强查询类型,可以直接通过访问特定领域的文档或文档片段来回答。
- 答案通常在文档的纯文本中,需要最小的推理或简单的逻辑。
提供事实信息的常见数据集分层
挑战:
- 数据处理困难:外部数据通常是高度非结构化的,包含多种模式(如表格、图像、视频等),处理这些数据时保持原始上下文和意义是一个挑战。
- 数据检索困难:从大型非结构化数据集中检索相关数据段计算密集且容易出错。
- 评估困难:评估RAG系统的性能,尤其是在组件级别,需要开发能够准确评估数据检索和响应生成质量的稳健指标。
解决方案:
- 数据预处理增强:包括文档解析和多模态文档解析,将非文本内容转换为文本形式或使用多模态嵌入技术。
- 数据检索增强:使用信息检索(IR)技术,包括建立数据索引、处理查询、检索和匹配、重新排序和评估。
- 检索增强生成(RAG):结合了LLMs的生成能力和从大量数据库或文档中检索信息的能力。
三种查询-文档对齐类型
关键点:
- 显式事实查询依赖于直接从特定数据段中检索答案,不需要复杂的推理。
- RAG是处理这类查询的常用技术解决方案,它通过动态检索外部信息来增强语言模型的自然语言生成能力。
- 尽管RAG非常有效,但在构建一个健壮和高质量的系统时仍面临重大挑战。
L2:隐式事实查询
定义:
- 隐式事实查询涉及的数据依赖性并不直接明显,可能需要一些常识推理或基本逻辑推理。
- 所需信息可能分散在多个文档中,或者需要从数据集中收集和处理多个事实简单的推理,然后通过常识推理将这些事实结合起来得出答案。
挑战:
- 自适应检索量:不同的问题可能需要不同数量的检索上下文,固定数量的检索可能造成信息噪声过多或信息不足。
- 推理与检索的协调:推理可以指导需要检索的内容,而检索到的信息可以迭代地细化推理策略。
解决方案:
- 迭代RAG:类似于多跳RAG任务的方法,动态控制多步骤RAG过程,直到获得正确答案。
- 基于规划的:在检索前阶段生成逐步检索计划,或者在检索过程中动态生成,以精细化每次检索的焦点。
- 信息差填补:基于现有知识和检索到的信息生成答案,然后继续检索和生成未知部分的答案。
- 图/树问题回答:使用图或树来自然地表达文本之间的关系结构,适合这种类型的数据检索问题。
- 自然语言到SQL查询:将自然语言查询转换为SQL查询,以便从结构化数据库中检索信息。
关键点:
- 隐式事实查询要求从多个文档中收集信息,并且可能需要进行多步骤的推理。
- 这类查询的解决方案通常涉及将复杂问题分解成一系列简单的问题,然后逐一解决。
- 迭代RAG、图/树问题回答和NL2SQL是处理这类查询的有效方法。
L3:可解释推理查询
推理查询的示例
定义:
- Interpretable Rationale Queries:这类查询需要外部数据来提供解决问题的推理过程。辅助数据通常包括对决策过程的明确解释。
- 数据形式:可以是纯文本,如指南或手册,也可以是结构化的指令,如工作流程或决策树。
挑战与解决方案
- 主要挑战:
Prompt优化成本:优化提示(Prompt)的过程耗时且计算量大。
有限的可解释性:LLMs对提示的反应不透明,难以一致理解和验证LLMs对不同提示的反应。
- 解决方案:
- Prompt Tuning:通过调整提示来提高LLMs遵循外部指令的能力。
- CoT Prompting:使用链式思考(Chain-of-Thoughts)或思维图(Graph-of-Thoughts)方法来处理复杂的推理问题。
L4:隐式推理查询
定义:
- Hidden Rationale Queries:这类查询需要从外部数据中推断出隐含的推理方法。这些推理方法可能没有明确记录,需要从数据模式和结果中挖掘出来。
- 数据类型:
领域内数据:可能包括历史问答记录或人工生成的数据。
预备知识:可能包括全面的公理系统或中间结论,如法律代码或数学证明。
挑战与解决方案
- 主要挑战:
逻辑检索:需要更复杂的检索算法来识别与查询逻辑上相关的文本段。
数据不足:外部数据可能没有明确包含与当前查询相关的指导或答案。
- 解决方案:
- 离线学习:通过离线分析数据集来识别和提取规则和指导。
- 上下文学习:利用示例进行上下文学习,利用LLMs的少量样本学习能力。
离线学习
- 方法:
STaR 和 LXS:使用LLM生成推理理由。
GL、LEAP、RICP:通过错误识别和原则概括来改进任务。
上下文学习 (ICL)
- 方法:
OpenICL:探索不同的传统方法对ICL效果的影响。
Auto-CoT:通过聚类示例来构建更好的支持学习过程的示例。
微调
- 方法:
指令调整:使用监督微调来增强LLMs在特定领域的能力。
适配器调整、前缀调整、提示调整:通过优化输入前的可训练向量来提高LLMs的性能。
最后:数据增强LLM应用中查询层次的总结
本文转载自PaperAgent