You need to agree to share your Hugging Face information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

CTRL β€” Sinhala MMLU Shared Task

Sinhala multiple-choice answering with a 4-bit Llama 3.2 3B base and choice-supervised LoRA adaptation.

Members: Jayendra Matarage Β· Prashan Samarathunge Β· Isuru Udayanga Β· Mithun Nimesh

Team code and predictions Β· Final adapter

Architecture

A frozen Llama 3.2 3B Instruct base with one PEFT LoRA adapter, loaded through Unsloth in NF4 4-bit with double quantization and bfloat16 compute.

Component Configuration
Llama decoder 28 layers, hidden size 3,072, MLP 8,192; 24 attention / 8 KV heads
LoRA Rank 16, alpha 32, dropout 0; attention q/k/v/o and MLP gate/up/down projections
Parameters 3,212,749,824 base + 24,313,856 adapter = 3,237,063,680 total
Base revision bb1d317a108579fb40e646af8924a5e7ec5604b1

Counts use the saved architecture and adapter tensor shapes; quantization does not reduce parameter count.

Inference: question + choices β†’ chat prompt β†’ base + LoRA β†’ logits for 1–4 β†’ argmax. The exported tokenizer/chat template is retained; scoring uses no generation, sampling, retrieval or hosted API.

Training approach

We fine-tuned pretrained Llama 3.2 3B Instruct for Sinhala multiple-choice answering using QLoRA with a single supervised alignment stage. Each subject, question and four choices becomes a chat prompt; the correct answer digit is the supervision target. The final run is llama32-all-questions-gold-v1-gold-alignment.

Setting Recorded value
Examples / epochs 3,968 valid labeled rows / 3 epochs
Objective Cross-entropy restricted to the four answer-token logits
Optimization AdamW 8-bit; learning rate 1e-4; cosine schedule; 3% warmup
Batch / context Batch 1 Γ— accumulation 8 = effective batch 8; 8,192-token limit
Stability bfloat16, gradient checkpointing, gradient clipping 1.0, weight decay 0
Selection Seed 42; evaluate/save every 350 steps; best logit_accuracy

The four-choice loss updates only the 24.3M LoRA parameters while the quantized base stays frozen. We select the checkpoint with the best fit accuracy and export its adapter and tokenizer for direct next-token choice scoring.

Selection reuses the training rows: the recorded 22.48% β†’ 47.91% improvement is a fit diagnostic, not held-out or leaderboard accuracy. Export: checkpoint-1488 (best_gold_fit).

CPT, synthetic training and the optional two-epoch continuation were not used by this final adapter.

Data provenance and limitation

Our broader data workflow covered Sinhala school textbook and lesson content, past examination and term-test papers, public SinhalaMMLU questions, and textbook-derived synthetic QA. The submitted adapter used labeled question-answer records. Textbook content was prepared separately as an optional CPT corpus (12,235 train / 759 validation rows), alongside 486 synthetic examples; these corpora were not used in the final run.

Training used 2,264 labels with closed-LLM provenance and 1,704 supplied labels. Inputs include competition test questions labeled/validated using closed LLMs, conflicting with the prohibition on test-question training. Excluding their files does not undo training; organizer judgment is required. Original metadata preserves this lineage.

Task questions/fit dumps are excluded; original easy-eval remains local. Sources: rules, task dataset, public SinhalaMMLU, dataset paper. Optional textbook materials retain source/generation provenance, without a new redistribution license.

Run inference

Use Linux CUDA 12.8 / Python 3.12 with one NVIDIA GPU:

pip install -r requirements.txt
mkdir -p reproduction
cp inference.ipynb reproduction/
cd reproduction
jupyter nbconvert --execute --to notebook --ExecutePreprocessor.timeout=-1 --output executed-inference.ipynb inference.ipynb

Or run the copied notebook top to bottom in Jupyter. Change only DATA_REPO for another organizer dataset. Models/tokenizer download before scoring. Pinned adapter: 75fbe4639bec76973c1fbaad5bbf4c7638075785.

Inference uses left padding, explicit positions, batch 16, a 16,384-token batch budget and OOM backoff. Organizer dataset-loading/writing sections are preserved; Hub loading, seeding and output ordering are packaging adaptations.

The separate execution directory protects the exact 2,238-row submitted predictions.jsonl. SHA-256:

e02a2c364adfb924ae9dbdabe3f8e7b36a2cf544520231009f4260a1b016793c

Environment and verification

Recorded training: H100 80GB HBM3, Python 3.12.3, Torch 2.8.0+cu128, CUDA 12.8; 4,146.525 seconds (69.11 minutes). Test-inference runtime is unavailable.

Checked: notebook/data contracts, all 2,238 prompt lengths, tokenizer answer boundaries, Linux dependency resolution and remote hashes. Full installation, CUDA loading and reproduction comparison remain unverified. Both repositories require authorized Hugging Face access.

Files and records

  • inference.ipynb, requirements.txt, predictions.jsonl: organizer inference and preserved final predictions.
  • training/train.ipynb, training/sinhala_mmlu.ipynb: actual notebooks, with credentials removed and outputs cleared.
  • training/metadata/: original configuration, dataset identity, fit metrics and package/runtime records.
  • training/data/cpt/, training/data/synthetic/: optional textbook materials and provenance.

Excluded questions prevent independent retraining from this filtered package; the original code and paths remain documented.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support