burtenshaw commited on
Commit
362d13b
·
1 Parent(s): d107807

first commit

Browse files
Files changed (4) hide show
  1. app.py +84 -0
  2. config.py +27 -0
  3. docs.md +1 -0
  4. submissions.json +11 -0
app.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ import pandas as pd
4
+ from datasets import load_dataset
5
+
6
+
7
+ import gradio as gr
8
+ from gradio_leaderboard import Leaderboard, SelectColumns, ColumnFilter
9
+ import config
10
+ from pathlib import Path
11
+ import pandas as pd
12
+ import random
13
+
14
+ abs_path = Path(__file__).parent
15
+ submissions = json.load(open(abs_path / "submissions.json"))
16
+
17
+ TASKS = ["mmlu"]
18
+
19
+
20
+ def load_submissions():
21
+ all_submissions = []
22
+
23
+ for submission in submissions["submissions"]:
24
+ ds = load_dataset(submission["results-dataset"], "results")
25
+ ds = ds.filter(lambda x: x["task"] in TASKS)
26
+
27
+ all_accuracy = []
28
+
29
+ for result in ds["train"]:
30
+ submission[result["task"]] = result["accuracy"]
31
+ all_accuracy.append(result["accuracy"])
32
+
33
+ submission["Average ⬆️"] = sum(all_accuracy) / len(all_accuracy)
34
+
35
+ submission["username"] = (
36
+ f"[{submission['username']}](https://huggingface.co/{submission['username']})"
37
+ )
38
+ submission["model_name"] = (
39
+ f"[{submission['model_name']}](https://huggingface.co/{submission['model_name']})"
40
+ )
41
+
42
+ submission["results-dataset"] = (
43
+ f"[🔗](https://huggingface.co/datasets/{submission['results-dataset']})"
44
+ )
45
+
46
+ all_submissions.append(submission)
47
+
48
+ all_submissions = pd.DataFrame(all_submissions)
49
+ return all_submissions
50
+
51
+
52
+ with gr.Blocks() as demo:
53
+ gr.Markdown("""
54
+ # 🥇 a smol course leaderboad
55
+
56
+ A leaderboard of smol course students' submissions.
57
+ """)
58
+ with gr.Tabs():
59
+ with gr.Tab("Demo"):
60
+ Leaderboard(
61
+ value=load_submissions(),
62
+ select_columns=SelectColumns(
63
+ default_selection=config.ON_LOAD_COLUMNS,
64
+ cant_deselect=["username", "model_name"],
65
+ label="Select Columns to Display:",
66
+ ),
67
+ search_columns=["username", "model_name"],
68
+ # hide_columns=["chapter"],
69
+ # filter_columns=[
70
+ # "username",
71
+ # "model_name",
72
+ # # "Precision",
73
+ # # ColumnFilter("MOE", type="boolean", default=False, label="MoE"),
74
+ # # ColumnFilter("Flagged", type="boolean", default=False),
75
+ # # ColumnFilter("#Params (B)", default=[30, 80]),
76
+ # ],
77
+ datatype=config.TYPES,
78
+ # column_widths=["2%", "33%"],
79
+ )
80
+ with gr.Tab("Docs"):
81
+ gr.Markdown((Path(__file__).parent / "docs.md").read_text())
82
+
83
+ if __name__ == "__main__":
84
+ demo.launch()
config.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+
3
+ TYPES = [
4
+ "markdown",
5
+ "markdown",
6
+ "number",
7
+ "date",
8
+ "markdown",
9
+ "number",
10
+ "number",
11
+ ]
12
+
13
+ ON_LOAD_COLUMNS = ["username", "model_name", "Average ⬆️", "mmlu"]
14
+
15
+ # FILTER_COLUMNS = ["chapter"]
16
+
17
+
18
+ NUMERIC_INTERVALS = {
19
+ "?": pd.Interval(-1, 0, closed="right"),
20
+ "~1.5": pd.Interval(0, 2, closed="right"),
21
+ "~3": pd.Interval(2, 4, closed="right"),
22
+ "~7": pd.Interval(4, 9, closed="right"),
23
+ "~13": pd.Interval(9, 20, closed="right"),
24
+ "~35": pd.Interval(20, 45, closed="right"),
25
+ "~60": pd.Interval(45, 70, closed="right"),
26
+ "70+": pd.Interval(70, 10000, closed="right"),
27
+ }
docs.md ADDED
@@ -0,0 +1 @@
 
 
1
+ # Submission Instructions
submissions.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "submissions": [
3
+ {
4
+ "username": "burtenshaw",
5
+ "model_name": "dave-the-demo",
6
+ "chapter": "1",
7
+ "submission_date": "2025-09-02",
8
+ "results-dataset": "burtenshaw/openbench-logs"
9
+ }
10
+ ]
11
+ }