6.2 摘要与信息提取
6.2.1 抽取式方法
抽取式方法从原文中选择重要句子或段落,保持原文表述。
关键句提取
基于句子重要性评分选择关键句:
TextRank 算法
借鉴 PageRank 思想,根据句子之间的相似度构建图,计算每个句子的中心性分数。
基于嵌入的方法
计算每个句子的嵌入向量
计算句子与文档整体的相似度
选择相似度最高的句子
关键片段提取
提取包含关键信息的文本片段:
包含实体的句子
包含数字和日期的句子
定义性语句
抽取式方法的优缺点
6.2.2 生成式方法
使用语言模型生成新的精简表述。
大语言模型摘要
直接使用 LLM 生成摘要:
技巧:
明确指定输出长度
指明需要保留的信息类型
提供输出格式要求
递进式摘要
对于超长文档,采用递进压缩:
图 6-3:递进式摘要流程
将文档分成多个段落
分别生成段落摘要
合并段落摘要
可选:对合并结果再次摘要
多级摘要
生成不同详细程度的摘要,按需使用:
标题
10-20 词
快速索引
简述
50-100 词
概览
详情
200-500 词
深入了解
生成式方法的优缺点
6.2.3 信息提取
从文本中提取结构化信息,是另一种压缩形式。
实体提取
提取关键实体:人名、地名、时间、数值等。
关系提取
提取实体之间的关系:
事实提取
提取关键事实点:
6.2.4 最佳实践
1. 根据场景选择方法
不同的压缩方法适合不同场景,选错方法会导致效果大打折扣。需要精确引用原文(如法律、医疗场景)时使用抽取式,保证信息准确;需要流畅表达(如给用户的摘要)时使用生成式;需要结构化处理(如数据分析)时使用信息提取。常见错误是不加区分地使用同一种方法,导致需要引用时找不到原文,需要连贯时读起来支离破碎。
2. 组合使用多种方法
单一方法往往难以兼顾多个目标,组合使用能发挥各自优势。典型模式是:先用抽取式选出关键段落,再用生成式整合为连贯摘要;或者生成摘要的同时,附上结构化的关键事实列表。这样既保证信息的可追溯性,又提供流畅的阅读体验。组合时注意控制总长度,避免压缩后反而变长。
3. 保留元信息以便追溯
压缩后的内容应该能追溯到原始来源。记录摘要来自哪份文档、第几页或第几段;标注使用的压缩方法(抽取/生成/提取)和生成时间。这些元信息在调试问题时非常有价值——当输出不准确时,可以快速定位是原始数据问题还是压缩过程引入的偏差。元信息的存储成本很低,但排查问题时能节省大量时间。
4. 建立质量验证机制
压缩必然带来信息损失,需要验证损失是否在可接受范围内。建立定期抽样检查机制,人工对比压缩前后的内容,评估关键信息是否保留。更重要的是对比压缩前后的任务效果——如果压缩后模型的回答质量明显下降,说明压缩过度或方法不当。用 A/B 测试量化压缩对最终效果的影响,找到压缩率与质量的最佳平衡点。
5. 多智能体场景下的上下文压缩与持久化执行
在企业级多智能体系统中,上下文累积特别容易超出限制。实践中常见的模式是 两部分编排(Two-Part Orchestration):
初始化智能体(Initializer Agent):接收用户的原始需求,进行查询理解、计划分解,并生成对下游智能体的结构化指令和压缩后的上下文
编码智能体(Coding/Execution Agent):专注于具体任务执行,工作上下文已被精心构建和压缩,避免冗余信息导致的上下文爆炸
持久化执行与状态恢复(Durable Execution Pattern):
为了在长时间运行的智能体流程中提高可靠性,应该采取:
步骤化执行:将长任务分解为原子性的步骤,每步生成可持久化的输出(Step Artifacts)
检查点保存:在完成关键步骤后保存完整的执行状态,包括输入、中间结果、输出和元数据
失败恢复:如果执行中断(网络问题、模型超时等),可以从最后一个成功的检查点重新开始,而不需要重新计算前面的步骤
可重放验证:使用保存的工件重新执行同样的操作,验证结果的确定性和一致性
这种模式特别适合批量处理、数据管道或需要跨多个API调用的复杂工作流,既提高了成功率,也降低了因重复计算导致的成本浪费。
最后更新于
