File size: 3,367 Bytes
3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb 3c483ae b8f37cb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | ---
license: apache-2.0
base_model: google/madlad400-3b-mt
library_name: ctranslate2
pipeline_tag: translation
tags: [translation, ctranslate2, int8, multilingual, windy]
---
# translate-windy-max
Multilingual machine translation in **CTranslate2 INT8** for fast CPU inference.
Fine-tuned by **Windstorm Labs** from [`google/madlad400-3b-mt`](https://huggingface.co/google/madlad400-3b-mt).
These weights are unique to Windstorm Labs — see *Provenance* below.
## Attribution
Derived from [`google/madlad400-3b-mt`](https://huggingface.co/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
```python
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.
|