translation opus-mt-tc

opus-mt-tc-big-en-ces_slk

Neural machine translation model for translating from English (en) to Czech and Slovak (ces+slk).

This model is part of the OPUS-MT project, an effort to make neural machine translation models widely available and accessible for many languages in the world. All models are originally trained using the amazing framework of Marian NMT, an efficient NMT implementation written in pure C++. The models have been converted to pyTorch using the transformers library by huggingface. Training data is taken from OPUS and training pipelines use the procedures of OPUS-MT-train.

@inproceedings{tiedemann-thottingal-2020-opus,
    title = "{OPUS}-{MT} {--} Building open translation services for the World",
    author = {Tiedemann, J{\"o}rg  and Thottingal, Santhosh},
    booktitle = "Proceedings of the 22nd Annual Conference of the European Association for Machine Translation",
    month = nov,
    year = "2020",
    address = "Lisboa, Portugal",
    publisher = "European Association for Machine Translation",
    url = "https://aclanthology.org/2020.eamt-1.61",
    pages = "479--480",
}

@inproceedings{tiedemann-2020-tatoeba,
    title = "The Tatoeba Translation Challenge {--} Realistic Data Sets for Low Resource and Multilingual {MT}",
    author = {Tiedemann, J{\"o}rg},
    booktitle = "Proceedings of the Fifth Conference on Machine Translation",
    month = nov,
    year = "2020",
    address = "Online",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2020.wmt-1.139",
    pages = "1174--1182",
}

Model info

Usage

A short example code:

from transformers import MarianMTModel, MarianTokenizer

src_text = [
    ">>ces<< We were enemies.",
    ">>ces<< Do you think Tom knows what's going on?"
]

model_name = "pytorch-models/opus-mt-tc-big-en-ces_slk"
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)
translated = model.generate(**tokenizer(src_text, return_tensors="pt", padding=True))

for t in translated:
    print( tokenizer.decode(t, skip_special_tokens=True) )

# expected output:
#     Byli jsme nepřátelé.
#     Myslíš, že Tom ví, co se děje?

You can also use OPUS-MT models with the transformers pipelines, for example:

from transformers import pipeline
pipe = pipeline("translation", model="Helsinki-NLP/opus-mt-tc-big-en-ces_slk")
print(pipe(">>ces<< We were enemies."))

# expected output: Byli jsme nepřátelé.

Benchmarks

langpair testset chr-F BLEU #sent #words
eng-ces tatoeba-test-v2021-08-07 0.66128 47.5 13824 91332
eng-ces flores101-devtest 0.60411 34.1 1012 22101
eng-slk flores101-devtest 0.62415 35.9 1012 22543
eng-ces multi30k_test_2016_flickr 0.58547 33.4 1000 10503
eng-ces multi30k_test_2018_flickr 0.59236 33.4 1071 11631
eng-ces newssyscomb2009 0.52702 25.3 502 10032
eng-ces news-test2008 0.50286 22.8 2051 42484
eng-ces newstest2009 0.52152 24.3 2525 55533
eng-ces newstest2010 0.52527 24.4 2489 52955
eng-ces newstest2011 0.52721 25.5 3003 65653
eng-ces newstest2012 0.50007 22.6 3003 65456
eng-ces newstest2013 0.53643 27.4 3000 57250
eng-ces newstest2014 0.58944 31.4 3003 59902
eng-ces newstest2015 0.55094 27.0 2656 45858
eng-ces newstest2016 0.56864 29.9 2999 56998
eng-ces newstest2017 0.52504 24.9 3005 54361
eng-ces newstest2018 0.52490 24.6 2983 54652
eng-ces newstest2019 0.53994 26.4 1997 43113

Acknowledgements

The work is supported by the European Language Grid as pilot project 2866, by the FoTran project, funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 771113), and the MeMAD project, funded by the European Union’s Horizon 2020 Research and Innovation Programme under grant agreement No 780069. We are also grateful for the generous computational resources and IT infrastructure provided by CSC -- IT Center for Science, Finland.

Model conversion info