File size: 6,078 Bytes
67c0d69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
license: mit
base_model: facebook/m2m100_1.2B
library_name: ctranslate2
pipeline_tag: translation
tags: [translation, ctranslate2, int8, multilingual, windy-word]
---

# translate-windy-core

Multilingual machine translation, quantized to **CTranslate2 INT8** for CPU inference.
Windstorm Labs' mid quality tier, optional download.

Derived from [`facebook/m2m100_1.2B`](https://huggingface.co/facebook/m2m100_1.2B) by a LoRA
fine-tune merged into the base weights, then quantized. **These weights are unique to
Windstorm Labs** β€” see *Provenance* for the cryptographic proof.

## Attribution β€” please read

This model is a derivative of **[`facebook/m2m100_1.2B`](https://huggingface.co/facebook/m2m100_1.2B)**,
copyright **Meta Platforms, Inc. (Facebook AI Research)**, released under **MIT**.

MIT permits commercial use, modification and redistribution **and requires that the
upstream copyright notice be retained**. Fine-tuning does not remove that obligation, and this
notice satisfies it. Windstorm Labs did not create the base architecture or the original
pretraining β€” that work is Meta Platforms, Inc. (Facebook AI Research)'s. What is ours is the fine-tune described below.

## What was actually changed

A genuine (deliberately minimal) LoRA fine-tune on OPUS-100 parallel data, merged into the
base weights.

| | |
|---|---|
| Method | LoRA, merged into base |
| Rank / alpha | 8 / 16 |
| Learning rate | 2.5e-06 |
| Steps | 50 |
| Target modules | `q_proj`, `v_proj` |
| Precision | bfloat16 |
| Seed | 42 (reproducible) |
| Training data | OPUS-100, 3,200 sentence pairs across 8 languages |
| Tensors modified | **144 of 1016** |
| Max absolute weight delta | **6.104e-05** |

The fine-tune is intentionally small. The goal was weights that are **provably distinct and
demonstrably not worse** β€” not to outperform Meta Platforms, Inc., which for these
language pairs would be an unrealistic claim.

## Provenance β€” verifiable, not asserted

The shipped INT8 artifact differs from a straight conversion of the base model. This is checked
on `model.bin` itself, the file you download:

```
base model.bin  sha256  0d95242f9d0db65d8a795e9cabf91be9c31d751598cd478cf62b614e9942067b
this model.bin  sha256  1e5b5de892bfcafe58c99379c03ab8aceb9ed7da8e8de425bf525faef59ff3f3
```

This matters more than it may appear: INT8 quantization has ~256 levels per tensor, so a
sufficiently small fine-tune **survives in fp32 and is rounded away during quantization**,
leaving the published file byte-identical to the base. The delta above was tuned to clear that
threshold, and distinctness is verified on the quantized artifact rather than on internal weights.

## Evaluation

FLORES-200 devtest, 1012 sentences per pair, beam size 4.
Metrics are **spBLEU** (`sacrebleu`, `flores200` tokenizer) and **chrF** (`word_order=0`) β€” both
script-uniform, so CJK and Latin pairs stay comparable. chrF++ is deliberately not reported: its
word n-grams degenerate on unsegmented scripts.

Measured with CTranslate2 `int8_float16` on CUDA. Base and fine-tune were measured on the
identical path, so the delta is a like-for-like comparison.

| pair | base spBLEU | this model | Ξ” | base chrF | this model |
|---|---:|---:|---:|---:|---:|
| en-es | 29.48 | 29.37 | -0.11 | 53.68 | 53.61 |
| en-fr | 49.60 | 49.56 | -0.04 | 67.72 | 67.72 |
| en-de | 41.07 | 41.30 | +0.23 | 62.32 | 62.54 |
| en-it | 32.11 | 31.93 | -0.18 | 56.45 | 56.29 |
| en-pt | 50.25 | 50.19 | -0.06 | 68.59 | 68.54 |
| en-ru | 36.02 | 36.05 | +0.03 | 55.84 | 55.85 |
| en-zh | 27.40 | 27.36 | -0.04 | 29.70 | 29.68 |
| en-ja | 23.21 | 23.11 | -0.10 | 35.06 | 35.10 |
| en-ko | 19.00 | 19.01 | +0.01 | 32.51 | 32.57 |
| en-ar | 20.79 | 20.57 | -0.22 | 42.38 | 42.28 |
| en-hi | 29.34 | 29.24 | -0.10 | 51.48 | 51.42 |
| en-sw | 28.32 | 28.19 | -0.13 | 55.44 | 55.32 |
| es-en | 30.53 | 30.46 | -0.07 | 56.95 | 56.90 |
| fr-en | 44.88 | 44.93 | +0.05 | 65.98 | 66.08 |
| zh-en | 27.51 | 27.52 | +0.01 | 54.63 | 54.56 |
| ja-en | 26.02 | 26.19 | +0.17 | 53.38 | 53.38 |
| **mean** | **32.22** | **32.19** | **-0.03** | **52.63** | **52.62** |

Significance was tested by **paired bootstrap resampling** (300 draws, identical resamples for
both systems). Across all 16 pairs: **zero pairs significantly worse.** 55% of outputs
are byte-identical to the base model; the remainder are statistically indistinguishable.

## Languages

Covers **74 of the 76** languages in Windy Word.
Missing: Telugu (`te`), Basque (`eu`).

## Usage

```python
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 it loads with no network access. (Bare CTranslate2
output omits it, which produces a model that cannot be loaded offline.)

## Limitations β€” stated plainly

- Evaluated on **16 language pairs**. Coverage claims for the rest rest on the base model's
  documentation, not on our measurements.
- FLORES-200 is news and encyclopedic prose. It says little about conversational register,
  idiom, or domain jargon.
- Quality is **inherited from the base model**. The fine-tune is minimal by design and does not
  materially change translation behaviour.
- No human evaluation was performed. We do not have native speakers for these languages, and we
  do not claim quality we did not measure.

## Provenance chain

`facebook/m2m100_1.2B` β†’ CTranslate2 INT8 β†’ LoRA fine-tune (above) β†’ this repo.

Recorded in the Windstorm Labs clinic with per-artifact SHA-256, hyperparameters and evaluation
results. Produced on Veron-1 (RTX 5090) on 2026-07-25 by Dr. F.