--- license: cc-by-nc-4.0 language: - multilingual library_name: coreml pipeline_tag: translation base_model: facebook/nllb-200-distilled-600M tags: - coreml - translation - nllb - on-device - apple-silicon - neural-engine - m2m100 - palettization - quantized --- # NLLB-200 distilled 600M — Core ML (seq 256, ANE, palettized / pal8) Core ML `.mlpackage` bundles for **encoder** and **KV-cache decoder** (`init` + `step`), exported from [`facebook/nllb-200-distilled-600M`](https://huggingface.co/facebook/nllb-200-distilled-600M). Fixed **sequence length 256**, **8-bit palettization (pal8)** on weights for a smaller footprint and Apple Neural Engine–friendly deployment. ## Contents | Artifact | Role | |----------|------| | `NLLB_Encoder_256.mlpackage` | Encode source tokens | | `NLLB_Decoder_256_init.mlpackage` | Decoder first step (no past KV) | | `NLLB_Decoder_256_step.mlpackage` | Autoregressive step with past KV | | `config.json` | Architecture metadata (`seq_len`, `compute_units`, etc.) | | `tokenizer/` | Reference tokenizer files for the app pipeline | ## Companion variant - **Float32 weights** (no palettization): [`aoiandroid/nllb200-coreml-256-ane`](https://huggingface.co/aoiandroid/nllb200-coreml-256-ane) ## Config highlights (`config.json`) - `model_type`: `m2m_100` / `M2M100ForConditionalGeneration` - `seq_len`: **256** - `ane_optimized`: **true** - `compute_units`: **CPU_AND_NE** - Weights in the `.mlpackage` bundles use **pal8** palettization (see Hub file sizes vs the float32 repo). ## Base model and license - Source weights: **NLLB-200 distilled 600M** (Meta / FAIR). - Original terms are **CC-BY-NC 4.0**. This repository only ships a **derived Core ML export** for on-device use; the same license restrictions apply. ## Intended use - **macOS / iOS** on-device translation via `MLModel` (or `coremltools` in Python for validation). - Language direction is controlled in your app: tokenizer `src_lang`, forced target BOS (e.g. `eng_Latn`), and your beam/greedy loop around `Decoder_256_step`. - Compare **accuracy and latency** against the float32 sibling on your devices; palettization can change numerical behavior. ## Limitations - Fixed **max sequence length 256** at export time; longer inputs require truncation or a different export. - Not a drop-in Hugging Face `transformers` checkpoint; this is a **split Core ML deployment** (encoder + decoder packages). ## Maintainer [`aoiandroid`](https://huggingface.co/aoiandroid)