Marian: Fast Neural Machine Translation in C++
Marcin Junczys-Dowmunt, Roman Grundkiewicz, Tomasz Dwojak, Hieu Hoang, Kenneth Heafield, Tom Neckermann, Frank Seide, Ulrich Germann, Alham Fikri Aji, Nikolay Bogoychev, André F. T. Martins, Alexandra Birch
TL;DR
Marian addresses the need for a fast, self-contained neural machine translation toolkit implemented in C++. It introduces a custom reverse-mode auto-differentiation engine and a modular encoder-decoder framework, augmented by efficient meta-algorithms for scalable training and decoding. The paper demonstrates Marian's competitiveness and speed by reproducing WMT2017 results with Transformer architectures and showing substantial training and translation throughput gains. It also showcases Marian's applicability to Neural Automatic Post-Editing and Grammatical Error Correction, achieving strong state-of-the-art performance. Together, these results position Marian as a practical, high-performance engine for research and deployment in MT and related tasks.
Abstract
We present Marian, an efficient and self-contained Neural Machine Translation framework with an integrated automatic differentiation engine based on dynamic computation graphs. Marian is written entirely in C++. We describe the design of the encoder-decoder framework and demonstrate that a research-friendly toolkit can achieve high training and translation speed.
