← all repositories
Babelscape/rebel

Turning relation extraction into a writing assignment

REBEL reframes relation extraction—normally a brittle pipeline of classifiers—as a text-generation task so a single BART model can emit subject-relation-object triples directly.

569 stars Python Language ModelsData Tooling
rebel
Not currently ranked — collecting fresh signals.
star history

What it does REBEL is a BART-based seq2seq model that performs end-to-end relation extraction by generating text. Instead of chaining named-entity recognizers, span classifiers, and relation classifiers, you feed it raw text and it outputs linearized triplets—subject, relation, object—using special tokens like <triplet> and <subj>. The authors claim it handles more than 200 relation types and report state-of-the-art results on most standard benchmarks they evaluated, including NYT, CONLL04, and Re-TACRED.

The interesting bit The trick is linearization: entity triples are serialized into plain text with delimiter tokens, turning a structured prediction problem into a language-generation problem. This lets the model leverage pre-trained BART to jointly detect entities and relations in one autoregressive pass, and the authors have extended the approach to multilingual data with mREBEL and the REDFM dataset.

Key highlights

  • Single-model end-to-end extraction: no separate NER or relation-classifier stages to misalign.
  • Handles 200+ relation types, per the paper abstract.
  • Available as HuggingFace pipeline models (Babelscape/rebel-large) and as a spaCy 3.x component for plugging into existing NLP stacks.
  • Multilingual follow-up: mREBEL and the REDFM dataset are also housed in this repo.
  • Includes a Streamlit demo (demo.py) and Hydra-based training configs for reproducing benchmark results.

Caveats

  • The README is largely a quickstart guide and paper citation; it does not detail model size, latency, or memory requirements.
  • Several training datasets require running third-party fetch scripts, and TACRED is not freely available, so full reproduction takes some assembly.

Verdict Worth a look if you are building knowledge-graph pipelines and want to replace a tangle of task-specific models with one generative checkpoint. Less compelling if your domain only needs a handful of relation types and a simpler classifier already works.

Frequently asked

What is Babelscape/rebel?
REBEL reframes relation extraction—normally a brittle pipeline of classifiers—as a text-generation task so a single BART model can emit subject-relation-object triples directly.
Is rebel open source?
Yes — Babelscape/rebel is an open-source project tracked on heatdrop.
What language is rebel written in?
Babelscape/rebel is primarily written in Python.
How popular is rebel?
Babelscape/rebel has 569 stars on GitHub.
Where can I find rebel?
Babelscape/rebel is on GitHub at https://github.com/Babelscape/rebel.

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