fast_abs_rl
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
需要支持 CUDA 的 GPU(非必需但强烈推荐,CPU 运行极慢),具体型号和显存未说明
未说明

快速开始
快速抽象摘要-RL
此仓库包含我们2018年ACL论文的代码:
您可以:
- 查看生成的摘要并评估ROUGE/METEOR分数
- 运行预训练模型的解码
- 训练您自己的模型
如果您使用此代码,请引用我们的论文:
@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=[解压后的数据路径]来指定数据文件的路径。
要重新训练我们的最佳模型:
- 预训练一个word2vec词嵌入
python train_word2vec.py --path=[word2vec保存路径]
- 生成伪标签
python make_extraction_labels.py
- 使用ML目标训练抽象器和提取器
python train_abstractor.py --path=[抽象器模型保存路径] --w2v=[word2vec路径/word2vec.128d.226k.bin]
python train_extractor_ml.py --path=[提取器模型保存路径] --w2v=[word2vec路径/word2vec.128d.226k.bin]
- 训练完整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),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器