sneakyfree's picture
Upload from WindyWord/translate-windy-core (chain: WindstormLabs/translate-windy-core -> WindyWord/translate-windy-core -> WindyWordApp/translate-windy-core)
67c0d69 verified
|
Raw
History Blame Contribute Delete
6.08 kB
---
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.