Benchmark
Accuracy (%) on four multiple-choice medical benchmarks (greedy decoding) and score (%) on HealthBench (all 5,000 conversations, Gemma-4-31B grader). See the paper for the full evaluation details, confidence intervals and the AutoMOOVE results.
Table with columns: Benchmark, Apertus-8B-Instruct, Apertus-8B-MeditronFO, Δ| Benchmark | Apertus-8B-Instruct | Apertus-8B-MeditronFO | Δ |
|---|
| MedMCQA | 47.8 | 52.0 | +4.2 |
| MedQA | 52.1 | 60.7 | +8.6 |
| PubMedQA | 74.3 | 71.4 | −2.9 |
| MedXpertQA | 11.8 | 15.1 | +3.3 |
| HealthBench | 26.0 | 42.1 | +16.1 |
| Average (5) | 42.39 | 48.26 | +5.87 |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizerimport torch model_id = "EPFLiGHT/Apertus-8B-MeditronFO"tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto",) messages = [ {"role": "user", "content": "A 62-year-old woman presents with a three-day history of dyspnea on exertion and a productive cough. What is the differential diagnosis?"},]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=8192, do_sample=True, temperature=0.7)print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
Training
- Base model: Apertus-8B-Instruct
- Corpus: Fully Open Meditron, 533,888 examples: Curated QA (195.5k, seven public medical QA datasets), Synthetic Curated QA (184.5k), Guidelines QA (129.8k, generated from 14,192 clinical practice guidelines) and Synthetic vignettes (24.0k, modelled on clinician-written MOOVE vignettes). Every answer is written by gpt-oss-120b with rejection sampling (pass@8; multiple-choice answers must match the gold label), with generation prompts co-authored by four clinicians
- Decontamination: two-stage n-gram decontamination against all evaluation benchmarks and the AutoMOOVE test set (4,197 rows removed)
- Recipe: 1 epoch, learning rate 1e-5 with cosine decay and 10% warmup, effective batch 64 sequences of 8,192 packed tokens, AdamW, seed 42
- Framework: Axolotl with DeepSpeed ZeRO-3, bf16
Full hyperparameters are in the training appendix of the paper.
The training was done on 2 nodes of 4 NVIDIA GH200 GPUs for 51 min (7 GPU-hours) on the Alps supercomputer of the CSCS Swiss National Supercomputing Centre.
Our trainings have a carbon neutral footprint as the CSCS data center is carbon neutral (CSCS energy efficiency).
Limitations & intended use
MeditronFO can produce text on a variety of topics, but the generated content may not always be factually accurate, logically consistent, or free from biases present in the training data. MeditronFO has been trained to be specialised for Medicine and is intended to be used for Medicine related tasks evaluation. These models should be used as assistive tools rather than definitive sources of information. Users should always verify important information and critically evaluate any generated content.
Citation
If you find MeditronFO useful in your research, please cite our preprint:
@misc{theimerlienhard2026fullyopenmeditronauditable, title = {Fully Open Meditron: An Auditable Pipeline for Clinical LLMs}, author = {Xavier Theimer-Lienhard and Mushtaha El-Amin and Fay Elhassan and Sahaj Vaidya and Victor Cartier-Negadi and David Sasu and Lars Klein and Mary-Anne Hartley}, year = {2026}, eprint = {2605.16215}, archivePrefix = {arXiv}, primaryClass = {cs.AI}, url = {https://arxiv.org/abs/2605.16215}}
Please use the community tab for any discussions or issue related to this model.
Questions related to the project can be sent to xavier.theimer-lienhard@epfl.ch or mary-anne.hartley@epfl.ch.