fast_abs_rl

GitHub
624 185 较难 1 次阅读 2个月前MIT开发框架语言模型
AI 解读 由 AI 自动生成,仅供参考

fast_abs_rl 是一个专注于快速生成抽象式文本摘要的开源项目,源自 ACL 2018 的研究论文。它主要解决了传统摘要模型在生成高质量概括内容时速度慢、难以兼顾关键信息提取与流畅重写的难题。

该工具的核心亮点在于结合了“强化学习”与“句子重写”机制:首先利用扩展的循环神经网络(RNN-ext)精准筛选原文中的重要句子,随后通过强化学习策略对这些句子进行抽象式改写,从而生成既忠实原意又自然流畅的摘要。这种方法不仅显著提升了生成效率,还在 ROUGE 和 METEOR 等权威评估指标上取得了优异表现。

fast_abs_rl 非常适合自然语言处理领域的研究人员和开发者使用。如果你希望复现前沿学术论文结果、在 CNN/DailyMail 等数据集上训练自定义模型,或者需要调用预训练模型进行批量摘要解码与评估,这个项目提供了完整的代码实现与环境配置指南。需要注意的是,由于涉及深度学习训练,使用者需具备 Python 和 PyTorch 基础,并建议使用 GPU 环境以获得合理的运行速度。对于普通用户而言,直接使用其生成的摘要结果或作为技术参考更为合适。

使用场景

某新闻科技公司的算法团队正在构建一个实时资讯摘要系统,需要从海量的 CNN/DailyMail 长篇文章中快速提取核心观点,以生成简短的新闻快讯推送给用户。

没有 fast_abs_rl 时

  • 摘要质量生硬:传统的抽取式方法只能机械地拼接原文句子,导致生成的摘要缺乏连贯性,读起来像破碎的片段,无法形成流畅的自然语言叙述。
  • 关键信息遗漏:由于无法对原文进行改写或重组,模型难以捕捉分散在不同段落中的隐含逻辑,导致重要事实被忽略或表述不准确。
  • 优化目标单一:仅依靠最大似然估计训练,模型倾向于生成保守、通用的“万金油”式摘要,缺乏针对性,且难以直接优化 ROUGE 等最终评估指标。
  • 推理速度瓶颈:在尝试引入复杂的重写机制时,往往伴随着巨大的计算开销,导致在大规模数据测试集上生成摘要的速度极慢,无法满足近实时的业务需求。

使用 fast_abs_rl 后

  • 生成流畅文摘:利用强化学习(RL)指导的句子重写机制,fast_abs_rl 能够打破原文结构限制,生成语法通顺、逻辑紧密的抽象式摘要,显著提升阅读体验。
  • 精准内容重构:模型学会了选择性重写关键句子,能有效整合分散的信息点,确保核心事实完整保留且表述更加精炼准确。
  • 指标直接优化:通过强化学习直接将 ROUGE 和 METEOR 分数作为奖励信号,使模型生成的摘要在自动评估和人工评测中均获得更高得分。
  • 高效解码推理:得益于专门设计的快速架构,即使在开启束搜索(Beam Search)和重排序(Rerank)的高级模式下,依然能在 GPU 上保持高效的解码速度,轻松处理海量测试数据。

fast_abs_rl 通过结合强化学习与句子重写技术,成功解决了传统方法在摘要流畅度与信息密度上的矛盾,实现了高质量与高效率的统一。

运行环境要求

操作系统
  • Linux
GPU

需要支持 CUDA 的 GPU(非必需但强烈推荐,CPU 运行极慢),具体型号和显存未说明

内存

未说明

依赖
notes评估 ROUGE/METEOR 分数需单独配置官方 Perl 脚本环境及 meteor-1.5.jar 文件;代码基于较旧的 PyTorch 0.4.0 和 Python 3.6 开发,现代环境可能需要调整依赖版本;需自行下载并预处理 CNN/DailyMail 数据集。
python3.6 (测试版本)
PyTorch==0.4.0
gensim
cytoolz
tensorboardX
pyrouge
fast_abs_rl hero image

快速开始

快速抽象摘要-RL

此仓库包含我们2018年ACL论文的代码:

使用强化学习选择性重写句子实现快速抽象摘要

您可以:

  1. 查看生成的摘要并评估ROUGE/METEOR分数
  2. 运行预训练模型的解码
  3. 训练您自己的模型

如果您使用此代码,请引用我们的论文:

@inproceedings{chen2018fast,
  title={Fast Abstractive Summarization with Reinforce-Selected Sentence Rewriting},
  author={Yen-Chun Chen and Mohit Bansal},
  booktitle={Proceedings of ACL},
  year={2018}
}

依赖项

  • Python 3(已在python 3.6上测试)
  • PyTorch 0.4.0
    • 需要启用GPU和CUDA的安装(尽管代码可以在CPU上运行,但速度会非常慢)
  • gensim
  • cytoolz
  • tensorboardX
  • pyrouge(用于评估)

您可以使用您选择的Python包管理器(pip/conda)来安装这些依赖项。 该代码已在Linux操作系统上测试通过。

评估我们ACL论文中的输出摘要

请从*这里*下载输出摘要。

为了进行评估,您需要下载并设置官方的ROUGE和METEOR工具包。

我们使用pyrouge (pip install pyrouge即可安装) 来生成官方Perl脚本所需的ROUGE XML文件。您还需要官方的ROUGE工具包。 (然而,似乎原始的ROUGE网站已经关闭了。一个替代方案可以在这里找到: 这里。) 请通过设置环境变量export ROUGE=[rouge目录路径]来指定您的ROUGE工具包路径。

对于METEOR,我们只需要JAR文件meteor-1.5.jar。 请通过设置环境变量export METEOR=[meteor jar路径]来指定该文件。

运行

python eval_acl.py --[rouge/meteor] --decode_dir=[解码文件路径]

即可得到论文中报告的ROUGE/METEOR分数。

使用预训练模型解码摘要

请从*这里下载预训练模型。 您还需要CNN/DailyMail数据集的预处理版本。请按照这里*的说明下载并预处理CNN/DailyMail数据集。 之后,通过设置环境变量export DATA=[解压后的数据路径]来指定数据文件的路径。

我们提供了两个版本的预训练模型。 使用acl版本可以复现我们论文中报告的结果。 使用new版本则可以获得我们使用较新版本PyTorch库训练的最新结果,其得分略高。

要进行解码,请运行

python decode_full_model.py --path=[保存解码文件的路径] --model_dir=[预训练模型路径] --beam=[束宽] [--test/--val]

选项:

  • 束宽:用于(多样化)束搜索的假设数量。(使用束宽>1可启用重新排序)
    • 束宽=1可获得贪婪解码结果(rnn-ext + abs + RL)
    • 论文中+rerank模型使用的束宽为5(rnn-ext + abs + RL + rerank)
  • test/val:在测试/验证集上解码

如果您想对生成的输出文件进行评估,请按照上述部分的说明设置ROUGE/METEOR。

接下来,制作用于评估的参考文件:

python make_eval_references.py

然后通过以下命令进行评估:

python eval_full_model.py --[rouge/meteor] --decode_dir=[保存解码文件的路径]

结果

您应该会得到以下结果:

验证集

模型 ROUGEs (R-1, R-2, R-L) METEOR
acl
rnn-ext + abs + RL (41.01, 18.20, 38.57) 21.10
+ rerank (41.74, 18.39, 39.40) 20.45
new
rnn-ext + abs + RL (41.23, 18.45, 38.71) 21.14
+ rerank (42.06, 18.80, 39.68) 20.58

测试集

模型 ROUGEs (R-1, R-2, R-L) METEOR
acl
rnn-ext + abs + RL (40.03, 17.61, 37.58) 21.00
+ rerank (40.88, 17.81, 38.53) 20.38
new
rnn-ext + abs + RL (40.41, 17.92, 37.87) 21.13
+ rerank (41.20, 18.18, 38.79) 20.56

注意: 论文中最初的模型是使用pytorch 0.2.0和python 2训练的。 在论文被接受后,我们认为如果能发布使用最新库的代码,将更有利于社区,这样人们就可以更容易地基于我们的工作构建新的模型或技术。因此,在运行旧版预训练模型时,与论文中的结果相比几乎没有差异;而运行新版预训练模型时,则会比论文中的得分略高。

训练您自己的模型

请按照*这里*的说明下载并预处理CNN/DailyMail数据集。 之后,通过设置环境变量export DATA=[解压后的数据路径]来指定数据文件的路径。

要重新训练我们的最佳模型:

  1. 预训练一个word2vec词嵌入
python train_word2vec.py --path=[word2vec保存路径]
  1. 生成伪标签
python make_extraction_labels.py
  1. 使用ML目标训练抽象器提取器
python train_abstractor.py --path=[抽象器模型保存路径] --w2v=[word2vec路径/word2vec.128d.226k.bin]
python train_extractor_ml.py --path=[提取器模型保存路径] --w2v=[word2vec路径/word2vec.128d.226k.bin]
  1. 训练完整RL模型
python train_full_rl.py --path=[保存模型的路径] --abs_dir=[抽象器模型路径] --ext_dir=[提取器模型路径]

训练完成后,您可以按照前一节的说明进行解码和评估。

以上步骤将默认使用我们在论文中采用的最佳超参数。如需调整超参数,请参阅相应的源代码。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|6天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架