Views
No views yet
go.csv.Qwen3.5-27B, Qwen3.6-27B, Qwen3-32B.peft), rank r=128, alpha=256, dropout 0.05,
target_modules=all (7 modules: q/k/v/o/gate/up/down proj).bf16, AdamW, lr=2e-4,
cosine schedule with warmup_ratio=0.05, 3 epochs, effective batch =64
(per_device=2 × grad_accum=4 × 8 GPUs).McGill-NLP/AfriE5-Large-instruct top-3 passages (Train+Val
as candidate pool, per-subset filtering, self-mask on training queries).0.730865 on the private test set (see go.csv).Aka_Gha),
Amharic (Amh_Eth), Luganda (Lug_Uga) and Swahili (Swa_Ken) —
together the 8 language×country subsets defined by the competition.requirements/infer.txt
(inference) and requirements/train.txt (training).min(8, visible) predicts
concurrently, so 1 GPU works (sequential, ~20-30h wall-clock) and
8 GPUs is the sweet spot (~2h wall-clock). No config changes needed.bash scripts/run_all.shLF/data/).generated_predictions.jsonl to a Zindi-format CSV.scripts/build_ensemble.py over the 19 CSVs to regenerate
submission.csv.go.csv.1# 1. Generate 19 per-adapter predictions (writes to predict_out/)
2bash scripts/launch_all_predicts.sh
3
4# 2. (JSONL → CSV conversion runs inline inside run_all.sh; no separate script)
5
6# 3. Ensemble → final CSV (writes submission.csv + md5 check)
7python scripts/build_ensemble.pyREADME.md.scripts/run_all.sh, be aware of the following (from an
end-to-end audit of a fresh clone from this repo):hub/:| Base model | HF link | Local path |
|---|---|---|
| Qwen3.5-27B | https://huggingface.co/Qwen/Qwen3.5-27B | hub/Qwen3.5-27B/ |
| Qwen3.6-27B | https://huggingface.co/Qwen/Qwen3.6-27B | hub/Qwen3.6-27B/ |
| Qwen3-32B | https://huggingface.co/Qwen/Qwen3-32B | hub/Qwen3-32B/ |
1hf download Qwen/Qwen3.5-27B --local-dir hub/Qwen3.5-27B
2hf download Qwen/Qwen3.6-27B --local-dir hub/Qwen3.6-27B
3hf download Qwen/Qwen3-32B --local-dir hub/Qwen3-32Bunsloth/ upload of the same weights).base_model_name_or_path in every adapter_config.json points at
/mnt/msrh/Magic_submission/hub/<base> — this is a submission-time
fake path. Two options:/mnt/msrh/Magic_submission/ (may need sudo mkdir /mnt/msrh first) and populate hub/ there — no code changes.base_model_name_or_path in each adapter config to point at
your local snapshot / HF repo ID.scripts/launch_all_predicts.sh auto-locates its workspace root
from the script path (default: parent dir of scripts/). If you want
to point at a different location, override the env var:ROOT=/my/extract/path bash scripts/launch_all_predicts.sh--gdn-prefill-backend triton as an alternative if you want to
skip JIT; not required for correctness.submission.csv matches go.csv byte-for-byte only on
identical hardware / kernel / vLLM state. vLLM inference is not
deterministic across hardware, driver versions, or torch.compile /
FlashInfer cache states. On a fresh environment, expect ~60-70% of rows
to match go.csv byte-for-byte; the remaining rows will be
paraphrases of the same underlying answer. Functional LB equivalence
(ROUGE metrics) is what actually matters for evaluation.Zindi Africa. "Multilingual Health Question Answering in Low-Resource
African Languages Challenge", 2026. https://zindi.africa/competitions/
multilingual-health-question-answering-in-low-resource-african-languages-challenge