Instructions to use translate-studio/MiLMMT-46-1B-v1.0-8bit-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use translate-studio/MiLMMT-46-1B-v1.0-8bit-MLX with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir MiLMMT-46-1B-v1.0-8bit-MLX translate-studio/MiLMMT-46-1B-v1.0-8bit-MLX
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
MiLMMT-46-1B v1.0 — 8-bit (MLX)
An 8-bit, group-size-64 MLX quantization of Xiaomi's
MiLMMT-46-1B-v1.0, for on-device
translation on Apple Silicon. 46 languages.
Unlike the 4B, this checkpoint is a plain Gemma3ForCausalLM (model_type: gemma3_text) with no
vision tower, so the conversion is a straight re-quantization — nothing is dropped.
| Base model | xiaomi-research/MiLMMT-46-1B-v1.0 |
| Quantization | 8-bit, group size 64, affine (8.501 bits/weight) |
| Format | MLX safetensors |
| Size | ~1.0 GB |
| Languages | 46 |
Read this before choosing the 1B
The small download is tempting. Measured against the 4B, it is not a close call.
A 156-item hand-authored translation set (46-language spread; en→X, X→en and non-English pairs, with items targeting negation scope, numbers/dates, idiom, register and script) was run through three on-device systems and judged blind — per-item shuffled labels, two independent judge panels, 95.7% inter-judge agreement. Restricted to the 153 items whose target language MiLMMT actually supports:
| system | score | items with a confirmed meaning-changing error |
|---|---|---|
| MiLMMT-46 4B (5-bit) | 86.5% | 5 |
| Hunyuan-MT2 1.8B (5-bit) | 77.5% | 13 |
| MiLMMT-46 1B (8-bit, this repo) | 73.9% | 19 |
Three of the 1B's errors were polarity inversions — fluent, confident output meaning the opposite of the source:
- ko→ja:
늦지 않을 것 같아요("I won't be late") →間に合わないと思います("I won't make it") - es→fr:
No me acordaba("I didn't remember") →Je n'avais pas oublié("I hadn't forgotten") - en→ja: "was rejected" →
採用された("was hired")
It also read "half past ten" as halb zehn (9:30) and left 野餐 — a Chinese word, not Japanese —
in Japanese output. A reader cannot detect any of these without knowing the target language.
This is not quantization damage. The measurements above are of the 8-bit build; the same family's 4-bit and 5-bit builds at 4B show no cliff at all.
Where the 1B is genuinely usable
Its weakness is generation, not comprehension:
| direction | score |
|---|---|
| X→English | 90% |
| English→X | 68% |
| non-English → non-English | 69% |
At 90% into English it is a reasonable choice for reading foreign text on a small device. For producing text in another language, prefer the 4B.
Caveat on the numbers: LLM judges, and the same author wrote the source sentences. The direction of a 12-point gap is trustworthy; the exact figures are not a substitute for COMET/XCOMET.
Usage
from mlx_lm import load, generate
from mlx_lm.sample_utils import make_sampler
model, tokenizer = load("translate-studio/MiLMMT-46-1B-v1.0-8bit-MLX")
src, tgt = "Japanese", "English"
text = "先週の会議で決まったことを、来週までにまとめておいてください。"
prompt = f"Translate this from {src} to {tgt}:\n{src}: {text}\n{tgt}:"
print(generate(model, tokenizer, prompt=prompt, max_tokens=512,
sampler=make_sampler(temp=0.0), verbose=False))
Prompt format
The model card's plain block, with no BOS token and no chat template — the checkpoint's
chat_template.jinja just concatenates message contents, so there are no turn markers:
Translate this from <source language name> to <target language name>:
<source language name>: <source sentence>
<target language name>:
Language names must be written as the base model card lists them (e.g. Chinese (Simplified)).
Note on stop tokens
config.json carries only eos_token_id: 1, while generation_config.json lists [1, 106]
(106 is <end_of_turn>). Loaders reading the stop id from config.json alone can miss 106
and run on to max_tokens. Honour both.
Supported languages
Arabic, Azerbaijani, Bulgarian, Bengali, Catalan, Czech, Danish, German, Greek, English, Spanish, Persian, Finnish, French, Hebrew, Hindi, Croatian, Hungarian, Indonesian, Italian, Japanese, Kazakh, Khmer, Korean, Lao, Malay, Burmese, Norwegian, Dutch, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Swedish, Tamil, Thai, Tagalog, Turkish, Urdu, Uzbek, Vietnamese, Cantonese, Chinese (Simplified), Chinese (Traditional).
Prompts targeting Telugu, Marathi or Gujarati — which are not in that list — return fluent Hindi/Devanagari rather than an error. Filter to the supported set; do not rely on the model to refuse.
License & attribution
Derived from Gemma and distributed under the Gemma Terms of Use.
Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms.
Credit: Xiaomi Inc. (MiLMMT-46) and Google (Gemma 3 base architecture). This repository only provides an MLX-quantized copy of the released weights, redistributed under the same terms.
@misc{han2026referencefreeposttrainingopenlarge,
title={Reference-Free Post-Training of Open Large Language Models for Multilingual Machine Translation},
author={Chris Han and Pengzhi Gao and Pei Fu and Jian Luan},
year={2026},
eprint={2608.10812},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2608.10812}
}
- Downloads last month
- 24
8-bit
Model tree for translate-studio/MiLMMT-46-1B-v1.0-8bit-MLX
Base model
google/gemma-3-1b-pt