Downloads · 30 days
8
11% of all-time downloads
TigreGotico/opus-mt-itc-itc-onnx
opus-mt-itc-itc-onnx is a translation model from TigreGotico. Use it when you need text moved from one language to another. It is set up for transformers.js. The card lists the license as apache-2.0.
ONNX export of Helsinki-NLP/opus-mt-itc-itc, a MarianMT multilingual translation model covering Italic languages (Italian, Catalan, Romansh, Spanish, Romanian, Galician, Sardinian, Corsican, Walloon, Portuguese, Occit…
Downloads · 30 days
8
11% of all-time downloads
All-time downloads
74
Public
Repo size
807 MB
Likes
0
Public
Click a slice to open those files.
.onnx805 MB · 99%
From the Hugging Face model README
ONNX export of Helsinki-NLP/opus-mt-itc-itc, a MarianMT multilingual translation model covering Italic languages (Italian, Catalan, Romansh, Spanish, Romanian, Galician, Sardinian, Corsican, Walloon, Portuguese, Occitan, Aragonese, Indonesian, French, Haitian Creole, and more) translating between each other.
Exported for use with optimum.onnxruntime.ORTModelForSeq2SeqLM /
onnxruntime, e.g. in phoonnx / OVOS translation routing.
Licence: apache-2.0 (verbatim from the upstream model card).
Attribution: model trained and published by Helsinki-NLP / University of Helsinki as part of the
OPUS-MT project (Tatoeba-Challenge, itc-itc,
opus-2020-07-07). This repository only republishes an ONNX conversion of their weights; no model changes were
made.
This model unblocks direct Portuguese → Spanish translation (opus-mt-pt-es / opus-mt-es-pt are both
gone from the Helsinki-NLP org), avoiding a pivot through English for pt→eu style routing.
This is a multilingual, many-to-many model. The target language is selected by a >>xxx<< token
prepended to the input text — transformers/optimum does not add this automatically. Omitting it does
not raise an error: the model silently produces fluent text in an unpredictable language.
Example: >>spa<< O tempo está bom hoje. → El tiempo es bueno hoy. (Portuguese → Spanish)
>>arg<< >>ast<< >>bjn<< >>cat<< >>cos<< >>egl<< >>fra<< >>frm_Latn<< >>gcf_Latn<< >>glg<< >>hat<< >>ind<<
>>ita<< >>lad<< >>lad_Latn<< >>lat_Grek<< >>lat_Latn<< >>lij<< >>lld_Latn<< >>lmo<< >>mwl<< >>oci<< >>pap<<
>>pcd<< >>pms<< >>por<< >>roh<< >>ron<< >>scn<< >>spa<< >>srd<< >>vec<< >>wln<< >>zsm_Latn<<
(source: upstream model card language(s) list — arg ast bjn cat cos egl fra frm_Latn gcf_Latn glg hat ind ita lad lad_Latn lat_Grek lat_Latn lij lld_Latn lmo mwl oci pap pcd pms por roh ron scn spa srd vec wln zsm_Latn)
encoder_model.onnx, decoder_model.onnx, decoder_with_past_model.onnx (fp32, repo root)
source.spm, target.spm, vocab.json, tokenizer_config.json, special_tokens_map.json, config.json, generation_config.json
int8/
encoder_model.onnx, decoder_model.onnx, decoder_with_past_model.onnx (dynamic QUInt8 quantization)
(+ copies of the tokenizer files)
optimum-cli export onnx --model Helsinki-NLP/opus-mt-itc-itc \
--task text2text-generation-with-past --no-post-process ./fp32
int8: onnxruntime.quantization.quantize_dynamic(weight_type=QUInt8) applied to each of the three graphs
independently, written to fp32/int8/.
8 sentences covering pt→es, es→pt, ca→es, pt→ca, each with the correct >>xxx<< token, PyTorch (MarianMTModel)
vs ONNX (ORTModelForSeq2SeqLM), num_beams=4, max_new_tokens=64, exact string match after decoding:
from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForSeq2SeqLM
tok = AutoTokenizer.from_pretrained("TigreGotico/opus-mt-itc-itc-onnx")
model = ORTModelForSeq2SeqLM.from_pretrained("TigreGotico/opus-mt-itc-itc-onnx")
text = ">>spa<< O tempo está bom hoje."
ids = model.generate(**tok(text, return_tensors="pt"), num_beams=4, max_new_tokens=64)
print(tok.decode(ids[0], skip_special_tokens=True))
# El tiempo es bueno hoy.
For int8, pass subfolder="int8" instead.