phonepack-en-pt / pack.json
sneakyfree's picture
Phone pack v1 en-pt: lean ONNX int8 (FLORES-200 devtest scored)
3e6c5f3 verified
Raw History Blame Contribute Delete
3.93 kB
{
"packFormat": 1,
"direction": "en-pt",
"source": "en",
"target": "pt",
"model": {
"catalogueId": "translate-tc-big-en-pt",
"repo": "WindyTranslate/translate-tc-big-en-pt",
"revision": "a62035cefd24be14d58d06fa3e83081a762f9082",
"baseModel": "Helsinki-NLP/opus-mt-tc-big-en-pt"
},
"licence": "CC-BY-4.0",
"attribution": "Based on OPUS-MT model Helsinki-NLP/opus-mt-tc-big-en-pt by Helsinki-NLP (Language Technology Research Group, University of Helsinki). Licensed CC-BY-4.0.",
"notice": "This product uses the model WindyTranslate/translate-tc-big-en-pt\n(https://huggingface.co/WindyTranslate/translate-tc-big-en-pt), published by Windstorm Labs (https://windstormlabs.com).\nBased on OPUS-MT model Helsinki-NLP/opus-mt-tc-big-en-pt by Helsinki-NLP (Language Technology Research Group, University of Helsinki). Licensed CC-BY-4.0.\nWindstorm Labs modified the upstream weights; the model card describes what was changed.\nLicensed under Creative Commons Attribution 4.0 International: https://creativecommons.org/licenses/by/4.0/",
"runtime": {
"engine": "onnxruntime",
"opset": 17,
"weights": "int8 (dynamic quantization, MatMul; embedding int8 shared)",
"files": {
"encoder": "encoder.onnx",
"decoder": "decoder.onnx",
"sharedEmbedding": "embed.bin (external data of both graphs; keep it next to them)",
"sourceTokenizer": "source.spm",
"targetTokenizer": "target.spm",
"vocab": "vocab.json",
"config": "model_config.json"
},
"tokenizer": "SentencePiece PIECES from source.spm mapped to ids through vocab.json (unknown piece -> <unk>), then </s>. Raw SentencePiece ids are NOT model ids. Do not use onnxruntime-extensions' tokenizer op.",
"sourcePrefixToken": ">>por<<",
"decoding": {
"decoderStartTokenId": 54775,
"eosTokenId": 44670,
"padTokenId": 54775,
"neverGenerate": [
54775
],
"beam": 4,
"lengthNormalisation": "sum log-prob / output length",
"maxNewTokens": 256
},
"encoder": {
"inputs": [
"input_ids [b,s] int64",
"attention_mask [b,s] int64"
],
"outputs": [
"cross_k_i / cross_v_i [b,16,s,64] for i in 0..5"
]
},
"decoder": {
"inputs": [
"input_ids [b,1] int64 (start token on step 1, then the last token)",
"encoder_attention_mask [b,s] int64",
"past_k_i / past_v_i [b,16,t,64] float32 (t = 0 on step 1)",
"cross_k_i / cross_v_i (from the encoder)"
],
"outputs": [
"logits [b,1,vocab]",
"present_k_i / present_v_i [b,heads,t+1,head_dim] (next step's past)"
]
}
},
"files": {
"decoder.onnx": {
"bytes": 93238398,
"sha256": "ec8cf41c33596a2db8db4bc247f47a7cd3738abdf881c075fccd0ee79237e2be"
},
"embed.bin": {
"bytes": 56090624,
"sha256": "fcdc585597fff03cbd26c6b0a27fc5c595c310135e474894734bd9848b9c9343"
},
"encoder.onnx": {
"bytes": 92883365,
"sha256": "fad40d14b316942fdae21e8687b4e5de8d1cecfc20cdcc6aee238d6be11aa568"
},
"model_config.json": {
"bytes": 203,
"sha256": "0dc8e07359f05bd283bdd143c702ae1c60976a675f45c729f62d0e78fc6cc27c"
},
"source.spm": {
"bytes": 802741,
"sha256": "7a7fcf812cf03a5785daa35d4932bbbe69e7e605c0fe56fce5a3f731d6c355aa"
},
"target.spm": {
"bytes": 824855,
"sha256": "b3cf20ccd4e48a89882cfdba157c05fa1cd71a6b69517dfc80e3a34d387ea91f"
},
"test_vectors.json": {
"bytes": 28385,
"sha256": "a41aa5e48a55cf3436e9fe83a39442a31661a3c55b36f6ad5ecc5c08c4d17f32"
},
"vocab.json": {
"bytes": 1380764,
"sha256": "dad10ad0acbf34ad92af16cb37fd71732d2b73851274698d58c5439386b506a1"
}
},
"downloadBytes": 245249335,
"weightsBytes": 245220950,
"quality": {
"benchmark": "FLORES-200 devtest",
"sentences": 1012,
"chrf++": 69.9,
"spbleu": 54.95,
"ct2_int8_chrf++": 69.95,
"delta_vs_ct2": -0.05,
"beam": 4,
"measured": "2026-10-17",
"by": "Windy Translate"
},
"built": "2026-10-17T17:03:01Z",
"builder": "export_lean.py (Windy Translate)"
}