← all repositories
OpenNMT/OpenNMT-tf

TensorFlow 2's disciplined elder for sequence models

A production-oriented toolkit that treats neural translation as just one flavor of sequence learning.

1.5k stars Python ML FrameworksLanguage Models
OpenNMT-tf
Velocity · 7d
+0.5
★ / day
Trend
steady
star history

What it does OpenNMT-tf is a sequence-learning framework built on TensorFlow 2. It handles machine translation, sequence tagging, classification, and language modeling through a single pipeline. You can wire models together in Python or run pre-built ones like Transformer from a catalog.

The interesting bit The project treats “production-oriented” as a feature, not a slogan: it guarantees backward compatibility and exports cleanly to SavedModel and CTranslate2 for optimized inference. The dynamic data pipeline skips preprocessing steps—text files go in, tokenization and noise injection happen on the fly.

Key highlights

  • Modular architecture: mix encoders, decoders, and inputters via Python API (e.g., concatenated embeddings feeding a self-attention encoder)
  • Full TF 2 integration: tf.keras layers, tf.distribute, mixed precision, Horovod
  • One-command export to TensorFlow Serving or CTranslate2 for quantized, fast inference
  • Fine-tuning supports vocabulary transfer and contrastive learning to reduce word omission
  • Single CLI entrypoint onmt-main with YAML configs for train/eval/infer/export/score

Caveats

  • Requires TensorFlow 2.6–2.13; the narrow version window may pinch if you’re on newer TF releases
  • 1,484 stars suggests a modest community compared to Hugging Face or Fairseq

Verdict Worth a look if you need stable, customizable sequence models with a clear production path and don’t mind staying in TensorFlow’s lane. Less compelling if you want the bleeding edge or a bustling ecosystem.

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