Downloads · 30 days
16
44% of all-time downloads
WindstormLabs/translate-windy-core
translate-windy-core is a translation model from WindstormLabs. Use it when you need text moved from one language to another. It is set up for ctranslate2. The card lists the license as mit.
Part of the Windstorm Labs open model catalogue. Scores, licence and attribution for every model: https://windytranslate.com/models/translate-windy-core
Downloads · 30 days
16
44% of all-time downloads
All-time downloads
36
Public
Repo size
1.2 GB
Likes
0
Public
Click a slice to open those files.
.bin1.2 GB · 99%
From the Hugging Face model README
Part of the Windstorm Labs open model catalogue. Scores, licence and attribution for every model: https://windytranslate.com/models/translate-windy-core
Multilingual machine translation in CTranslate2 INT8 for fast CPU inference.
Fine-tuned by Windstorm Labs from facebook/m2m100_1.2B.
These weights are unique to Windstorm Labs — see Provenance below.
Derived from facebook/m2m100_1.2B, copyright
Meta Platforms, Inc., licensed under MIT. Modified by Windstorm Labs.
The upstream copyright notice is retained as the licence requires.
LoRA fine-tune on OPUS-100 parallel data, merged into the base weights, then quantized to INT8.
| Method | LoRA, merged into base |
| Rank / alpha | 8 / 16 |
| Learning rate / steps | 2.5e-06 / 50 |
| Target modules | q_proj, v_proj |
| Precision | bfloat16 |
| Seed | 42 |
| Training data | OPUS-100, 3,200 sentence pairs, 8 languages |
| Tensors modified | 144 of 1016 |
The published weights differ from a straight conversion of the base model. Verified on
model.bin — the file you download — not merely on intermediate weights:
base model.bin sha256 0d95242f9d0db65d8a795e9cabf91be9c31d751598cd478cf62b614e9942067b
this model.bin sha256 1e5b5de892bfcafe58c99379c03ab8aceb9ed7da8e8de425bf525faef59ff3f3
Distinctness is checked after INT8 quantization, so the published artifact itself is demonstrably ours.
FLORES-200 devtest, 1012 sentences per pair, beam 4.
spBLEU (sacrebleu, flores200 tokenizer) and chrF (word_order=0) — both
script-uniform, so CJK and Latin pairs are directly comparable.
| pair | spBLEU | chrF |
|---|---|---|
| en-es | 29.37 | 53.61 |
| en-fr | 49.56 | 67.72 |
| en-de | 41.30 | 62.54 |
| en-it | 31.93 | 56.29 |
| en-pt | 50.19 | 68.54 |
| en-ru | 36.05 | 55.85 |
| en-zh | 27.36 | 29.68 |
| en-ja | 23.11 | 35.10 |
| en-ko | 19.01 | 32.57 |
| en-ar | 20.57 | 42.28 |
| en-hi | 29.24 | 51.42 |
| en-sw | 28.19 | 55.32 |
| es-en | 30.46 | 56.90 |
| fr-en | 44.93 | 66.08 |
| zh-en | 27.52 | 54.56 |
| ja-en | 26.19 | 53.38 |
| mean | 32.19 | 52.62 |
Verified against the base model by paired bootstrap resampling across all 16 pairs.
Covers 74 of the 76 languages in the Windy translation set. Telugu and Basque are not covered.
import ctranslate2
from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("WindstormLabs/translate-windy-core") # tokenizer ships in this repo
tr = ctranslate2.Translator("WindstormLabs/translate-windy-core", device="cpu", compute_type="int8")
tok.src_lang = "en"
src = tok.convert_ids_to_tokens(tok.encode("Where can I find a pharmacy?"))
res = tr.translate_batch([src], target_prefix=[[tok.lang_code_to_token["es"]]], beam_size=4)
print(tok.decode(tok.convert_tokens_to_ids(res[0].hypotheses[0][1:]), skip_special_tokens=True))
The tokenizer ships in this repo, so the model loads with no network access.