team-nexus / training /scripts /runs /run_experiments.sh
samadhitalagala's picture
Team Nexus: inference script, final predictions, code and README
ec24fb0 verified
Raw History Blame Contribute Delete
1.8 kB
#!/usr/bin/env bash
# Prompting / scoring experiments on the top baseline models, compared against their zero-shot English logit run.
# logit_si Sinhala instruction, 4 cyclic option orders
# logit_5shot fixed 5 examples from the dev pool (same for every question), original option order
# generate greedy generation + answer parsing, original option order
# cloze length-normalised option likelihood (options not shown)
# Usage: scripts/run_experiments.sh [model ...]
set -uo pipefail
cd "$(dirname "$0")/../.."
PY=.venv/bin/python
DATA="sinhalammlu_dev gmmlu_si_val"
if [ $# -gt 0 ]; then MODELS=("$@"); else MODELS=(google/gemma-4-E4B-it google/gemma-3n-E4B-it Qwen/Qwen3.5-4B); fi
declare -A EXP=(
[logit_si]="--method logit --lang si --n-perms 4"
[logit_5shot]="--method logit --fewshot-file sinhalammlu_dev_5shot --n-shot 5 --n-perms 1"
[generate]="--method generate --n-perms 1 --max-new-tokens 16"
[cloze]="--method cloze"
)
ORDER=(logit_si logit_5shot generate cloze)
mkdir -p results/logs
for m in "${MODELS[@]}"; do
for e in "${ORDER[@]}"; do
name="exp_$(basename "$m")_${e}"
if [ -f "results/$name/metrics.json" ]; then echo "skip $name (done)"; continue; fi
echo "=== $name ($(date +%H:%M))"
$PY -m eval.run_eval --model "$m" --data $DATA ${EXP[$e]} --run-name "$name" > "results/logs/$name.log" 2>&1 \
&& grep -E "acc=|scoring" "results/logs/$name.log" \
|| { echo "FAILED $name (see results/logs/$name.log)"; tail -5 "results/logs/$name.log"; }
done
done
runs=()
for m in "${MODELS[@]}"; do runs+=("results/base_$(basename "$m")_logit" "results/exp_$(basename "$m")_*"); done
$PY -m eval.summarize --runs "${runs[@]}" --out reports/experiments_prompting.md > /dev/null
echo "summary -> reports/experiments_prompting.md"