openeurollm/datamix-9b-Dolci-Translated-A-75EN
datamix-9b Dolci-Translated A-75EN
Cross-architecture validation of the Translate, Replay, Mix recipe applied to openeurollm/datamix-9b-80-20, a Llama-architecture, multilingually-pretrained $9$B base with a Gemma tokenizer. Same $75/25$ English replay + Dolci-Translated EU mixture as openeurollm/OLMo-3-7B-Dolci-Translated-A-75EN, but trained with a different framework and at a different context length because of the base's architecture and pretraining limits.
Recipe
Training configuration
Departs from the OLMo runs in five places (see Section 3.3 of the paper):
- Llama-architecture $9$B base (vs OLMo)
- Maximum context length $2048$ (vs $32$k)
- Micro-batches accumulated to effective batch of $128$ (vs ${\sim}1$M tokens)
- Plain DDP (vs DeepSpeed ZeRO 2)
open-instruct/finetune.pyentry point (vs OLMo-core)
Peak LR $8\times10^{-5}$ matches the OLMo runs.
Evaluation
Per-language Bradley-Terry Elo at matched $1024/1024$ input/output truncation, 500 battles/language, against openeurollm/OLMo-3-7B-Dolci-Translated-A-75EN re-evaluated under the same truncation (paper Table 4, Figure 6):
This checkpoint leads on cs ($+100$), de ($+50$), fi ($+63$), sv ($+34$); OLMo-3-7B A-75EN leads on en ($+91$), es ($+56$), it ($+41$), fr ($+14$). The crossover is consistent with a multilingually-pretrained base partially substituting for the multilingual SFT pool on lower-resource EU languages.
How to load
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("openeurollm/datamix-9b-Dolci-Translated-A-75EN")
model = AutoModelForCausalLM.from_pretrained("openeurollm/datamix-9b-Dolci-Translated-A-75EN", torch_dtype="bfloat16")
# No built-in chat template; use 'simple_chat' from open-instruct or apply your own.Citation
Please cite the paper if you use this checkpoint.
