JSALT2026_UQ_Lab / README.md
MTiryaki's picture
Upload 4 files
86a793b verified
|
Raw
History Blame Contribute Delete
2 kB
---
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.