Spaces:
Running
Running
import gradio as gr | |
from src.utils import model_hyperlink | |
LEADERBOARD_COLUMN_TO_DATATYPE = { | |
# open llm | |
"Model": "str", | |
"Quantization": "str", | |
# primary measurements | |
"Prefill (tokens/s)": "number", | |
"Decode (tokens/s)": "number", | |
"Model Size (GB)": "number", | |
# deployment settings | |
"Backend": "str", | |
# additional measurements | |
# "Reserved Memory (MB)": "number", | |
# "Used Memory (MB)": "number", | |
"Params (B)": "number", | |
} | |
PRIMARY_COLUMNS = [ | |
"Model", | |
"Quantization", | |
"Prefill (tokens/s)", | |
"Decode (tokens/s)", | |
"Model Size (GB)", | |
] | |
def process_model(model_name): | |
link = f"https://huggingface.co/{model_name}" | |
return model_hyperlink(link, model_name) | |
def get_leaderboard_df(llm_perf_df): | |
df = llm_perf_df.copy() | |
# transform for leaderboard | |
# df["Model"] = df["Model"].apply(process_model) | |
return df | |
def create_leaderboard_table(llm_perf_df): | |
# get dataframe | |
leaderboard_df = get_leaderboard_df(llm_perf_df) | |
# create search bar | |
with gr.Row(): | |
search_bar = gr.Textbox( | |
label="Model", | |
info="π Search for a model name", | |
elem_id="search-bar", | |
) | |
# create checkboxes | |
with gr.Row(): | |
columns_checkboxes = gr.CheckboxGroup( | |
label="Columns π", | |
value=PRIMARY_COLUMNS, | |
choices=list(LEADERBOARD_COLUMN_TO_DATATYPE.keys()), | |
info="βοΈ Select the columns to display", | |
elem_id="columns-checkboxes", | |
) | |
# create table | |
leaderboard_table = gr.components.Dataframe( | |
value=leaderboard_df[PRIMARY_COLUMNS], | |
datatype=list(LEADERBOARD_COLUMN_TO_DATATYPE.values()), | |
headers=list(LEADERBOARD_COLUMN_TO_DATATYPE.keys()), | |
elem_id="leaderboard-table", | |
) | |
return search_bar, columns_checkboxes, leaderboard_table | |