LLM一个突出的挑战是如何有效处理和理解长文本。就像下图所示,准确率会随着上下文长度显著下降,那么究竟应该怎样提升LLM对长文本理解的准确率呢?
最近,来自AMD和UC San Diego的研究团队提出了一个创新的解决方案——AgenticLU(Agentic Long-Context Understanding)框架,通过引入"澄清链"(Chain-of-Clarifications,CoC)机制,实现了长文本理解能力的突破性提升,在NarrativeQA数据集上取得了97.8%的惊人答案召回率。这个实验结果是目前已知最好的结果。我们看下这篇文章介绍了什么:
图片由修猫创作
AgenticLU的整体架构如下图所示,包含三个主要部分:
1. 传统LLM的局限性:
2. AgenticLU的CoC构建过程:
3. 创新的2-Level Scaling策略:
AgenticLU的工作流程可以分为以下几个关键步骤:
1. 输入处理:
2. 路径采样:
3. 自我澄清:
4. 训练优化:
5. 最终推理:
澄清链Chain-of-Clarifications(CoC)是AgenticLU框架的核心创新,它模拟了人类在阅读复杂文本时的认知过程。当我们遇到需要深入理解的内容时,往往会自然地提出一系列问题,并在文本中寻找答案。
CoC就是将这个过程系统化和自动化。
CoC通过以下步骤工作:
1. 自动生成澄清问题:
2. 上下文定位:
3. 回答声明的问题:
4. 迭代优化:
AgenticLU的实现过程可以分为两个主要阶段:CoC路径构建和CoC路径蒸馏。这种设计既确保了高质量的训练数据,又实现了推理时的高效率。
研究团队选用了Llama3.1-8B-Instruct作为基础模型,这是一个经过指令微调的80亿参数模型。主要训练数据来自NarrativeQA数据集,包含14.7K个问答对。这些数据的特点是:
在这个阶段,系统通过树搜索的方式收集有效的CoC理解路径:
评估标准包括:
为了提高推理效率,研究团队采用了两阶段的微调策略:
1. 监督式微调(SFT):
2. 直接偏好优化(DPO):
如下图所示,研究团队对AgenticLU-8B与基础模型Llama3.1-8B以及其他方法进行了全面对比。实验结果表明,AgenticLU在各种上下文长度(从8K到128K)和不同任务类型上都取得了显著优势:
1. 短文本任务表现:
2. 长文本任务性能提升:
3. 性能曲线分析:
4. 关键优势:
研究团队将AgenticLU与两类方法进行了对比:
1. 提示工程方法:
2. 微调方法:
在7个长文本任务上的表现(准确率%):
1. HotpotQA(多跳推理):
2. Natural Questions:
3. TriviaQA:
4. PopQA:
5. NarrativeQA:
6. InfiniteBench QA:
7. InfiniteBench Choice:
相比直接回答基线:
移除关键组件后的性能变化(在128K上下文长度测试):
增加澄清轮数的效果:
这表明虽然多轮澄清能带来性能提升,但主要收益在第一轮就已实现。
我认为,AgenticLU框架可以在多个实际应用场景中展现出巨大潜力:
1. 智能客服系统:
2. 文档分析系统:
3. 知识库问答:
4. 教育辅助系统:
为了展示AgenticLU在实际应用中的价值,也是展示论文中对于解决常见场景最有价值的部分。我设计实现了一个基于该框架的市场分析Agent系统。该系统能够处理长文本市场报告,通过多轮澄清来提取关键信息,并生成结构化的分析报告。
1. 核心组件:
2. 关键功能实现:
class MarketAnalysisAgent:
def__init__(self, api_key, model="DeepSeek-R1-250120"):
self.openai_client = OpenAI(api_key=api_key)
self.model = model
self.max_tokens = 4096
self.temperature = 0.7
defgenerate_clarifications(self, context, question):
"""生成澄清性问题"""
# 实现CoC机制
pass
defanalyze_with_coc(self, document, query):
"""使用澄清链进行分析"""
# 实现多轮分析
pass
系统运行展示了以下特点:
1. 准确的信息提取:
2. 高效的处理流程:
3. 清晰的输出格式:
AgenticLU框架的提出和成功实现,可以说是LLM长文本理解能力的一个重要突破。通过创新的CoC机制和精心设计的训练策略,解决了长期困扰业界的问题,值得深入研究和借鉴。
文章来自于“AI修猫Prompt”,作者“AI修猫Prompt”。
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。
项目地址:https://github.com/labring/FastGPT
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0