kurakurai/Luth-LFM2-350M

Model

Luth-LFM2-350M

16

25 commits

2 linked in READMEs

updated Oct 12, 2025

See the code

README

Luth x LFM2

Luth-LFM2-350M

Luth-LFM2-350M is a French fine-tuned version of LFM2-350M in collaboration with Liquid AI, trained on the Luth-SFT dataset. The model has improved its French capabilities in instruction following, math, and general knowledge. Additionally, its English capabilities have remained stable.

Our Evaluation, training and data scripts are available on GitHub, along with the Blog we wrote, to further detail our recipe.

Luth-LFM2 graph

Model Details

The model was trained using full fine-tuning on the Luth-SFT dataset with Axolotl. The resulting model was then merged back with LFM2-350M. This process successfully retained the model's English capabilities while improving its performance in French.

Benchmark Results

We used LightEval for evaluation, with custom tasks for the French benchmarks. The models were evaluated with a temperature=0.

French Benchmark Scores

ModelIFEval
French
GPQA-Diamond
French
MMLU
French
Math500
French
Arc-Challenge
French
Hellaswag
French
Luth-LFM2-350M38.2626.4039.1523.0034.1343.39
LFM2-350M31.5528.9338.6318.0033.3639.13
SmolLM2-360M-Instruct21.5028.4326.143.2026.6032.94

English Benchmark Scores

ModelIFEval
English
GPQA-Diamond
English
MMLU
English
Math500
English
Arc-Challenge
English
Hellaswag
English
Luth-LFM2-350M57.0528.2844.3623.2034.8145.92
LFM2-350M56.8127.2744.7920.8734.2745.07
SmolLM2-360M-Instruct33.9520.7126.183.0035.4152.17

Code Example

from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("kurakurai/Luth-LFM2-350M")
model = AutoModelForCausalLM.from_pretrained("kurakurai/Luth-LFM2-350M")
messages = [
    {"role": "user", "content": "Quelle est la capitale de la France?"},
]
inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=100)
print(
    tokenizer.decode(
        outputs[0][inputs["input_ids"].shape[-1] :], skip_special_tokens=True
    )
)

Citation

@misc{luth2025kurakurai,
  title        = {Luth: Efficient French Specialization for Small Language Models and Cross-Lingual Transfer},
  author       = {Lasbordes, Maxence and Gad, Sinoué},
  year         = {2025},
  howpublished = {\url{https://arxiv.org/abs/2510.05846}},
  note         = {arXiv:2510.05846}
}
conversational
endpoints_compatible
lfm2
liquid
luth
safetensors
text-generation
transformers

Contributors

MaxLSB

20 commits

GAD-cell

5 commits

kurakurai/Luth-LFM2-350M

Model

Luth-LFM2-350M

16

25 commits

2 linked in READMEs

updated Oct 12, 2025

See the code

README

Luth x LFM2

Luth-LFM2-350M

Luth-LFM2-350M is a French fine-tuned version of LFM2-350M in collaboration with Liquid AI, trained on the Luth-SFT dataset. The model has improved its French capabilities in instruction following, math, and general knowledge. Additionally, its English capabilities have remained stable.

Our Evaluation, training and data scripts are available on GitHub, along with the Blog we wrote, to further detail our recipe.

Luth-LFM2 graph

Model Details

The model was trained using full fine-tuning on the Luth-SFT dataset with Axolotl. The resulting model was then merged back with LFM2-350M. This process successfully retained the model's English capabilities while improving its performance in French.

Benchmark Results

We used LightEval for evaluation, with custom tasks for the French benchmarks. The models were evaluated with a temperature=0.

French Benchmark Scores

ModelIFEval
French
GPQA-Diamond
French
MMLU
French
Math500
French
Arc-Challenge
French
Hellaswag
French
Luth-LFM2-350M38.2626.4039.1523.0034.1343.39
LFM2-350M31.5528.9338.6318.0033.3639.13
SmolLM2-360M-Instruct21.5028.4326.143.2026.6032.94

English Benchmark Scores

ModelIFEval
English
GPQA-Diamond
English
MMLU
English
Math500
English
Arc-Challenge
English
Hellaswag
English
Luth-LFM2-350M57.0528.2844.3623.2034.8145.92
LFM2-350M56.8127.2744.7920.8734.2745.07
SmolLM2-360M-Instruct33.9520.7126.183.0035.4152.17

Code Example

from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("kurakurai/Luth-LFM2-350M")
model = AutoModelForCausalLM.from_pretrained("kurakurai/Luth-LFM2-350M")
messages = [
    {"role": "user", "content": "Quelle est la capitale de la France?"},
]
inputs = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=100)
print(
    tokenizer.decode(
        outputs[0][inputs["input_ids"].shape[-1] :], skip_special_tokens=True
    )
)

Citation

@misc{luth2025kurakurai,
  title        = {Luth: Efficient French Specialization for Small Language Models and Cross-Lingual Transfer},
  author       = {Lasbordes, Maxence and Gad, Sinoué},
  year         = {2025},
  howpublished = {\url{https://arxiv.org/abs/2510.05846}},
  note         = {arXiv:2510.05846}
}
conversational
endpoints_compatible
lfm2
liquid
luth
safetensors
text-generation
transformers

Contributors

MaxLSB

20 commits

GAD-cell

5 commits