| language: | |
| - multilingual | |
| language_details: "NLLB-200 supports 200 languages (see facebook/nllb-200-distilled-600M)" | |
| license: "cc-by-nc-4.0" | |
| tags: | |
| - translation | |
| - coreml | |
| - nllb | |
| - apple | |
| - ios | |
| - mlpackage | |
| pipeline_tag: translation | |
| datasets: | |
| - flores-200 | |
| base_model: facebook/nllb-200-distilled-600M | |
| # NLLB-200 Core ML 512 (KV decoders) | |
| Core ML export of [facebook/nllb-200-distilled-600M](https://huggingface.co/facebook/nllb-200-distilled-600M) with **max sequence length 512** for encoder and decoder. | |
| ## Layout | |
| | Artifact | Role | | |
| |----------|------| | |
| | `NLLB_Encoder_512.mlpackage` | Encoder | | |
| | `NLLB_Decoder_512_init.mlpackage` | First autoregressive step + initial KV | | |
| | `NLLB_Decoder_512_step.mlpackage` | Later steps; past KV in/out | | |
| | `tokenizer/` | Hugging Face tokenizer files | | |
| | `config.json` | Base model config copy | | |
| **Do not** use a single legacy `NLLB_Decoder_512.mlpackage` only: greedy decoding breaks when the graph was traced with a fixed short prefix. | |
| The **palettized** repo (`nllb200-coreml-512-pal8`) uses the same three `mlpackage` names with 8-bit weight palettization. | |
| ## App | |
| on-device iOS client model IDs: `nllb200-coreml-512`, `nllb200-coreml-512-pal8` (`NLLBCoreMLTranslationService`). | |
| ## Conversion | |
| Produced from [nllb200_coreml_colab_v3_fixed.ipynb](local iOS project (private)) (same KV pipeline as 1024, `enc_len=512`). | |
| ## Validation (macOS) | |
| ```bash | |
| python3 Scripts/validate_nllb512_bleu_macos.py --local-dir Notebooks/nllb/output/nllb200-coreml-512 --min-bleu 50 | |
| ``` | |
| ## License | |
| Same as the base model ([CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/)) and NLLB-200 terms. | |