Spaces:
Running
Running
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() | |