6.2 摘要与信息提取

6.2.1 抽取式方法

抽取式方法从原文中选择重要句子或段落,保持原文表述。

关键句提取

基于句子重要性评分选择关键句:

TextRank 算法

借鉴 PageRank 思想,根据句子之间的相似度构建图,计算每个句子的中心性分数。

基于嵌入的方法

  1. 计算每个句子的嵌入向量

  2. 计算句子与文档整体的相似度

  3. 选择相似度最高的句子

关键片段提取

提取包含关键信息的文本片段:

  • 包含实体的句子

  • 包含数字和日期的句子

  • 定义性语句

抽取式方法的优缺点

6.2.2 生成式方法

使用语言模型生成新的精简表述。

大语言模型摘要

直接使用 LLM 生成摘要:

技巧:

  • 明确指定输出长度

  • 指明需要保留的信息类型

  • 提供输出格式要求

递进式摘要

对于超长文档,采用递进压缩:

spinner

图 6-3:递进式摘要流程

  1. 将文档分成多个段落

  2. 分别生成段落摘要

  3. 合并段落摘要

  4. 可选:对合并结果再次摘要

多级摘要

生成不同详细程度的摘要,按需使用:

级别
长度
用途

标题

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):

为了在长时间运行的智能体流程中提高可靠性,应该采取:

  1. 步骤化执行:将长任务分解为原子性的步骤,每步生成可持久化的输出(Step Artifacts)

  2. 检查点保存:在完成关键步骤后保存完整的执行状态,包括输入、中间结果、输出和元数据

  3. 失败恢复:如果执行中断(网络问题、模型超时等),可以从最后一个成功的检查点重新开始,而不需要重新计算前面的步骤

  4. 可重放验证:使用保存的工件重新执行同样的操作,验证结果的确定性和一致性

这种模式特别适合批量处理、数据管道或需要跨多个API调用的复杂工作流,既提高了成功率,也降低了因重复计算导致的成本浪费。

最后更新于