|
import gradio as gr |
|
|
|
from src.utils import model_hyperlink, process_score |
|
|
|
LEADERBOARD_COLUMN_TO_DATATYPE = { |
|
|
|
"Model π€": "markdown", |
|
"Experiment π§ͺ": "str", |
|
|
|
"Prefill (s)": "number", |
|
"Decode (tokens/s)": "number", |
|
"Memory (MB)": "number", |
|
"Energy (tokens/kWh)": "number", |
|
|
|
"Backend π": "str", |
|
"Precision π₯": "str", |
|
"Quantization ποΈ": "str", |
|
"Attention ποΈ": "str", |
|
"Kernel βοΈ": "str", |
|
|
|
|
|
|
|
"Open LLM Score (%)": "number", |
|
"End-to-End (s)": "number", |
|
"Architecture ποΈ": "str", |
|
"Params (B)": "number", |
|
} |
|
|
|
PRIMARY_COLUMNS = [ |
|
"Model π€", |
|
"Experiment π§ͺ", |
|
"Prefill (s)", |
|
"Decode (tokens/s)", |
|
"Memory (MB)", |
|
"Energy (tokens/kWh)", |
|
"Open LLM Score (%)", |
|
] |
|
|
|
|
|
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() |
|
|
|
df["Model π€"] = df["Model π€"].apply(process_model) |
|
|
|
df["Open LLM Score (%)"] = df.apply( |
|
lambda x: process_score(x["Open LLM Score (%)"], x["Quantization ποΈ"]), axis=1 |
|
) |
|
return df |
|
|
|
|
|
def create_leaderboard_table(llm_perf_df): |
|
|
|
leaderboard_df = get_leaderboard_df(llm_perf_df) |
|
|
|
|
|
with gr.Row(): |
|
search_bar = gr.Textbox( |
|
label="Model π€", |
|
info="π Search for a model name", |
|
elem_id="search-bar", |
|
) |
|
|
|
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", |
|
) |
|
|
|
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 |
|
|