phonepack-de-en / pack.json
sneakyfree's picture
Phone pack v1 de-en: lean ONNX int8 (FLORES-200 devtest scored)
419d26f verified
Raw History Blame Contribute Delete
3.85 kB
{
"packFormat": 1,
"direction": "de-en",
"source": "de",
"target": "en",
"model": {
"catalogueId": "translate-de-en",
"repo": "WindyTranslate/translate-de-en",
"revision": "fb6f91ba4c16c3c3e1778633d1a6c1cd6be4d0ca",
"baseModel": "Helsinki-NLP/opus-mt-de-en"
},
"licence": "Apache-2.0",
"attribution": "Based on OPUS-MT model Helsinki-NLP/opus-mt-de-en by Helsinki-NLP (Language Technology Research Group, University of Helsinki). Licensed Apache-2.0.",
"notice": "This product uses the model WindyTranslate/translate-de-en\n(https://huggingface.co/WindyTranslate/translate-de-en), published by Windstorm Labs (https://windstormlabs.com).\nBased on OPUS-MT model Helsinki-NLP/opus-mt-de-en by Helsinki-NLP (Language Technology Research Group, University of Helsinki). Licensed Apache-2.0.\nWindstorm Labs modified the upstream weights; the model card describes what was changed.\nLicensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.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": null,
"decoding": {
"decoderStartTokenId": 58100,
"eosTokenId": 0,
"padTokenId": 58100,
"neverGenerate": [
58100
],
"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,8,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,8,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": 23838352,
"sha256": "652d457bfcb0337151248d60fc11d386787b7700e9b9edcf068116022e60a256"
},
"embed.bin": {
"bytes": 29747712,
"sha256": "da40d6f4b76ea50c3a5407f745fa5026766143392d5bc159a71a104ab4948b9e"
},
"encoder.onnx": {
"bytes": 23494590,
"sha256": "f28d8a67abd588316b119999276b2bbe51d8a3c36570c4eba6cee556f8c56c7d"
},
"model_config.json": {
"bytes": 196,
"sha256": "980f013ba461a9bd56a0257357c83a1d1ecbca91cc2599cafe7ce8a9333465ee"
},
"source.spm": {
"bytes": 796845,
"sha256": "bbd1f495eea99c8e21ae086d9146e0fa7b096c3dfdd9ba07ab8b631889df5c9b"
},
"target.spm": {
"bytes": 768489,
"sha256": "678f2a1177d8389f67b66299762dcc4fc567e89b07e212ba91b0c56daecf47ce"
},
"test_vectors.json": {
"bytes": 26571,
"sha256": "bc815f26294e0715586d55d006971e05ab262d124927547b06833cc4ba1a8534"
},
"vocab.json": {
"bytes": 1389436,
"sha256": "d5acea957b265a78554999144459c5e391e0df525864edc8287bc090290baa44"
}
},
"downloadBytes": 80062191,
"weightsBytes": 80035620,
"quality": {
"benchmark": "FLORES-200 devtest",
"sentences": 1012,
"chrf++": 64.81,
"spbleu": 44.79,
"ct2_int8_chrf++": 64.75,
"delta_vs_ct2": 0.06,
"beam": 4,
"measured": "2026-10-17",
"by": "Windy Translate"
},
"built": "2026-10-17T16:42:56Z",
"builder": "export_lean.py (Windy Translate)"
}