Download training/README.md from SinhalaMMLU-SharedTask/team-nexus: direct link, hf CLI and curl.
- Browser
- Download file 5.23 kB
-
https://huggingface.co/SinhalaMMLU-SharedTask/team-nexus/resolve/main/training/README.md
- Command line
-
hf download hf://SinhalaMMLU-SharedTask/team-nexus/training/README.md
-
curl -L -o README.md https://huggingface.co/SinhalaMMLU-SharedTask/team-nexus/resolve/main/training/README.md
SinhalaMMLU shared task (≤ 8B)
System for the ICTer 2026 SinhalaMMLU shared task: Sinhala multiple-choice QA with open-weight models totalling ≤ 8B parameters, no retrieval, no internet at inference. Built on SinhalaMMLU (Pramodya et al., EMNLP 2025):
@inproceedings{pramodya-etal-2025-sinhalammlu,
title = "{S}inhala{MMLU}: A Comprehensive Benchmark for Evaluating Multitask Language Understanding in {S}inhala",
author = "Pramodya, Ashmari and Nelki, Nirasha and Shalinda, Heshan and Liyanage, Chamila and Sakai, Yusuke and
Pushpananda, Randil and Weerasinghe, Ruvan and Kamigaito, Hidetaka and Watanabe, Taro",
booktitle = "Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing",
year = "2025",
pages = "32931--32949",
url = "https://aclanthology.org/2025.emnlp-main.1673/"
}
Keep this repository private until the final deadline. Never commit task data (data/ is git-ignored).
Layout
| Path | Contents |
|---|---|
data/ |
Git-ignored. raw/ downloads, processed/ normalised JSONL |
eval/ |
Evaluation harness (run_eval.py, scorers, metrics, summarize.py) |
train/ |
Fine-tuning / continued-pretraining code |
inference/ |
Final offline submission pipeline |
configs/ |
Candidate models, fixed data splits |
scripts/ |
Data building, parameter counting, overlap checks, synthetic MCQ generation |
scripts/runs/ |
The exact experiment queues behind every reported result and submission (see its README) |
run_submission.sh |
One-command offline reproduction of a submission |
reports/ |
Aggregate results tables (no task data) |
MODEL_MANIFEST.md |
Every model: exact total parameters, release date, license |
DATA_LOG.md |
Every dataset and every closed-API data-generation use |
Setup (DGX Spark, aarch64, CUDA 13)
python3 -m venv .venv
.venv/bin/pip install torch --index-url https://download.pytorch.org/whl/cu130
.venv/bin/pip install -r requirements.lock.txt
echo "hf_token = hf_..." > .env && chmod 600 .env # read token; accept gated terms for SinhalaMMLU, Gemma 3/3n, Llama
Triton (used by torch.compile, Liger Kernel and flash-linear-attention) compiles helpers against Python.h.
If python3.12-dev is installed, nothing else is needed. Without sudo, unpack the headers locally; the code
(eval/common.py: ensure_python_headers) then adds them to CPATH automatically:
mkdir -p ~/.local/pydev && cd ~/.local/pydev
V=3.12.3-1ubuntu0.17 # any 3.12.3 Ubuntu build; the machine's apt index may list a version no longer on the mirror
for p in libpython3.12-dev python3.12-dev; do
curl -fO "http://ports.ubuntu.com/ubuntu-ports/pool/main/p/python3.12/${p}_${V}_arm64.deb"; done
for f in *.deb; do dpkg -x "$f" root; done
Long GPU jobs: PyTorch is capped at 100 GB (SMMLU_GPU_MEM_GB). The Spark shares memory between CPU and GPU, so
an uncapped job triggers the kernel OOM killer (which also kills tmux) instead of a CUDA out-of-memory error.
Commands
.venv/bin/python scripts/fetch_data.py # SinhalaMMLU dev, Global-MMLU si, Belebele si -> data/raw
.venv/bin/python scripts/prepare_data.py # -> data/processed/*.jsonl (fixed splits in configs/splits)
.venv/bin/python scripts/count_params.py # exact parameter counts -> MODEL_MANIFEST.md
scripts/runs/run_baselines.sh # zero-shot baselines -> results/, reports/
./run_submission.sh [config] # reproduce a submission offline -> results/submissions/final.zip
# One model, any setting
.venv/bin/python -m eval.run_eval --model google/gemma-4-E4B-it --data sinhalammlu_dev gmmlu_si_val \
--method logit --n-perms 4 --lang en --run-name my_run
Harness options
--method logit(next-token probability over labels 1-4),generate(greedy decode + parse),cloze(length-normalised option likelihood).--n-perms K --perm-mode cyclic|random: score each question under K option orders. Reports original-order accuracy, permutation-vote accuracy, spread across orders, consistency, and position-bias tables.--lang en|siinstruction language;--chat auto|on|off;--fewshot-file F --n-shot N(the same fixed examples for every question, as the rules require).- Breakdowns by dataset, domain, subject, grade and (Global-MMLU) cultural sensitivity, with Wilson 95% CIs.
- Every run stores the exact model commit, library versions, git commit and the full argument set in
metrics.json. --write-submissionwrites a Codabench-formatpredictions.zip(predictions.jsonlwithq_no, subject, category, level, answer).
Rules checklist
- Total parameters of everything loaded at inference ≤ 8B (embeddings, vision/audio towers if loaded, adapters).
- Open-weight models released before 2026-10-01 only. No API, internet or retrieval of any kind at inference.
- Fixed few-shot examples only (identical for every question). No training, tuning or prompt design on test questions.
- Closed APIs only for training-data generation, logged in
DATA_LOG.md. - Final pipeline runs offline from one command with pinned versions and fixed seeds.