--- title: UQ Competition Leaderboard emoji: 🏆 colorFrom: indigo colorTo: blue sdk: gradio app_file: app.py pinned: false --- # UQ Competition Leaderboard Students upload `submission.csv` (`id,p_correct`) + a team name; the Space grades it against hidden labels and ranks teams by **Brier score** (lower is better). Baselines are seeded automatically. ## Files - `app.py` — the Gradio leaderboard - `scoring.py` — grading + ranking logic - `requirements.txt` - `baselines/*.csv` — optional instructor baselines (see `make_baselines.py`) - the hidden labels — **kept private**, see below ## Setup (recommended: public Space + private labels dataset) 1. Create a new **Gradio Space**. Add `app.py`, `scoring.py`, `requirements.txt`. 2. Put your `test_labels.csv` (`id,correct`) in a **private dataset** repo, e.g. `your-user/uq-comp-labels`. 3. In the Space **Settings → Variables and secrets**, add: - secret `HF_TOKEN` = a token with read access to that private dataset - variable `LABELS_DATASET` = `your-user/uq-comp-labels` 4. (Optional) run `make_baselines.py` locally and add the resulting `baselines/` folder to the Space. 5. Share the Space URL with students. The labels live in a private dataset the Space reads with its token, so students using the public Space can never see them. ### Simpler alternative (private Space) Make the Space **private** and upload `test_labels.csv` directly into it (no dataset/secret needed — the app falls back to reading the local file). Only people you invite can use it. ## Notes - Submissions are stored in `submissions.csv`; each team keeps its **best** (lowest Brier) row. - That file resets if the Space rebuilds. For a single workshop session that's fine; for durability enable **persistent storage** on the Space, or have students keep their CSVs. - Baselines (`🤖 constant`, `🤖 random`, `🤖 perfect`, plus any `baselines/*.csv`) are recomputed on every refresh and are not part of the saved submissions.