edge-maxxing-dashboard / src /leaderboard.py
AlexNijjar's picture
Initial commit
6c858ba
raw
history blame
2.39 kB
import os
import gradio as gr
import pandas as pd
from wandb_data import get_current_runs
DEFAULT_VALIDATOR_UID = int(os.environ["DEFAULT_VALIDATOR_UID"])
def create_dropdown() -> gr.Dropdown:
choices: list[tuple[str, int]] = []
runs = get_current_runs()
for run in runs:
pretty_name = f"{run.uid} - {run.name} ({run.status.name()})"
choices.append((pretty_name, run.uid))
choices = sorted(choices, key=lambda x: x[1])
default = DEFAULT_VALIDATOR_UID
if not default in [uid for _, uid in choices]:
default = choices[0][1]
return gr.Dropdown(
choices,
value=default,
interactive=True,
label="Source Validator"
)
def create_leaderboard(validator_uid) -> gr.Dataframe:
data: list[list] = []
runs = get_current_runs()
for run in runs:
if run.uid != validator_uid:
continue
for submission in run.submissions.values():
data.append([
submission.info.uid,
f"[{'/'.join(submission.info.repository.split('/')[-2:])}]({submission.info.repository})",
submission.tier,
round(submission.score, 3),
f"{submission.metrics.generation_time:.3f}s",
f"{submission.average_similarity * 100:.3f}%",
f"{submission.metrics.size / 1_000_000_000:.3f}GB",
f"{submission.metrics.vram_used / 1_000_000_000:.3f}GB",
f"{submission.metrics.watts_used:.3f}W",
f"{submission.metrics.load_time:.3f}s",
f"[{submission.info.block}](https://taostats.io/block/{submission.info.block})",
f"[{submission.info.revision}]({submission.info.repository}/commit/{submission.info.revision})",
f"[{submission.info.hotkey[:6]}...](https://taostats.io/hotkey/{submission.info.hotkey})",
])
data.sort(key=lambda x: (-x[2], int(x[10].split('[')[1].split(']')[0])))
return gr.Dataframe(
pd.DataFrame(data, columns=["UID", "Model", "Tier", "Score", "Gen Time", "Similarity", "Size", "VRAM Usage", "Power Usage", "Load Time", "Block", "Revision", "Hotkey"]),
datatype=["number", "markdown", "number", "number", "markdown", "markdown", "markdown", "markdown", "markdown", "markdown", "markdown", "markdown", "markdown"],
interactive=False,
)