Table of Contents
Fetching ...

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.

Marian: Fast Neural Machine Translation in C++

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.

Paper Structure

This paper contains 17 sections, 3 figures, 2 tables.

Figures (3)

  • Figure 1: Training speed in thousands of source tokens per second for shallow RNN, deep RNN and Transformer model. Dashed line projects linear scale-up based on single-GPU performance.
  • Figure 2: Example for error recovery based on dual attention. The missing word "Satz" could only be recovered based on the original source (marked in red) as it was dropped in the raw MT output.
  • Figure 3: Comparison on the CoNLL-2014 test set for investigated methods.