OpusTranslate
Collection
Collection of tiny models for the OpusTranslate mobile phone application. • 25 items • Updated • 5
Distilled model from a Tatoeba-MT Teacher: OPUS-MT-models/ru-en/opus-2020-02-26, which has been trained on the Tatoeba dataset.
We used the OpusDistillery to train new a new student with the tiny architecture, with a regular transformer decoder. For training data, we used Tatoeba. The configuration file fed into OpusDistillery can be found here.
from transformers import MarianMTModel, MarianTokenizer
model_name = "Helsinki-NLP/opus-mt_tiny_rus-eng"
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)
tok = tokenizer("Это привело к тому, что два вида рыб вымерли, а два других, в том числе горбатый голавль, попали под угрозу исчезновения.", return_tensors="pt").input_ids
output = model.generate(tok)[0]
tokenizer.decode(output, skip_special_tokens=True)
| testset | BLEU | chr-F | COMET |
|---|---|---|---|
| Flores+ | 29.4 | 57.7 | 0.8172 |
| Bouquet | 33.4 | 56.6 | 0.8235 |
| testset | BLEU | chr-F | COMET |
|---|---|---|---|
| Flores+ | 28.4 | 56.8 | 0.8220 |
| Bouquet | 31.1 | 54.1 | 0.8151 |
We also provide Marian-compatible versions of this model. To use them, compile Marian and run decoding with marian-decoder, for example:
marian-decoder \
-i input.txt \
-c final.model.npz.best-perplexity.npz.decoder.yml \
-m final.model.npz.best-perplexity.npz \
-v vocab.spm vocab.spm