Spaces:
Sleeping
Sleeping
| import os | |
| import gradio as gr | |
| import pandas as pd | |
| from apscheduler.schedulers.background import BackgroundScheduler | |
| from src.assets.text_content import TITLE, INTRODUCTION_TEXT | |
| from src.assets.css_html_js import custom_css, get_window_url_params | |
| from src.utils import restart_space, load_dataset_repo, make_clickable_model | |
| LLM_PERF_LEADERBOARD_REPO = "optimum/llm-perf-leaderboard" | |
| LLM_PERF_DATASET_REPO = "optimum/llm-perf-dataset" | |
| OPTIMUM_TOKEN = os.environ.get("OPTIMUM_TOKEN") | |
| OLD_COLUMNS = ["model", "backend.name", "backend.torch_dtype", "backend.quantization", | |
| "generate.latency(s)", "generate.throughput(tokens/s)"] | |
| NEW_COLUMNS = ["Model", "Backend 🏭", "Load dtype", "Quantization 🗜️", | |
| "Latency (s) ⬇️", "Throughput (tokens/s) ⬆️"] | |
| COLUMNS_TYPES = ["markdown", "text", "text", "text", "number", "number"] | |
| SORTING_COLUMN = ["Throughput (tokens/s) ⬆️"] | |
| llm_perf_dataset_repo = load_dataset_repo(LLM_PERF_DATASET_REPO, OPTIMUM_TOKEN) | |
| def get_vanilla_benchmark_df(): | |
| if llm_perf_dataset_repo: | |
| llm_perf_dataset_repo.git_pull() | |
| # load | |
| df = pd.read_csv( | |
| "./llm-perf-dataset/reports/cuda_1_100/inference_report.csv") | |
| # preprocess | |
| df["Model"] = df["Model"].apply(make_clickable_model) | |
| # filter | |
| df = df[OLD_COLUMNS] | |
| # rename | |
| df.rename(columns={ | |
| df_col: rename_col for df_col, rename_col in zip(OLD_COLUMNS, NEW_COLUMNS) | |
| }, inplace=True) | |
| # sort | |
| df.sort_values(by=SORTING_COLUMN, ascending=False, inplace=True) | |
| return df | |
| # Define demo interface | |
| demo = gr.Blocks(css=custom_css) | |
| with demo: | |
| gr.HTML(TITLE) | |
| gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text") | |
| with gr.Tabs(elem_classes="tab-buttons") as tabs: | |
| with gr.TabItem("Vanilla Benchmark", elem_id="vanilla-benchmark", id=0): | |
| vanilla_benchmark_df = get_vanilla_benchmark_df() | |
| leaderboard_table_lite = gr.components.Dataframe( | |
| value=vanilla_benchmark_df, | |
| type=COLUMNS_TYPES, | |
| headers=NEW_COLUMNS, | |
| elem_id="vanilla-benchmark", | |
| ) | |
| # Restart space every hour | |
| scheduler = BackgroundScheduler() | |
| scheduler.add_job(restart_space, "interval", seconds=3600, | |
| args=[LLM_PERF_LEADERBOARD_REPO, OPTIMUM_TOKEN]) | |
| scheduler.start() | |
| # Launch demo | |
| demo.queue(concurrency_count=40).launch() | |