Spaces:
Running
Running
| import gradio as gr | |
| from src.utils import model_hyperlink, process_score | |
| LEADERBOARD_COLUMN_TO_DATATYPE = { | |
| # open llm | |
| "Model π€" :"markdown", | |
| "Arch ποΈ" :"markdown", | |
| "Params (B)": "number", | |
| "Open LLM Score (%)": "number", | |
| # deployment settings | |
| "DType π₯" :"str", | |
| "Backend π" :"str", | |
| "Optimization π οΈ" :"str", | |
| "Quantization ποΈ" :"str", | |
| # primary measurements | |
| "Prefill Latency (s)": "number", | |
| "Decode Throughput (tokens/s)": "number", | |
| "Allocated Memory (MB)": "number", | |
| "Energy (tokens/kWh)": "number", | |
| # additional measurements | |
| "E2E Latency (s)": "number", | |
| "E2E Throughput (tokens/s)": "number", | |
| "Reserved Memory (MB)": "number", | |
| "Used Memory (MB)": "number", | |
| } | |
| 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) | |
| # process quantization for leaderboard | |
| 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): | |
| # descriptive text | |
| gr.HTML("π Scroll to the right π for additional columns.", elem_id="text") | |
| # get dataframe | |
| leaderboard_df = get_leaderboard_df(llm_perf_df) | |
| # create table | |
| leaderboard_table = gr.components.Dataframe( | |
| value=leaderboard_df, | |
| datatype=list(LEADERBOARD_COLUMN_TO_DATATYPE.values()), | |
| headers=list(LEADERBOARD_COLUMN_TO_DATATYPE.keys()), | |
| elem_id="table", | |
| ) | |
| return leaderboard_table | |