Congolese Swahili → French translation · WHO DRC Ebola interviews · 15 October 2026

Which models translate Congolese Swahili into French best?

Claude Opus 5.5 (low effort) · retrieval 5-shot translates best (61.4 chrF++), out of 44 systems on 2,000 held-out sentences. Showing each model the five most similar training pairs helps every model; glossaries hurt. A 12B open model fine-tuned on the training pairs ties Sonnet 4.6. These are clean written sentences, not interview speech: test on ebola-asr's references before choosing.

Best overall
61.4
Claude Opus 5.5 (low effort) · retrieval 5-shot
Cheapest within 6 points
$0.22
DeepSeek V3.2 · retrieval 5-shot · 55.7 per 1k sentences
Best open-weight
58.2
Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shot
Best dedicated MT
50.1
NLLB-200 3.3B

Recommendation

The shortlist for ebola-asr §B6. Every pick uses retrieval 5-shot: the 5 most similar train pairs as examples, which added +1.3 to +4.4 chrF++ on every model tested. Do not use: glossary injection (−0.1 to −0.8 alone; −0.9 to −1.7 on top of retrieval), or naming the dialect in the prompt (no gain).

Role / systemchrF++COMET$/1k sent.Why
Quality pick (API)
Claude Opus 5.5 (low effort) · retrieval 5-shot
61.484.2$3.21Best on chrF++ and COMET. Low effort costs nothing measurable and halves the bill; set the output ceiling to ≥4,096 tokens.
Value pick (API)
Claude Sonnet 4.6 · retrieval 5-shot
57.982.5$1.57Matches zero-shot Opus 5.5 at about half its cost.
Low-cost pick (API, open weights)
DeepSeek V3.2 · retrieval 5-shot
55.781.1$0.22About 4% of the leader's cost; the weights are public, so it can also be self-hosted.
Self-hosted pick
Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shot
58.282.8GPU hoursOur LoRA fine-tune on the train split: ties Sonnet 4.6 + retrieval (p = 0.40) and fits one GPU. The in-domain gain will overstate the gain on interview speech, so test on ebola-asr's references first.

All systems on the test split

44 systems × 2,000 sentences, sorted by normalised chrF++. Intervals are per system; whether two systems differ needs the paired tests in RESULTS.md, not overlapping bars.

Frontier APIOpen-weight LLMDedicated MT
30405060chrF++ (normalised), 95% bootstrap intervalClaude Opus 5.5 (low effort) · retrieval 5-shot61.4Claude Opus 5.5 (low effort) · random 5-shot59.7Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shot58.2Claude Sonnet 4.6 · retrieval 5-shotClaude Opus 5.5 (low effort) · zero-shotClaude Opus 5.5 (low effort) · zero-shot, plain 'Swahili'Claude Opus 5.5 · zero-shotGPT-6 Astra · zero-shotGemma 4 12B fine-tuned (LoRA, ours) · zero-shotGemma 4 31B · retrieval 5-shotClaude Sonnet 4.6 · random 5-shotDeepSeek V3.2 · retrieval 5-shotClaude Sonnet 4.6 · zero-shot, plain 'Swahili'Gemma 4 31B · retrieval + glossaryLlama 4 Maverick · retrieval 5-shotClaude Sonnet 4.6 · zero-shotDeepSeek V3.2 · retrieval + glossaryGemma 4 12B · retrieval 5-shotGemma 4 31B · zero-shotLlama 4 Maverick · retrieval + glossaryClaude Sonnet 5.5 · zero-shotGemma 4 31B · glossaryDeepSeek V3.2 · random 5-shotDeepSeek V3.2 · zero-shot, plain 'Swahili'DeepSeek V3.2 · zero-shotGemma 4 12B · retrieval + glossaryDeepSeek V3.2 · glossaryGemma 4 26B-A4B · zero-shotLlama 4 Maverick · zero-shotLlama 4 Maverick · glossaryNLLB-200 3.3BGemma 4 12B · zero-shotTranslateGemma 27BNLLB-200 1.3BGemma 4 12B · glossaryGemma 4 E4B · zero-shotTranslateGemma 12BNLLB-200 600MMADLAD-400 10BMADLAD-400 3BGemma 4 E2B · zero-shotTranslateGemma 4BSeamlessM4T v2opus-mt swc-fr32.7
Table view
#SystemGroupchrF++95% CICOMET-22BLEUFailure %
1Claude Opus 5.5 (low effort) · retrieval 5-shotFrontier API61.460.4–62.384.243.30.4
2Claude Opus 5.5 (low effort) · random 5-shotFrontier API59.758.7–60.783.641.30.3
3Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shotOpen-weight LLM58.257.2–59.282.839.60.0
4Claude Sonnet 4.6 · retrieval 5-shotFrontier API57.957.0–58.982.537.80.0
5Claude Opus 5.5 (low effort) · zero-shotFrontier API57.856.8–58.882.738.20.5
6Claude Opus 5.5 (low effort) · zero-shot, plain 'Swahili'Frontier API57.756.7–58.782.338.40.2
7Claude Opus 5.5 · zero-shotFrontier API57.656.6–58.582.738.00.5
8GPT-6 Astra · zero-shotFrontier API57.356.5–58.282.833.00.5
9Gemma 4 12B fine-tuned (LoRA, ours) · zero-shotOpen-weight LLM57.056.0–57.982.438.00.0
10Gemma 4 31B · retrieval 5-shotOpen-weight LLM56.155.2–57.082.035.30.0
11Claude Sonnet 4.6 · random 5-shotFrontier API55.854.9–56.781.335.10.1
12DeepSeek V3.2 · retrieval 5-shotOpen-weight LLM55.754.8–56.681.135.40.0
13Claude Sonnet 4.6 · zero-shot, plain 'Swahili'Frontier API55.254.2–56.180.534.00.1
14Gemma 4 31B · retrieval + glossaryOpen-weight LLM55.154.2–56.081.434.10.0
15Llama 4 Maverick · retrieval 5-shotOpen-weight LLM54.853.8–55.780.934.60.1
16Claude Sonnet 4.6 · zero-shotFrontier API54.653.6–55.580.433.20.1
17DeepSeek V3.2 · retrieval + glossaryOpen-weight LLM54.153.2–55.080.133.10.0
18Gemma 4 12B · retrieval 5-shotOpen-weight LLM53.953.0–54.879.732.70.1
19Gemma 4 31B · zero-shotOpen-weight LLM53.952.9–54.780.332.80.0
20Llama 4 Maverick · retrieval + glossaryOpen-weight LLM53.852.9–54.780.432.90.0
21Claude Sonnet 5.5 · zero-shotFrontier API53.652.6–54.580.227.03.8
22Gemma 4 31B · glossaryOpen-weight LLM53.252.4–54.180.031.50.0
23DeepSeek V3.2 · random 5-shotOpen-weight LLM53.152.2–54.079.432.10.0
24DeepSeek V3.2 · zero-shot, plain 'Swahili'Open-weight LLM52.951.9–53.778.632.70.0
25DeepSeek V3.2 · zero-shotOpen-weight LLM52.551.6–53.578.532.10.0
26Gemma 4 12B · retrieval + glossaryOpen-weight LLM52.251.3–53.178.230.70.0
27DeepSeek V3.2 · glossaryOpen-weight LLM51.951.1–52.877.930.60.0
28Gemma 4 26B-A4B · zero-shotOpen-weight LLM51.851.0–52.778.729.90.0
29Llama 4 Maverick · zero-shotOpen-weight LLM50.449.4–51.277.929.10.1
30Llama 4 Maverick · glossaryOpen-weight LLM50.349.4–51.177.628.30.3
31NLLB-200 3.3BDedicated MT50.149.2–51.077.029.80.0
32Gemma 4 12B · zero-shotOpen-weight LLM50.149.2–51.076.928.30.0
33TranslateGemma 27BDedicated MT49.548.7–50.479.124.00.0
34NLLB-200 1.3BDedicated MT49.348.4–50.176.928.80.0
35Gemma 4 12B · glossaryOpen-weight LLM49.248.4–50.076.027.00.0
36Gemma 4 E4B · zero-shotOpen-weight LLM48.347.5–49.275.327.20.0
37TranslateGemma 12BDedicated MT47.246.3–48.078.024.30.1
38NLLB-200 600MDedicated MT46.445.6–47.374.425.30.1
39MADLAD-400 10BDedicated MT45.244.1–46.272.925.30.6
40MADLAD-400 3BDedicated MT44.843.9–45.872.924.30.2
41Gemma 4 E2B · zero-shotOpen-weight LLM43.442.4–44.371.122.42.1
42TranslateGemma 4BDedicated MT40.439.6–41.273.117.70.1
43SeamlessM4T v2Dedicated MT37.036.3–37.857.115.40.6
44opus-mt swc-frDedicated MT32.732.0–33.360.312.50.1

Quality against cost (Bedrock-hosted systems)

The line joins the Pareto frontier: no other system is both cheaper and better. GPU-hosted systems are left out (their cost is droplet hours, not tokens).

zero-shotretrieval 5-shotother prompting
$0.01$0.02$0.05$0.1$0.2$0.5$1$2$5$105052.55557.56062.5cost per 1,000 sentences (USD, log scale; billed tokens × unconfirmed table prices)chrF++ (normalised)Llama 4 Maverick · zero-shotDeepSeek V3.2 · zero-shot, plain 'Swahili'Llama 4 Maverick · retrieval 5-shotDeepSeek V3.2 · retrieval 5-shotClaude Sonnet 4.6 · retrieval 5-shotClaude Opus 5.5 (low effort) · retrieval 5-shot
Table view
SystemPromptingchrF++$ / 1k sentencesOn frontier
Llama 4 Maverick · zero-shotzero-shot50.40.05yes
Llama 4 Maverick · glossaryother prompting50.30.06
DeepSeek V3.2 · zero-shot, plain 'Swahili'other prompting52.90.08yes
Llama 4 Maverick · retrieval 5-shotretrieval 5-shot54.80.09yes
DeepSeek V3.2 · zero-shotzero-shot52.50.10
Llama 4 Maverick · retrieval + glossaryother prompting53.80.11
DeepSeek V3.2 · glossaryother prompting51.90.14
DeepSeek V3.2 · retrieval 5-shotretrieval 5-shot55.70.22yes
DeepSeek V3.2 · random 5-shotother prompting53.10.25
DeepSeek V3.2 · retrieval + glossaryother prompting54.10.26
Claude Sonnet 4.6 · zero-shot, plain 'Swahili'other prompting55.20.70
Claude Sonnet 4.6 · zero-shotzero-shot54.60.78
Claude Sonnet 5.5 · zero-shotzero-shot53.61.33
Claude Sonnet 4.6 · retrieval 5-shotretrieval 5-shot57.91.57yes
Claude Sonnet 4.6 · random 5-shotother prompting55.81.75
Claude Opus 5.5 (low effort) · zero-shot, plain 'Swahili'other prompting57.72.50
Claude Opus 5.5 (low effort) · zero-shotzero-shot57.82.62
Claude Opus 5.5 (low effort) · retrieval 5-shotretrieval 5-shot61.43.21yes
Claude Opus 5.5 (low effort) · random 5-shotother prompting59.73.49
Claude Opus 5.5 · zero-shotzero-shot57.64.71
GPT-6 Astra · zero-shotzero-shot57.36.70

What each prompting technique adds

Change in normalised chrF++ against the same model's zero-shot run, paired on the same 2,000 sentences. * = the 95% interval excludes 0. Gray = within ±0.25.

lossgain
zero-shot, plain 'Swahili'random 5-shotglossaryretrieval 5-shotretrieval + glossaryClaude Opus 5.5 (low effort)-0.1+1.9*not run+3.6*not runGemma 4 12B fine-tuned (LoRA, ours)not runnot runnot run+1.3*not runClaude Sonnet 4.6+0.6*+1.3*not run+3.4*not runGemma 4 31Bnot runnot run-0.6*+2.2*+1.3*DeepSeek V3.2+0.3+0.6*-0.6+3.2*+1.6*Llama 4 Mavericknot runnot run-0.1+4.4*+3.5*Gemma 4 12Bnot runnot run-0.8*+3.8*+2.2*
Table view
ModelTechniqueΔ chrF++95% CIp (bootstrap)
Claude Opus 5.5 (low effort)retrieval 5-shot+3.60+2.96 to +4.260.0000
Claude Opus 5.5 (low effort)random 5-shot+1.87+1.34 to +2.440.0000
Gemma 4 12B fine-tuned (LoRA, ours)retrieval 5-shot+1.27+0.69 to +1.820.0000
Claude Sonnet 4.6retrieval 5-shot+3.38+2.82 to +3.990.0000
Claude Opus 5.5 (low effort)zero-shot, plain 'Swahili'-0.12-0.54 to +0.280.5220
Gemma 4 31Bretrieval 5-shot+2.25+1.71 to +2.740.0000
Claude Sonnet 4.6random 5-shot+1.26+0.82 to +1.710.0000
DeepSeek V3.2retrieval 5-shot+3.18+2.55 to +3.830.0000
Claude Sonnet 4.6zero-shot, plain 'Swahili'+0.63+0.31 to +0.970.0000
Gemma 4 31Bretrieval + glossary+1.25+0.70 to +1.820.0000
Llama 4 Maverickretrieval 5-shot+4.42+3.74 to +5.090.0000
DeepSeek V3.2retrieval + glossary+1.59+0.92 to +2.290.0000
Gemma 4 12Bretrieval 5-shot+3.85+3.22 to +4.470.0000
Llama 4 Maverickretrieval + glossary+3.48+2.80 to +4.250.0000
Gemma 4 31Bglossary-0.64-1.08 to -0.220.0040
DeepSeek V3.2random 5-shot+0.60+0.15 to +1.100.0100
DeepSeek V3.2zero-shot, plain 'Swahili'+0.35-0.05 to +0.720.0880
Gemma 4 12Bretrieval + glossary+2.17+1.50 to +2.830.0000
DeepSeek V3.2glossary-0.58-1.12 to +0.010.0520
Llama 4 Maverickglossary-0.10-0.68 to +0.470.6880
Gemma 4 12Bglossary-0.82-1.39 to -0.270.0060

Where the systems differ

Corpus chrF++ (normalised) on slices of the test split. Sentences per slice: swc < 25 chars 328, 25–50 849, 50–80 471, ≥ 80 chars 352, kit5k 403, kit10k 794, kit15k 803, questions 160, with negation 429, with a number 124, with a name 294, French loanwords 200, vous 211. Long sentences are where the gap between systems is widest — and interview speech is long.

lowerhigher chrF++
swc < 25 chars25–5050–80≥ 80 charskit5kkit10kkit15kquestionswith negationwith a numberwith a nameFrench loanwordsvousClaude Opus 5.5 (low effort) · retrieval 5-shot56616262646061586368656557Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shot57606056595859575962616159Claude Sonnet 4.6 · retrieval 5-shot54586057595758545864626156Claude Opus 5.5 (low effort) · zero-shot52576058615658535965636152GPT-6 Astra · zero-shot52576057595658525863616050Gemma 4 12B fine-tuned (LoRA, ours) · zero-shot54585955595657525763616054Gemma 4 31B · retrieval 5-shot54575755575557545762605853DeepSeek V3.2 · retrieval 5-shot52575755575556535761605954Llama 4 Maverick · retrieval 5-shot51565654555455535661585854NLLB-200 3.3B44505250534949455056555354TranslateGemma 27B45505249514950465056545350
Table view
Systemswc < 25 chars25–5050–80≥ 80 charskit5kkit10kkit15kquestionswith negationwith a numberwith a nameFrench loanwordsvous
Claude Opus 5.5 (low effort) · retrieval 5-shot55.861.462.461.863.959.861.558.362.667.965.264.857.4
Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shot57.060.459.755.758.957.558.656.759.262.360.960.858.9
Claude Sonnet 4.6 · retrieval 5-shot54.458.059.557.459.557.057.954.257.664.462.361.055.7
Claude Opus 5.5 (low effort) · zero-shot52.256.659.858.360.855.658.153.058.665.062.961.051.8
GPT-6 Astra · zero-shot51.756.959.657.058.655.758.251.858.263.461.259.649.9
Gemma 4 12B fine-tuned (LoRA, ours) · zero-shot54.058.158.655.558.755.757.152.557.163.160.660.354.4
Gemma 4 31B · retrieval 5-shot53.557.257.354.957.454.656.854.156.861.659.958.353.2
DeepSeek V3.2 · retrieval 5-shot52.157.056.754.656.654.856.153.157.061.160.058.654.0
Llama 4 Maverick · retrieval 5-shot51.456.255.553.855.454.454.852.955.660.658.158.453.9
NLLB-200 3.3B44.250.151.650.152.949.348.945.550.456.455.052.854.1
TranslateGemma 27B45.449.551.948.650.748.849.546.450.255.654.252.750.4

Where retrieval helps

Change in normalised chrF++ from retrieval 5-shot against the same model's zero-shot run, paired on each slice's sentences. * = the 95% interval excludes 0. For every model except Opus 5.5 the gain shrinks on long sentences (the short-vs-long difference is significant for Sonnet 4.6, DeepSeek V3.2 and Gemma 4 31B; RESULTS.md), and on sentences that mix in French it is small or nil for both Gemma 4 models. Interview speech is both long and code-switched.

swc < 25 chars25–5050–80≥ 80 charsquestionswith negationwith a numberwith a nameFrench loanwordsvousClaude Opus 5.5 (low effort)+3.6*+4.7*+2.6*+3.5*+5.3*+4.0*+2.9*+2.3*+3.8*+5.7*Gemma 4 12B fine-tuned (LoRA, ours)+3.0*+2.3*+1.2+0.3+4.2*+2.1*-0.8+0.4+0.5+4.5*Claude Sonnet 4.6+6.5*+4.2*+2.9*+2.6*+5.2*+3.3*+2.2*+2.7*+3.0*+5.8*Gemma 4 31B+5.3*+3.8*+1.4*+1.2*+3.3*+2.6*+1.5+0.9+0.5+5.2*DeepSeek V3.2+7.9*+5.5*+2.5*+1.1*+5.6*+3.2*+0.4+2.5*+1.9*+5.4*Llama 4 Maverick+8.7*+6.2*+3.7*+2.8*+7.9*+4.2*+3.0*+2.5*+4.0*+6.1*Gemma 4 12B+8.5*+6.3*+4.1*+1.1*+5.9*+4.1*+1.4+1.9*+2.8*+9.1*
Table view
Modelswc < 25 chars25–5050–80≥ 80 charsquestionswith negationwith a numberwith a nameFrench loanwordsvous
Claude Opus 5.5 (low effort)+3.64 [+1.44, +5.95]+4.71 [+3.51, +5.85]+2.56 [+1.45, +3.76]+3.46 [+2.46, +4.55]+5.31 [+2.89, +7.68]+4.03 [+2.78, +5.42]+2.93 [+0.87, +4.91]+2.29 [+1.06, +3.47]+3.84 [+2.33, +5.20]+5.65 [+3.65, +7.89]
Gemma 4 12B fine-tuned (LoRA, ours)+2.97 [+0.68, +5.47]+2.32 [+1.12, +3.56]+1.15 [-0.11, +2.40]+0.26 [-0.56, +1.04]+4.17 [+1.41, +7.05]+2.05 [+1.01, +3.08]-0.79 [-2.44, +0.81]+0.35 [-0.81, +1.52]+0.54 [-0.85, +2.10]+4.51 [+2.53, +6.59]
Claude Sonnet 4.6+6.54 [+3.90, +9.27]+4.23 [+3.05, +5.37]+2.88 [+1.78, +4.17]+2.56 [+1.73, +3.39]+5.24 [+2.63, +7.83]+3.25 [+2.16, +4.48]+2.16 [+0.61, +3.63]+2.67 [+1.56, +3.96]+3.03 [+1.56, +4.57]+5.78 [+3.81, +7.92]
Gemma 4 31B+5.27 [+3.00, +7.50]+3.78 [+2.63, +4.81]+1.42 [+0.35, +2.54]+1.16 [+0.47, +1.83]+3.29 [+0.84, +5.79]+2.64 [+1.62, +3.70]+1.53 [-0.07, +3.15]+0.87 [-0.07, +1.83]+0.53 [-0.80, +2.00]+5.19 [+3.38, +7.07]
DeepSeek V3.2+7.91 [+5.36, +10.73]+5.50 [+4.13, +6.84]+2.53 [+1.23, +3.86]+1.09 [+0.27, +1.98]+5.57 [+2.79, +8.56]+3.21 [+2.03, +4.47]+0.41 [-1.05, +1.76]+2.45 [+1.22, +3.80]+1.87 [+0.20, +3.62]+5.37 [+3.21, +7.89]
Llama 4 Maverick+8.69 [+6.08, +11.33]+6.21 [+4.94, +7.39]+3.71 [+2.45, +5.02]+2.84 [+1.83, +3.81]+7.89 [+5.19, +10.91]+4.23 [+2.90, +5.60]+3.00 [+1.13, +4.83]+2.47 [+1.00, +3.98]+3.96 [+2.03, +5.82]+6.08 [+3.61, +8.53]
Gemma 4 12B+8.52 [+6.04, +11.09]+6.26 [+4.96, +7.48]+4.07 [+2.90, +5.19]+1.13 [+0.27, +1.94]+5.91 [+2.91, +9.04]+4.08 [+2.92, +5.29]+1.39 [-0.12, +2.86]+1.92 [+0.84, +3.06]+2.76 [+1.21, +4.41]+9.09 [+6.86, +11.53]

Meaning errors, graded by an LLM judge

openai.gpt-oss-120b-1:0 graded the worst error in each output on 500 test sentences (template severity-v2#ab97e76ce0c8): critical = meaning inverted or invented, or no translation; major = meaning changed. Differences are paired against the first row. The judge is not validated against a human: read the rates as relative between systems, not as error counts. Retrieval cuts Opus 5.5's critical errors (2.2% to 0.6%), the only rate under 1%, but not its major-or-worse rate.

criticalmajor or worse
0%5%10%15%20%25%share of 500 sentences, 95% Wilson intervalClaude Opus 5.5 (low effort) · retrieval 5-shotClaude Sonnet 4.6 · retrieval 5-shotDeepSeek V3.2 · retrieval 5-shotGemma 4 31B · retrieval 5-shotClaude Opus 5.5 (low effort) · zero-shot
Table view
SystemCritical %Major or worse %Δ critical vs referenceΔ major+ vs reference
Claude Opus 5.5 (low effort) · retrieval 5-shot0.614.2referencereference
Claude Sonnet 4.6 · retrieval 5-shot2.220.2+1.6 [+0.4, +3.0]+6.0 [+2.8, +9.6]
DeepSeek V3.2 · retrieval 5-shot2.821.0+2.2 [+0.8, +3.8]+6.8 [+3.0, +10.4]
Gemma 4 31B · retrieval 5-shot2.218.6+1.6 [+0.2, +2.8]+4.4 [+1.0, +7.8]
Claude Opus 5.5 (low effort) · zero-shot2.214.6+1.6 [+0.4, +2.8]+0.4 [-2.8, +3.6]

Do the metrics agree?

Each mark is one system. Rank agreement (Kendall τ): chrF++ vs COMET-22 0.90 over 44 systems; chrF++ vs BLEU 0.88. COMET is a second opinion, not ground truth: its Swahili comes from XLM-R pretraining, not Congolese Swahili.

Frontier APIOpen-weight LLMDedicated MT
405060606570758085chrF++ (normalised)COMET-22 × 100
Table view
SystemchrF++COMET-22 × 100COMET 95% CI
Claude Opus 5.5 (low effort) · retrieval 5-shot61.484.283.7–84.7
Claude Opus 5.5 (low effort) · random 5-shot59.783.683.1–84.1
GPT-6 Astra · zero-shot57.382.882.3–83.4
Gemma 4 12B fine-tuned (LoRA, ours) · retrieval 5-shot58.282.882.3–83.4
Claude Opus 5.5 · zero-shot57.682.782.2–83.3
Claude Opus 5.5 (low effort) · zero-shot57.882.782.1–83.2
Claude Sonnet 4.6 · retrieval 5-shot57.982.582.0–83.1
Gemma 4 12B fine-tuned (LoRA, ours) · zero-shot57.082.481.9–83.0
Claude Opus 5.5 (low effort) · zero-shot, plain 'Swahili'57.782.381.8–82.9
Gemma 4 31B · retrieval 5-shot56.182.081.4–82.5
Gemma 4 31B · retrieval + glossary55.181.480.8–81.9
Claude Sonnet 4.6 · random 5-shot55.881.380.8–81.9
DeepSeek V3.2 · retrieval 5-shot55.781.180.5–81.7
Llama 4 Maverick · retrieval 5-shot54.880.980.3–81.5
Claude Sonnet 4.6 · zero-shot, plain 'Swahili'55.280.579.9–81.1
Claude Sonnet 4.6 · zero-shot54.680.479.9–80.9
Llama 4 Maverick · retrieval + glossary53.880.479.8–81.0
Gemma 4 31B · zero-shot53.980.379.7–80.9
Claude Sonnet 5.5 · zero-shot53.680.279.5–80.8
DeepSeek V3.2 · retrieval + glossary54.180.179.5–80.7
Gemma 4 31B · glossary53.280.079.4–80.5
Gemma 4 12B · retrieval 5-shot53.979.779.2–80.4
DeepSeek V3.2 · random 5-shot53.179.478.8–80.0
TranslateGemma 27B49.579.178.5–79.6
Gemma 4 26B-A4B · zero-shot51.878.778.1–79.3
DeepSeek V3.2 · zero-shot, plain 'Swahili'52.978.677.9–79.2
DeepSeek V3.2 · zero-shot52.578.577.9–79.1
Gemma 4 12B · retrieval + glossary52.278.277.6–78.8
TranslateGemma 12B47.278.077.4–78.5
DeepSeek V3.2 · glossary51.977.977.3–78.5
Llama 4 Maverick · zero-shot50.477.977.3–78.5
Llama 4 Maverick · glossary50.377.677.0–78.2
NLLB-200 3.3B50.177.076.3–77.6
Gemma 4 12B · zero-shot50.176.976.3–77.5
NLLB-200 1.3B49.376.976.2–77.5
Gemma 4 12B · glossary49.276.075.4–76.7
Gemma 4 E4B · zero-shot48.375.374.6–75.9
NLLB-200 600M46.474.473.8–75.1
TranslateGemma 4B40.473.172.5–73.8
MADLAD-400 3B44.872.972.3–73.6
MADLAD-400 10B45.272.972.2–73.7
Gemma 4 E2B · zero-shot43.471.170.4–71.8
opus-mt swc-fr32.760.359.6–61.0
SeamlessM4T v237.057.156.2–57.9

What these numbers do not show

  • Domain. Short, clean, general Tatoeba sentences, not long code-switched interview speech; ranks can change across that gap.
  • Variety and input. CLEAR Global's written Congo Swahili, not spoken Ituri/Nord-Kivu; clean text, not ASR output (~0.74 WER in ebola-asr).
  • Metrics. chrF++, COMET and the LLM judge are automatic. No human evaluation was run. Salient-error checks in RESULTS.md are noisy, entities especially.
  • Retrieval helps only when the example pool resembles the input. A Tatoeba pool for interview speech may help far less.
  • Data handling. Public data only. Whether interview text may go to any API is a question for Eva/Nina.

Provenance

  • Data: CLEAR-Global/Gamayun-kits rev b80906d, swc-fra kits 5k/10k/15k (25,305 pairs; 24,858 after dedupe). Frozen splits, seed mtsweep-2026-10-15: test 2,000 · dev 1,000 · train 21,858 (manifests in data/splits/).
  • Prompts: baseline-v1#c7fdd9e2225f, fewshot-v1#f6f0b02fe229 + retrieval:5 (char 3–5-gram TF-IDF over train), glossary lexicon 1fdb363c (IBM-1 on train). Temperature 0 where accepted; output ceiling 512, truncated calls re-run at 4,096.
  • Fine-tune: Gemma 4 12B-it, LoRA r16, 1 epoch over train, early-stopped on dev loss (3.24 → 0.60), one H100, 20 min.
  • Metrics: chrF++ (sacrebleu 2.6, frtypo-v1 normalisation), BLEU, COMET-22 (wmt22-comet-da); 1,000 bootstrap resamples, seed 20261015. Slices slices-v1; LLM judge openai.gpt-oss-120b-1:0, severity-v2, 500-sentence sample (seed mtsweep-judge-v1).
  • Spend (2026-10-15): about $85 in Bedrock tokens at unconfirmed table prices, $0.94 of it the LLM judge; about $8 of own H100 time; ebola-asr's box was already billing.
  • Replicate: docs/runbook.md. Lessons: docs/lessons.md. Full record: RESULTS.md.

Data: CLEAR Global, Gamayun Congolese Swahili–French kits (Öktem, Albayk Jaam, DeLuca and Tang, GHTC 2020), CC BY 4.0; the French side is Tatoeba. Scoring: corpus chrF++ after French typography normalisation (frtypo-v1), with COMET-22 and BLEU alongside; 95% intervals from 1,000 bootstrap resamples of sentences; every comparison is paired on the same frozen 2,000 sentence IDs. Built 2026-10-15 from mtsweep collect; full record in RESULTS.md.