Language Adaptation on a Tight Academic Compute Budget: Tokenizer Swapping Works and Pure bfloat16 Is Enough
Konstantin Dobler, Gerard de Melo
TL;DR
The paper evaluates language adaptation of Mistral-7B under tight academic compute budgets, focusing on German and Arabic. It finds that training in pure bfloat16 delivers substantial efficiency gains and remains viable, though RMSNorm weights can behave differently due to numeric precision. Tokenizer swapping, paired with good embedding reinitialization, yields efficient tokenization and comparable downstream performance in German, while helping Arabic more noticeably in hindsight experiments. The results suggest language adaptation is not universally beneficial, being more advantageous for underrepresented languages, and offer practical guidance for future budget-conscious adaptation efforts. Overall, the study highlights pure bfloat16 and tokenizer strategies as key levers for efficient language specialization within constrained resources.
Abstract
We investigate continued pretraining of LLMs for language adaptation on a tight academic budget: a setting in which only a few GPUs can be used in parallel, for a heavily constrained duration. We focus on adapting Mistral-7B to German or Arabic and evaluate several techniques to improve efficiency and effectiveness in this setting. Our German models adapted on this tight compute budget underperform compared to the base Mistral-7B, while our Arabic models outperform several baselines, showing that for sufficiently well-represented languages, continued pretraining for specialization is not always helpful. Our main findings focus on training precision and tokenizer swapping. Our results show that pure bfloat16 training is a viable alternative to mixed-precision training, while being much faster when only using a few GPUs. Swapping the tokenizer for a specialized one yields more efficient tokenization and is competitive with the original tokenizer, which already contains some German tokens, but did not significantly increase performance for German. Code and model weights are available at on GitHub.
