translate-windy-max
Multilingual machine translation in CTranslate2 INT8 for fast CPU inference.
Fine-tuned by Windstorm Labs from google/madlad400-3b-mt.
These weights are unique to Windstorm Labs โ see Provenance below.
Attribution
Derived from google/madlad400-3b-mt, copyright
Google LLC, licensed under Apache-2.0. Modified by Windstorm Labs.
The upstream copyright notice is retained as the licence requires.
What we did
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, v |
| Precision | bfloat16 |
| Seed | 42 |
| Training data | OPUS-100, 3,200 sentence pairs, 8 languages |
| Tensors modified | 192 of 744 |
Provenance
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 890ed3b7e4654dcf1b9e7f2ce6ce641447462e782881e81aac443568eb1ca702
this model.bin sha256 c13ba95e1098fb4bee0281ba18f6f5be8576e80e36d69d5cbe1fc6303b8822d3
Distinctness is checked after INT8 quantization, so the published artifact itself is demonstrably ours.
Evaluation
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 | 32.77 | 56.33 |
| en-fr | 55.78 | 71.93 |
| en-de | 47.48 | 66.73 |
| en-it | 37.27 | 60.01 |
| en-pt | 54.49 | 71.54 |
| en-ru | 40.48 | 59.22 |
| en-zh | 33.79 | 34.93 |
| en-ja | 25.03 | 34.89 |
| en-ko | 26.21 | 35.86 |
| en-ar | 39.22 | 57.40 |
| en-hi | 34.84 | 54.88 |
| en-sw | 30.81 | 56.18 |
| es-en | 35.37 | 60.72 |
| fr-en | 49.78 | 69.64 |
| zh-en | 32.57 | 58.13 |
| ja-en | 30.98 | 56.95 |
| mean | 37.93 | 56.58 |
Verified against the base model by paired bootstrap resampling across all 16 pairs.
Languages
Covers 76 of the 76 languages in the Windy translation set. Full coverage. Tagalog uses the <2fil> tag.
Usage
import ctranslate2
from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("WindstormLabs/translate-windy-max") # tokenizer ships in this repo
tr = ctranslate2.Translator("WindstormLabs/translate-windy-max", device="cpu", compute_type="int8")
# The target language is a tag in the source. Tagalog is <2fil>.
src = tok.convert_ids_to_tokens(tok.encode("<2es> Where can I find a pharmacy?"))
res = tr.translate_batch([src], beam_size=4)
print(tok.decode(tok.convert_tokens_to_ids(res[0].hypotheses[0]), skip_special_tokens=True))
The tokenizer ships in this repo, so the model loads with no network access.
Notes
- Evaluation covers 16 language pairs. Coverage for other languages follows the base model.
- FLORES-200 is news and encyclopedic prose.
- No human evaluation was performed.
- Downloads last month
- 14
Model tree for WindstormLabs/translate-windy-max
Base model
google/madlad400-3b-mt