Model reference · open weights
Qwen3-FR-Swap is an open-weight language model from lightonai. Qwen3-8B-FR-Swap (BF16) weighs 16.4 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.
Summary of the lightonai/Qwen3-8B-FR-Swap model card, 2026-10-01
What it is
| Released by | lightonai |
|---|---|
| Released | 2026-05-26 |
| Parameters | 8.2B |
| VRAM | 16.4 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 4060 Ti 16 GB 2 smaller cards | — | — | — | |
| RTX 3090 24 GB | 5 | 1 | all 40K | 23.4 GB |
| RTX 4090 24 GB | 5 | 1 | all 40K | 23.4 GB |
| RTX 5090 32 GB | 11 | 2 | all 40K | 31.0 GB |
| L40S 48 GB | 22 | 5 | all 40K | 44.0 GB |
| A100 80 GB | 50 | 12 | all 40K | 78.2 GB |
| H100 80 GB | 46 | 11 | all 40K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 59 | 14 | all 40K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 71 | 17 | all 40K | 107 GB |
| H200 141 GB | 96 | 24 | all 40K | 138 GB |
| B200 180 GB | 127 | 31 | all 40K | 176 GB |
| 2× RTX 3060 12 GB tensor parallel | 4 | 1 | 35K | 11.6 GB a card |
| 2× RTX 4060 Ti 16 GB tensor parallel | 10 | 2 | all 40K | 15.4 GB a card |
| 2× RTX 4090 24 GB tensor parallel | 23 | 5 | all 40K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 23 | 5 | all 40K | 23.4 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 18.3 GB | 22.0 GB |
| 5 | 23.2 GB | 41.3 GB |
| 8 | 26.8 GB | 55.8 GB |
| 16 | 36.5 GB | 94.4 GB |
| 32 | 55.8 GB | 172 GB |
| 64 | 94.4 GB | 326 GB |
One card, with vLLM's small-card settings.
From the model card
Qwen3-8B-FR-Swap is a Layer Swap model built on top of lightonai/Qwen3-8B-FR: the middle transformer layers (L13–L22) of the English specialist lightonai/Qwen3-8B-EN have been transplanted into the French native specialist. The resulting model reasons natively in French while inheriting the stronger reasoning core of the English specialist.
It is released alongside the paper Rethinking the Multilingual Reasoning Gap with Layer Swap.
Qwen/Qwen3-8B-BaseQwen3-8B-EN transplanted into Qwen3-8B-FRlightonai/Dolci-Think-SFT-32B-Multilingual[!NOTE] The model was trained on data derived from
allenai/Dolci-Think-SFT-32B, released under the ODC-BY-1.0 license.
This model is part of a French specialist trio designed to study the native reasoning gap:
| Model | CoT language | Description |
|---|---|---|
lightonai/Qwen3-8B-FR | French | Native reasoning specialist |
lightonai/Qwen3-8B-FR-Swap | French | Layer Swap: middle layers (L13–L22) of Qwen3-8B-EN transplanted into Qwen3-8B-FR |
lightonai/Qwen3-8B-FR-Pivot-EN | English | Same French Q&A pairs, but CoT in English |
lightonai/Qwen3-8B-EN | English | English specialist |
All scores are mean accuracy (%) on the French version of each benchmark, with sample standard deviation across runs. AIME 24/25 is averaged over 30 runs; the others over 10 runs, using the recommended generation parameters.
| Model | MGSM-Rev2 | Global-MMLU-Lite | GPQA-Diamond | AIME 24/25 | HumanEvalPlus | Average |
|---|---|---|---|---|---|---|
Qwen3-8B-FR | 92.80 | 76.45 | 53.59 | 55.67 | 83.31 | 72.36 |
Qwen3-8B-FR-Swap | 97.40 | 76.57 | 54.55 | 59.11 | 86.06 | 74.74 |
Qwen3-8B-FR-Pivot-EN | 94.52 | 78.37 | 54.65 | 62.78 | 84.88 | 75.04 |
Qwen3-8B-EN | 95.72 | 77.50 | 52.53 | 61.39 | 84.19 | 74.27 |
Benchmarks used:
lightonai/gpqa_diamond_multilinguallightonai/aime24_multilinguallightonai/aime25_multilinguallightonai/HumanEvalPlus_multilinguallightonai/mgsm-rev2CohereLabs/Global-MMLU-Litefrom transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "lightonai/Qwen3-8B-FR-Swap"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
messages = [{"role": "user", "content": "Résous : 24 × 17 = ?"}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
outputs = model.generate(inputs, max_new_tokens=32768, temperature=1.0, top_p=0.95, top_k=20)
print(tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True))
Recommended sampling: temperature=1.0, top_p=0.95, top_k=20, min_p=0.
If you find our work helpful, feel free to give us a cite.
@misc{lasbordes2026rethinking,
title = {Rethinking the Multilingual Reasoning Gap with Layer Swap},
author = {Lasbordes, Maxence and Chatelain, Amélie and Seddah, Djamé},
year = {2026},
eprint = {2605.26735},
archivePrefix= {arXiv},
primaryClass = {cs.CL}
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.