File size: 2,636 Bytes
362d13b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import json

import pandas as pd
from datasets import load_dataset


import gradio as gr
from gradio_leaderboard import Leaderboard, SelectColumns, ColumnFilter
import config
from pathlib import Path
import pandas as pd
import random

abs_path = Path(__file__).parent
submissions = json.load(open(abs_path / "submissions.json"))

TASKS = ["mmlu"]


def load_submissions():
    all_submissions = []

    for submission in submissions["submissions"]:
        ds = load_dataset(submission["results-dataset"], "results")
        ds = ds.filter(lambda x: x["task"] in TASKS)

        all_accuracy = []

        for result in ds["train"]:
            submission[result["task"]] = result["accuracy"]
            all_accuracy.append(result["accuracy"])

        submission["Average ⬆️"] = sum(all_accuracy) / len(all_accuracy)

        submission["username"] = (
            f"[{submission['username']}](https://huggingface.co/{submission['username']})"
        )
        submission["model_name"] = (
            f"[{submission['model_name']}](https://huggingface.co/{submission['model_name']})"
        )

        submission["results-dataset"] = (
            f"[🔗](https://huggingface.co/datasets/{submission['results-dataset']})"
        )

        all_submissions.append(submission)

    all_submissions = pd.DataFrame(all_submissions)
    return all_submissions


with gr.Blocks() as demo:
    gr.Markdown("""
    # 🥇 a smol course leaderboad
    
    A leaderboard of smol course students' submissions. 
    """)
    with gr.Tabs():
        with gr.Tab("Demo"):
            Leaderboard(
                value=load_submissions(),
                select_columns=SelectColumns(
                    default_selection=config.ON_LOAD_COLUMNS,
                    cant_deselect=["username", "model_name"],
                    label="Select Columns to Display:",
                ),
                search_columns=["username", "model_name"],
                # hide_columns=["chapter"],
                # filter_columns=[
                #     "username",
                #     "model_name",
                #     # "Precision",
                #     # ColumnFilter("MOE", type="boolean", default=False, label="MoE"),
                #     # ColumnFilter("Flagged", type="boolean", default=False),
                #     # ColumnFilter("#Params (B)", default=[30, 80]),
                # ],
                datatype=config.TYPES,
                # column_widths=["2%", "33%"],
            )
        with gr.Tab("Docs"):
            gr.Markdown((Path(__file__).parent / "docs.md").read_text())

if __name__ == "__main__":
    demo.launch()