leaderboard / app.py
burtenshaw
first commit
362d13b
raw
history blame
2.64 kB
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()