VerifiedarXiv:2606.1926623 min
LLMs · Domain adaptation

Trade-offs in Medical LLM Adaptation: An Empirical Study in French QA

On French medical multiple-choice questions, a cheap supervised fine-tune scores within about one accuracy point of a costlier recipe: continual pretraining followed by the same fine-tune, about four times the cost at 7B.

A controlled comparison of continual pretraining and supervised fine-tuning across 12 base models, with paired significance tests, a cost table, and three findings about how medical QA gets scored.

Explaining the paperTrade-offs in Medical LLM Adaptation: An Empirical Study in French QABelmadani, El Khettari, Ramisch, Bechet, Dufour, Favre · Aix-Marseille, Nantes & Grenoble Alpes · 2026 · arXiv:2606.19266 ↗

A hospital wants a medical assistant that answers in French. It has an open model, a few gigabytes of French medical text, half a million labeled question-answer pairs, and a GPU budget. This paper measures what each way of spending that budget buys.

Most open language models learn mostly from general-domain English. Adapting one to medicine in another language usually means one or both of two steps. Continual pretraining (CPT) keeps training the model on raw domain text with the same next-token objective it was pretrained with. Supervised fine-tuning (SFT) trains it on labeled examples: an instruction or question in, the correct response out. Both are known to help. How much each helps, and whether stacking them is worth the extra compute, had not been measured in a controlled way for a non-English medical setting.

The paper runs that measurement on French medical question answering. Five results organize this page: SFT gets nearly all of the multiple-choice gain at a fraction of the cost; CPT alone is unreliable; multi-answer exact match hides models that are one option off; overlap metrics and an LLM judge disagree about open-ended answers; and benchmarks machine-translated from English make models look more accurate and more confident than native French benchmarks do. Two of the paper's explanations, both about answer length, do not match its own tables; the open-ended section shows the numbers.

The experiment: 12 models, 3 strategies

The design is a grid. Three model families: Mistral-7B, Gemma-3-4B, and Llama-2 at both 7B and 13B, which gives four model lines. Each line comes in three initializations: the general pretrained base, the instruction-tuned chat release, and a medical variant someone already built (BioMistral-7B, MedGemma-4B, MediTron-7B, MedLlama-13B). That is 4 × 3 = 12 starting models. Each gets three adaptations, CPT, SFT, and CPT followed by SFT, so the study trains 36 models and evaluates 48 once the untouched bases are counted.

Varying the starting point separates the recipe from the starting model. If you adapt a single model and its score rises, you cannot tell how much of the result belongs to the recipe and how much to the model you happened to start from. With three initializations per family, a strategy that helps everywhere looks different from one that helps only an instruction-tuned base. The paper also notes the families differ in language coverage: Mistral and Gemma are described as explicitly multilingual, Llama-2 as primarily English-centric, which shows up in the cross-lingual results.

How continual pretraining and supervised fine-tuning differ

The two strategies train on different data and update different amounts of the model. CPT trains on NACHOS, specifically its small variant: about 4 GB of unlabeled French medical text crawled from the web, 25.3 million sentences sampled from the 7.4 GB full corpus. There are no questions and no answers in it, only domain prose. SFT trains on MedInjection-FR: 543,505 instruction-response pairs from its train and validation splits. About 83% are single-answer multiple-choice questions (MCQU), about 6% are multiple-choice questions with several correct options (MCQ), and about 11% are open-ended questions with a written reference answer (OEQA). Pick a strategy below to see which corpus feeds the model, how much of it trains, and what that cost on a 7B model:

Figure 1 · the three strategies
CPT trains on unlabeled domain text and updates every weight; SFT trains on labeled question-answer pairs and trains only a DoRA adapter, about 0.6% of the parameters; CPT+SFT runs CPT first and then SFT on the result. Costs are the 7B row of the paper's Table 14.

CPT runs the original pretraining objective, predicting each next token, on in-domain text. The model sees French clinical vocabulary, drug names and the phrasing of medical writing, and every weight moves to lower its loss on that text. The paper trains all parameters for three epochs with AdamW (learning rate 2e-5, or 1e-4 for Gemma). This is the decoder-model version of what Gururangan and colleagues called domain-adaptive pretraining in 2020; their experiments used masked-language encoders, but the procedure is the same second pass over a domain corpus.

SFT trains on the instruction-response format: each example is an instruction, a question with its options, and the labeled answer, formatted as one text. The loss is still next-token prediction; in the authors' sft.py the labels are a copy of the input tokens, so the prompt is not masked out and the model is trained on the instruction and the answer alike. What SFT changes is mostly behavior, for example answering with the option letters the grader expects. It runs ten epochs through a parameter-efficient adapter rather than through the full model. The adapter is DoRA (weight-decomposed low-rank adaptation), an extension of LoRA. LoRA freezes a pretrained weight matrix W0W_0 and learns a low-rank update BABA, with BB of shape dout×rd_{\text{out}}\times r and AA of shape r×dinr\times d_{\text{in}}. DoRA splits the updated matrix into a direction and a length per column, and learns the length separately:

W′=m⋅W0+BA∥W0+BA∥cW' = m \cdot \frac{W_0 + BA}{\lVert W_0 + BA \rVert_c}
(DoRA)

In this equation ∥⋅∥c\lVert\cdot\rVert_c is the norm of each column, so the fraction is the matrix with every column rescaled to unit length, and mm is a trainable vector with one length per column. W0W_0 stays frozen; BB, AA and mm train. The paper uses rank r=16r=16 on all seven projection matrices of every transformer layer (query, key, value, output, and the MLP's gate, up and down). For Mistral-7B those matrices are 4096 × 4096 (query, output), 1024 × 4096 (key, value), and 14336 × 4096 or 4096 × 14336 (MLP). A rank-16 pair costs 16(din+dout)16(d_{\text{in}}+d_{\text{out}}) weights, which sums to 1,310,720 per layer, plus 43,008 magnitude entries. Over 32 layers that is 43.3 million trainable weights against 7.24 billion in the model, 0.60%. The paper reports 0.602% for DoRA in its Table 4.

The obvious alternative is to fine-tune every weight on the labeled set too. The paper tried it on FrenchMedMCQA before settling on the design (Table 4):

methodtrainableexact matchpartial credit
full fine-tune100%0.11210.3143
VeRA0.0037%0.11530.3482
LoRA0.583%0.22110.4325
DoRA0.602%0.24350.4627

The full fine-tune more than halves the exact-match score. The paper reports that its training loss converged faster and its validation performance was worse, the usual signature of overfitting a narrow labeled set. So the split is deliberate: all weights for CPT, whose job is to absorb a large unlabeled corpus, and a 0.6% adapter for SFT, which also keeps SFT cheap. The whole recipe fits in a few lines:

# one cell of the grid: family x init, e.g. Mistral-7B x Instruct
base = load("Mistral-7B-Instruct-v0.1")

# CPT: next-token loss on unlabeled text, every weight trainable
cpt = train(copy(base), NACHOS_small,          # ~4 GB, 25.3M sentences
            loss=next_token, trainable="all",
            epochs=3, lr=2e-5, opt="AdamW", wd=0.01)

# SFT: next-token loss on the whole formatted example (instruction,
# question, options, answer); base frozen, only a DoRA adapter on
# q,k,v,o,gate,up,down trains
sft     = train(add_dora(copy(base), r=16, alpha=16, dropout=0.05),
                MedInjection_FR, epochs=10, lr=2e-5)
cpt_sft = train(add_dora(copy(cpt), r=16, alpha=16, dropout=0.05),
                MedInjection_FR, epochs=10, lr=2e-5)
# (Gemma uses lr=1e-4 for both stages)

for m in [base, cpt, sft, cpt_sft]:          # 4 models per cell, 48 total
    mcqa = evaluate(m, test_mcqa, decode="greedy",
                    allowed=answer_letters, shuffles=3)   # EM, Jaccard
    oeqa = evaluate(m, test_oeqa, decode="greedy")       # ROUGE-L, judge
    p    = paired_bootstrap(m, base, resamples=10_000)   # vs alpha/12

How the answers are scored

The test split of MedInjection-FR has 14,533 native French examples and 13,293 examples machine-translated from English benchmarks such as MedQA, MedMCQA and MMLU. Its multiple-choice part holds 17,622 single-answer questions and 4,691 multi-answer ones. All evaluation is zero-shot: the model sees the question and no worked examples.

Three evaluation choices keep the multiple-choice scores clean. Decoding is greedy and deterministic. In the main results the output vocabulary is also restricted to the valid option letters (constrained decoding), so a model cannot lose points by rambling or by inventing an option F; unconstrained greedy results are in the appendix. And each question is asked three times with its options shuffled, with the results aggregated, so a model that favors whatever sits in slot A does not get credit for it.

A single-answer question is scored by exact match over the N test questions:

EM=1N∑i=1N1 ⁣[y^i=yi]\text{EM} = \frac{1}{N}\sum_{i=1}^{N} \mathbf{1}\!\left[\hat{y}_i = y_i\right]
(1)

where yiy_i is the gold answer, y^i\hat{y}_i the prediction, and the indicator is 1 when they match. For a multi-answer question, yiy_i and y^i\hat{y}_i are sets of option letters and EM requires the two sets to be identical. Picking A and B when the gold set is A, B and C scores zero. So the paper adds a partial-credit score:

partial=1N∑i=1N∣yi∩y^i∣∣yi∪y^i∣\text{partial} = \frac{1}{N}\sum_{i=1}^{N} \frac{\lvert y_i \cap \hat{y}_i\rvert}{\lvert y_i \cup \hat{y}_i\rvert}
(2)

Per question this is intersection over union: options both sets share, divided by options either set contains. The paper calls it the "Hamming score", but the formula is the Jaccard index, also known as example-based accuracy (Godbole and Sarawagi, 2004). The classical Hamming score is a different number: it checks every option slot and also credits options correctly left out. Take five options, gold {A,B}\{A,B\}, prediction {A,C}\{A,C\}. One option is shared and three appear in either set, so Jaccard gives 1/31/3. Slot by slot, A is right, B is missed, C is an extra, and D and E are correctly omitted, so the Hamming score is 3/5=0.63/5 = 0.6. This page uses the paper's formula and calls it Jaccard. Toggle the gold and predicted options to compare the three scores:

Figure 2 · three ways to score one question
Each option is a hit, an extra, a miss, or a correct omission. Exact match is all or nothing; Jaccard (Eq. 2) counts hits over the union; slot accuracy, the classical Hamming score, also counts correct omissions. The presets show one swap, one missing option, and one extra.

Two consequences come up later. On a multi-answer question, missing one gold option and adding one wrong option both drop EM to zero while Jaccard stays between 0.5 and 0.67 in the presets. On a single-answer question the three scores agree, since there is only one option to get right. The paper's headline multiple-choice number, "aggregated EM", is the plain average of the MCQ EM and the MCQU EM.

The multiple-choice result: SFT gets most of the gain

Across the 12 starting models, the paper reports one ordering often enough to write it as a pattern:

Base  ≪  CPT  <  SFT  ≲  CPT+SFT\text{Base} \;\ll\; \text{CPT} \;<\; \text{SFT} \;\lesssim\; \text{CPT+SFT}

Take Mistral-7B General. Its aggregated EM is 14.44 untouched, 15.37 after CPT, 19.06 after SFT, and 19.21 after CPT+SFT. SFT adds 4.62 points for $361 of compute. Running CPT first adds another 0.15 points and $1,216, so the combined recipe costs 4.4 times as much as SFT alone for that 0.15. CPT+SFT ranks first in more configurations than any other strategy, but when it wins its margin over SFT rarely exceeds 1.3 points, and in some configurations SFT is ahead: by 3.12 points on Llama-7B Instruct (17.22 against 14.10) and by 1.44 on Mistral-7B Instruct.

The next figure plots each strategy by its training cost and its aggregated EM, using the paper's cost table for the model's size. Hollow points are the ones the paper's significance test could not separate from the base model. Switch the x axis to emissions to see the carbon side:

Figure 3 · accuracy per dollar and per kilogram of CO2e
SFT
Aggregated multiple-choice EM (Table 1) against training cost or emissions (Table 14). The dashed line is SFT's score. SFT sits high and far left; CPT+SFT is at most a point or so higher, and sometimes lower, at several times the cost; CPT alone is expensive and close to the base. A hollow point is not significantly different from its base model.

The cost ratio of CPT+SFT to SFT depends on model size because the two stages ran on different hardware configurations: about 3.2 times at 4B ($2,657 against $832), 4.4 times at 7B ($1,578 against $361), and 5.4 times at 13B ($7,473 against $1,391). The carbon ratio is larger than the cost ratio. At 7B, Table 14 gives 37,779 g CO2e for CPT+SFT against 4,883 g for SFT, about 7.7 times; at 4B and 13B it is about 5.4 times each. These dollar figures exclude the human effort of building half a million labeled pairs, which the paper lists as a limitation.

CPT on its own gives unreliable gains. Its change from the base model is not statistically significant for 8 of the 12 models (MedGemma, all three Llama-13B variants, Llama-7B General and Instruct, Mistral-7B General and Medical), and in some cells it drops below the base: Gemma General goes from 14.68 to 13.28. Reading domain text without any questions in it moves the model's knowledge but does not by itself teach it to answer a multiple-choice question in the expected format; the SFT stage does that.

For multi-answer EM, the best score in each family always comes from an instruction-tuned variant, and the paper calls instruction-tuned models the strongest baseline. For the aggregated score no single initialization wins everywhere, and a medical initialization on its own does not reliably help.

What the significance tests do and do not show

A one-point gap on a test set can come from sampling: a different draw of questions from the same distribution might reverse it. The paper checks each comparison with a paired percentile bootstrap. Both models answer the same questions, so each question yields a pair of outcomes. The test resamples the questions with replacement, 10,000 times, keeping each pair together, and recomputes the accuracy gap on every resample. The spread of those 10,000 gaps estimates how much the gap would move across test sets. If almost all of them fall on one side of zero, the gap is called significant. In the authors' bootstrap.py, with k the number of resampled gaps on the less populated side of zero, the two-sided p-value is:

p=min⁡ ⁣(1,  2 (k+1)B+1),B=10,000p = \min\!\left(1,\; \frac{2\,(k+1)}{B+1}\right), \qquad B = 10{,}000

For the aggregated score the script resamples the multi-answer and single-answer questions separately and averages the two means, mirroring how aggregated EM is defined.

The paper runs 12 strategy comparisons per family, and with many tests some will clear a 5% threshold by luck. The Bonferroni correction divides the threshold by the number of tests: a comparison counts only if its p-value is below 0.05/12≈0.00420.05/12 \approx 0.0042 (and 0.05/90.05/9 for the initialization comparisons). In the figure below, two simulated models answer N questions and disagree on a share of them; the slider sets the true gap. The histogram is the 10,000 bootstrap gaps, the teal band is the plain 95% interval, and the violet band is the wider interval the Bonferroni threshold implies:

Figure 4 · a paired bootstrap on a simulated test set
+1.3 pts
1,000
25%
With the default 1.3-point gap on 1,000 questions, the histogram straddles zero and the gap is not significant. Raise the question count to 17,622 (the size of the paper's single-answer test set) and the same gap usually becomes significant. Raising the disagreement rate widens the histogram. Draw a new test set to see how much the observed gap itself moves.

A real case from the paper's Appendix J sits between the two bands. For Llama-13B General, CPT against its base has a 95% interval of +0.25 to +2.02 points, entirely above zero, and a p-value of 0.0106. That is below 0.05 and above 0.0042, so after the correction the paper counts it as not significant. The appendix tables are full of p = 0.0002 because that is the formula's floor: with k = 0 it gives 2/10,001.

These tests compare each adapted model with its base model, and CPT+SFT with CPT. Appendix J has no direct test of CPT+SFT against SFT, so the tests cannot say whether CPT+SFT's edge over SFT is real. Against the base, SFT or CPT+SFT fails to reach significance in exactly two configurations: on Gemma-4B Instruct neither does, and on Llama-7B Instruct CPT+SFT does not. The paper's recommendation for SFT therefore rests on cost: CPT+SFT's improvements over SFT are, in the conclusion's words, "typically small and not consistently statistically significant", and they come at 3.2 to 5.4 times the price.

Why multi-answer exact match is so low

Multi-answer EM in Table 1 runs from 0.09% to 7.77%. Read alone, that says the models almost never get these questions right. The Jaccard score from Eq. (2) gives a different picture. The figure shows both for the Mistral family:

Figure 5 · exact vs partial credit
CPT
Multi-answer questions, Mistral family. The exact-set match stays in the single digits; the Jaccard overlap is several times higher, between 22% and 36% once the model is adapted. The readout gives the near-miss rate for the selected model.

For the Mistral rows, Jaccard is between 3.4 times EM (Instruct SFT, 23.42 against 6.80) and 14.6 times EM (General base, 5.40 against 0.37); most rows fall between 4 and 9 times. The untouched general base is the low outlier on both scores. A high Jaccard with a low EM means the model usually has most of the gold options and misses the exact set by one omission or one extra.

The paper's error analysis measures this directly with a near-miss rate: the share of questions where every gold option is ranked among the model's top kk options (with kk the number of gold options) but the predicted set is still wrong. Across the twelve Mistral variants it is 0.173 to 0.256 on multi-answer questions, roughly one question in five, and adaptation does not lower it. CPT+SFT widens the probability gap between gold and non-gold options, so the ranking gets more confident, but greedy decoding still has to commit to a set of the right size, and the near-misses happen at that step.

Open-ended answers: overlap metrics vs the LLM judge

Open-ended questions have a reference answer but no single right string, so they need a different kind of score. The paper reports two kinds. Overlap metrics compare the generated answer to the reference: ROUGE-L scores the longest common subsequence of words, and BERTScore-F1 matches tokens by the similarity of their contextual embeddings from a BERT-style encoder. The second kind is an LLM judge: MedGemma-27B reads each answer and rates it. The authors chose it because it was the most stable judge in an earlier agreement study against physicians on 500 open-ended items.

The two kinds of score often pick different winners:

Figure 6 · overlap metric vs the judge
Top row, ROUGE-L or BERTScore-F1; bottom row, the judge; each row scaled to its own best, with the winner ringed. For Llama-13B General, CPT has the top ROUGE-L and the lowest judge score.

Counting from Table 1, ROUGE-L and the judge name different best strategies in 7 of the 12 configurations. The judge's pick is CPT+SFT in 6, the base model in 3, CPT in 3, and SFT in none. CPT is the strategy that most consistently raises ROUGE-L and BERTScore, and SFT often lowers them. Very few of the open-ended differences are significant: against the base, CPT is significant in three cases, SFT in two (all on 4B models), and CPT+SFT in none. When the judge's differences between initializations are significant, the medical initializations are the ones that lose.

The paper explains the split with answer length (Sec. 7.2): CPT models write longer answers, and recall-oriented overlap metrics reward longer answers. Its own Table 11 lists the mean and median answer length of every model, so the explanation can be checked. Plot length against each score:

Figure 7 · answer length against each score
Each point is one of the 48 models: mean answer length in words (Table 11) against the chosen score (Table 1). Longer answers go with lower ROUGE-L and BERTScore, and length is unrelated to the judge score. Click a point for its model, mean and median length, and score.

The tables do not support the verbosity explanation for CPT. A CPT model writes shorter answers than its base in 9 of the 12 configurations. The Llama-13B General case from the previous figure is the extreme: the CPT model averages 26 words with a median of 9, against 168 for the base, and it has the highest ROUGE-L in the block. Across all 48 models, the correlation between mean length and ROUGE-L is −0.83, with BERTScore −0.66, and with the judge 0.04. The length claim holds in a narrower form: CPT+SFT writes longer answers than SFT in 10 of 12 configurations. The paper's second claim, that concise answers align with higher judge scores, also fails on the extreme cases. The shortest answers in the table come from Mistral-7B, Llama-7B and Llama-13B Instruct after SFT, 17 to 20 words, and in each of those three blocks SFT gets the lowest judge score of the four strategies. Short answers scoring well on ROUGE-L would fit a reference set of short answers, since ROUGE-L's F-score penalizes extra words through precision, but the paper does not report reference lengths, so the reason for CPT's overlap scores remains open.

Neither kind of score substitutes for a clinician. Overlap metrics penalize a correct answer that is phrased differently from the reference. LLM judges have documented biases toward answer position, length, and answers that resemble their own output (Zheng et al., 2023). This page adds a caveat the paper does not raise: the judge is a Gemma-family model, and the models it grades include Gemma-3-4B and MedGemma-4B. The authors base their recommendations on the multiple-choice results and treat the open-ended trends cautiously, partly because open-ended questions are only about 11% of the SFT data.

French training, English gains

Several of the test benchmarks exist in both languages: the English original and its French machine translation. That allows a direct check of what French-only adaptation does in English. Adapting on French medical data improves the native English single-answer benchmarks too, and sometimes by more than it improves their French translations, which the paper interprets as cross-lingual transfer of medical knowledge.

Which language scores higher depends on the family. The bars show EM on the French translation and on the English original; under each pair is the English lead (English minus French) at the base model and after the selected strategy:

Figure 8 · French vs English
SFT
Single-answer EM on the French translation and the native English original (Table 12, constrained decoding). Under each pair, the English lead in points at the base model and after the selected strategy.

Mistral scores higher on the French translations than on English before and after every adaptation, with the differences statistically significant. Gemma and Llama start ahead in English and stay ahead, and for them the adaptation gains are often larger in English, so the English lead grows. Llama-13B Instruct is the clearest case: 21.68 French and 23.60 English at base, a 1.9-point lead, then 30.10 French and 46.99 English after SFT, a 16.9-point lead. Llama-7B is the exception at the base level: all three of its bases score slightly higher in French (General 25.48 against 25.17, Instruct 24.34 against 23.44, Medical 24.19 against 23.68), and the paper reports the difference as not significant (Table 13 marks it so for the General and Medical bases). After SFT, English overtakes for all three; after CPT the Instruct and Medical models still score slightly higher in French, as does the Instruct model after CPT+SFT. Several cells sit around 23 to 25% in both languages, and some of those models score 0.00 in both languages under unconstrained greedy decoding (Llama-7B and Llama-13B Instruct at base), so their constrained scores mostly reflect forced picks among the options; a "lead" there carries little information. The paper reads the pattern as Mistral encoding French better while Gemma and Llama have stronger English representations.

Translated benchmarks inflate accuracy and confidence

Many "French" medical benchmarks are English benchmarks run through machine translation. The paper tests whether that substitution is neutral by comparing two single-answer sets of similar size: MediQAl, written in French (4,343 questions), and MedMCQA, translated from English (4,183 questions). The questions differ, so the comparison is between benchmarks, but every model scores higher on the translated set, and most also become more confident. The paper publishes these results only as scatter plots; the figure below re-draws its points:

Figure 9 · translated minus native, per model
Each point is one of the 48 models. x: EM on the translated benchmark minus EM on the native one. y: the change in predictive entropy, or in the probability the model puts on its chosen option for questions it gets wrong. Shaded is the direction the paper reports. Positions read off the paper's Figures 3 and 5.

Every model scores higher on the translated benchmark, by 2.9 to 16.2 points. By our reading of the plots, entropy over the answer options falls for 45 of the 48 models, so their predictions are more peaked, and for 39 of 48 the probability on a wrong chosen answer rises. Higher accuracy alone could mean the translated test is easier. Higher confidence on the questions the model still gets wrong points to a calibration change as well, in the overconfident direction. A model validated only on translated benchmarks gets an over-optimistic estimate of how it will do on French written by French clinicians, for accuracy and for how much its confidence can be trusted. A plausible mechanism, which the paper does not test, is that translated questions keep the structure and phrasing of their English source, which is closer to the English-heavy text the models were pretrained on.

Which adaptation strategy to use

The paper's guidelines are organized by the data you have:

Three evaluation findings hold whichever strategy you pick. Multi-answer exact match understates models that are usually one option off. Overlap metrics and an LLM judge rank open-ended answers differently, and neither tracks answer length the way the paper says. Translated benchmarks inflate both accuracy and confidence. The study is limited to medicine and French, to zero-shot evaluation, and to CPT and SFT (no preference optimization or reinforcement learning), and its check of whether NACHOS was already in the models' pretraining data was inconclusive.

Provenance Verified against primary literatureHow we verify
Belmadani et al. (2026), Sec. 3, App. C-EThe grid (3 families, 3 initializations, 3 strategies), CPT on NACHOS small (full parameters, 3 epochs), SFT on 543,505 MedInjection-FR pairs (DoRA r = 16, alpha = 16, dropout 0.05, QKVOGUD, 10 epochs), and the full-FT vs PEFT pilot of Table 4.
Belmadani et al. (2026), Table 1, App. JAll MCQA and OEQA scores on this page are constrained-decoding rows of Table 1. Significance: paired percentile bootstrap, 10,000 resamples, two-sided, Bonferroni alpha = 0.05/12 (strategies) and 0.05/9 (initializations).
Belmadani et al. (2026), Table 11Answer lengths behind the length figure. Correlations (r = -0.83 with ROUGE-L, -0.66 with BERTScore-F1, 0.04 with the judge, over 48 models) are computed by this page from Tables 1 and 11.
Belmadani et al. (2026), Figures 3 and 5The translated-vs-native scatter has no table; its 48 points were read off the two published plots by dot detection (about +/- 0.005 per value). By that reading entropy falls for 45 of 48 models, so "systematically" in Sec. 6 has three exceptions.
Belmadani et al. (2026), Table 14Cost and emissions per size, CPT+SFT = CPT + SFT. 7B: $1,216.42 + $361.12; 32,896 + 4,883 g CO2e.
MedAdapt code (github.com/ikram28/MedAdapt)SFT-Training/sft.py lines 103-121: labels are a copy of the input ids and the collator is DataCollatorForLanguageModeling(mlm=False), so SFT loss covers the whole formatted example. Evaluation/bootstrap.py lines 271-312: p = min(1, 2(k+1)/(B+1)) with k the smaller count of resampled gaps on either side of zero; aggregated EM resamples MCQ and MCQU separately.
Liu et al. (2024), DoRAW' = m (W0 + BA) / ||W0 + BA||_c, column-wise norm; m, B, A trainable, W0 frozen. This is the method PEFT runs with use_dora=True.
Labrak et al. (2023), NACHOSThe French medical web corpus; the paper uses its ~4 GB small variant for CPT, following the setup of Labrak et al. (2024b).
Gururangan et al. (2020)Domain-adaptive pretraining, the encoder-era ancestor of CPT; cited by the paper.
Zheng et al. (2023)Position, verbosity and self-enhancement biases of LLM judges. Background for this page's judge caveat; the paper does not cite it or raise self-preference.
correctionFour places where this page departs from the paper's text. (1) Verbosity: Sec. 7.2 says CPT models "systematically produce longer responses" and that this explains their ROUGE-L and BERTScore wins. The paper's own Table 11 shows the reverse for CPT alone: its mean answer is shorter than the base model's in 9 of 12 configurations (Llama-13B General: 26 words, median 9, against 168 for the base, while posting the top ROUGE-L of 14.12), and over all 48 models length correlates negatively with ROUGE-L (r = -0.83). Only CPT+SFT runs longer than SFT (10 of 12). Sec. 7.2 also says concise answers align with higher judge scores; the shortest answers in the table (instruction-tuned SFT, 17 to 20 words) get the lowest judge score in three of four Instruct blocks. (2) Carbon: Sec. 4.1 says CPT+SFT brings "a fourfold increase in carbon emissions" on 7B; Table 14 gives 37,779 vs 4,883 g CO2e, about 7.7 times. Fourfold is the cost ratio (4.4 times). (3) The metric the paper calls the "Hamming score" (and "Hamming Distance" in Table 4) is printed as |gold ∩ pred| / |gold ∪ pred|, the Jaccard index; the classical Hamming score also credits correct omissions and comes out higher. (4) The paper describes DoRA as weight-decomposed low-rank adaptation (Liu et al., 2024) and runs PEFT's use_dora, but its reference list cites Mao et al. (2024), a different method with the same acronym.

Questions you might still have

?

If CPT+SFT usually scores highest, why does the paper recommend SFT?
Because the gain is small and the cost is not. When CPT+SFT wins, its margin over SFT rarely exceeds 1.3 points, and on Llama-7B Instruct and Mistral-7B Instruct SFT is ahead. CPT+SFT costs 3.2 to 5.4 times as much as SFT depending on model size, and its emissions are 5.4 to 7.7 times higher. The paper also never tests CPT+SFT against SFT directly, so the recommendation is a cost judgment, not a finding that the two are statistically equal.

?

Why train the full model for CPT but only an adapter for SFT?
CPT has 4 GB of text to absorb, and the paper follows earlier French biomedical work in training every weight for it. For SFT the authors compared methods first: on FrenchMedMCQA a full fine-tune scored 0.1121 exact match against 0.2435 for a DoRA adapter training 0.602% of the weights, with faster-converging training loss and worse validation results, which is the pattern of overfitting.

?

Is "Hamming score" the right name for the paper’s multi-answer metric?
No. The formula it prints, intersection over union of the predicted and gold option sets, is the Jaccard index (example-based accuracy). The classical Hamming score checks every option slot and also credits options correctly left out, so it comes out higher: for gold {A, B} and prediction {A, C} out of five options, Jaccard is 1/3 and the Hamming score is 0.6. The metric itself is a standard partial-credit score.

?

Do CPT models really score well on ROUGE-L because they write longer answers?
The paper says so, but its own length table says otherwise. CPT models write shorter answers than their base model in 9 of 12 configurations, and across all 48 models answer length is negatively correlated with ROUGE-L (r = -0.83) and BERTScore (r = -0.66). The longer-answers claim holds only for CPT+SFT compared with SFT. Why CPT scores well on overlap metrics is not settled by the paper.

?

Does the LLM judge prefer short answers?
Not by the paper’s numbers. Length and judge score are uncorrelated across the 48 models (r = 0.04), and the shortest answers in the study, from instruction-tuned models after SFT at 17 to 20 words, get the lowest judge score in three of the four Instruct blocks. The judge’s top strategy is CPT+SFT in 6 of 12 configurations and SFT in none.

?

How can training only on French improve English benchmarks?
The paper attributes it to cross-lingual transfer of medical knowledge. One explanation, which the paper does not test, is that these models do not store that knowledge separately per language, so French medical training also changes answers to the English version of the same question. For Gemma and Llama-2 the English gains are often larger than the French ones: Llama-13B Instruct goes from a 1.9-point English lead at base to a 16.9-point lead after SFT. Mistral scores higher on the French translations throughout.

?

Why do translated benchmarks make models look better?
All 48 models score 2.9 to 16.2 points higher on a translated benchmark than on a native French one of similar size, and most become more confident, including on questions they get wrong. The paper measures the effect but not its cause; one hypothesis is that translated questions keep the phrasing of their English source. Either way a model validated on translated tests gets an over-optimistic estimate of its accuracy on native clinical French.

Footnotes & further reading

  1. The paper: Belmadani, El Khettari, Ramisch, Bechet, Dufour, Favre, Trade-offs in Medical LLM Adaptation: An Empirical Study in French QA (2026). Code and data: github.com/ikram28/MedAdapt.
  2. Continual / domain-adaptive pretraining: Gururangan et al., Don't Stop Pretraining (2020).
  3. The parameter-efficient fine-tune: Hu et al., LoRA (2021), and DoRA, Liu et al., Weight-Decomposed Low-Rank Adaptation (ICML 2024). A related quantized variant: QLoRA.
  4. The multi-label metric the paper calls "Hamming score" is the Jaccard index / example-based accuracy of Godbole and Sarawagi, Discriminative Methods for Multi-labeled Classification (2004).
  5. ROUGE-L: Lin, ROUGE (2004). BERTScore: Zhang et al., BERTScore (2019).
  6. LLM-as-a-judge and its biases: Zheng et al., Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (2023).
  7. Significance testing: the paper cites Jeong et al. (2024) for its percentile bootstrap. The paired bootstrap for NLP comparisons goes back to Koehn, 2004. Calibration and confidence: Guo et al., On Calibration of Modern Neural Networks (2017).