Multilingual translation model translate-windy-nano
One CTranslate2 INT8 model for many language directions, fine-tuned by Windstorm Labs from facebook/m2m100_418M.
- Task
- Translation (multilingual)
- Lineage
- M2M-100
- Format
- CTranslate2 (INT8)
- Hugging Face
- WindyWord/translate-windy-nano
- Last updated on HF
- 2026-07-27
Quality (as published in the model card)
FLORES-200 devtest, 1012 sentences per pair, beam 4. These numbers come from the Hugging Face model card; this site has not re-measured them, and they use a different setup from our pair screening (devtest, 1,012 sentences, spBLEU and chrF), so do not compare them directly with pair scores.
| Pair | spBLEU | chrF |
|---|---|---|
| English → Spanish | 25.93 | 51.28 |
| English → French | 43.51 | 63.99 |
| English → German | 33.45 | 57.42 |
| English → Italian | 28.59 | 53.95 |
| English → Portuguese | 44.76 | 65.26 |
| English → Russian | 29.66 | 50.98 |
| English → Chinese | 23.31 | 26.63 |
| English → Japanese | 19.74 | 32.34 |
| English → Korean | 16.96 | 30.25 |
| English → Arabic | 30.68 | 51.15 |
| English → Hindi | 29.00 | 51.04 |
| English → Swahili | 19.99 | 48.30 |
| Spanish → English | 26.80 | 54.61 |
| French → English | 39.92 | 62.87 |
| Chinese → English | 22.11 | 50.57 |
| Japanese → English | 21.21 | 49.65 |
| Mean | 28.48 | 50.02 |
Covers 74 of the 76 languages in the Windy translation set. Telugu and Basque are not covered.
How to run
pip install ctranslate2 transformers sentencepiece huggingface_hubimport ctranslate2
from huggingface_hub import snapshot_download
from transformers import AutoTokenizer
path = snapshot_download("WindyWord/translate-windy-nano")
tok = AutoTokenizer.from_pretrained(path) # the tokenizer ships in the repo
translator = ctranslate2.Translator(path, device="cpu", compute_type="int8")
tok.src_lang = "en"
source = tok.convert_ids_to_tokens(tok.encode("Where is the train station?"))
target_prefix = [tok.convert_ids_to_tokens(tok.get_lang_id("es"))]
result = translator.translate_batch([source], target_prefix=[target_prefix], beam_size=4)
print(tok.decode(tok.convert_tokens_to_ids(result[0].hypotheses[0][1:])))Tested: Pattern run on 2026-10-01 against WindyWord/translate-windy-nano with ctranslate2 4.8.2 and transformers 5.18.0 on CPU. Same code path as translate-windy-core. Not run on every model individually.
Licence and attribution
- Licence
- MIT
- Upstream
- facebook/m2m100_418M
- Upstream licence
- MIT
- Attribution
- Based on facebook/m2m100_418M (M2M-100) by Meta Platforms, Inc. Licensed MIT.
Copy this into your NOTICE file (or equivalent) when you ship the model:
This product uses the model WindyWord/translate-windy-nano
(https://huggingface.co/WindyWord/translate-windy-nano), published by Windstorm Labs (https://windstormlabs.com).
Based on facebook/m2m100_418M (M2M-100) by Meta Platforms, Inc. Licensed MIT.
Windstorm Labs modified the upstream weights; the model card describes what was changed.
Licensed under the MIT License: https://opensource.org/license/mitThis is a convenience, not legal advice. See Licensing.