← all repositories
ChenRocks/fast_abs_rl

Reinforcement learning meets summarization: pick sentences, then rewrite them

A 2018 ACL paper that speeds up abstractive summarization by splitting the problem into extraction and rewriting, trained end-to-end with RL.

624 stars Python Language Models
fast_abs_rl
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

This repo implements a two-stage summarizer for the CNN/DailyMail dataset. First, an extractor picks salient sentences from the source article. Then, an abstractor rewrites those sentences into a concise summary. The full system is trained with reinforcement learning to optimize ROUGE scores directly, with an optional reranking step for diversity.

The interesting bit

The pipeline decomposes a hard problem into two tractable ones—select, then rewrite—rather than asking a single model to compress an entire article from scratch. The authors also provide two model versions: the original ACL 2018 checkpoint, and a retrained one using PyTorch 0.4.0 that edges slightly higher on ROUGE.

Key highlights

  • Pretrained models and full training pipeline included (word2vec embeddings, pseudo-label generation, ML pretraining, RL fine-tuning)
  • Reproducible ROUGE/METEOR scores reported for both validation and test sets
  • Supports greedy decoding, beam search, and beam search with reranking
  • Requires CNN/DailyMail preprocessing via a separate companion repo
  • Linux-only; GPU strongly recommended (CPU “would be way too slow”)

Caveats

  • PyTorch 0.4.0 and Python 3.6 are pinned; modern environments will need compatibility work
  • ROUGE evaluation requires manual setup of a Perl package and environment variables; the original ROUGE website is down, so you need a mirror
  • The “new” pretrained model is not the paper’s original; it’s a post-acceptance retrain with slightly different scores

Verdict

Worth a look if you’re studying neural summarization architectures or need a baseline for extract-then-rewrite methods. Skip if you want a batteries-included, modern summarization tool—this is research code with 2018-era dependencies.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.