Spaces:
Running
Running
import math | |
from pathlib import Path | |
import gradio as gr | |
import pandas as pd | |
from gradio_leaderboard import ColumnFilter, Leaderboard | |
abs_path = Path(__file__).parent | |
# Any pandas-compatible data | |
df = pd.read_csv(str(abs_path / "data.csv")) | |
df["Model"] = df.apply( | |
lambda row: f'<a target="_blank" href="{row["URL"]}" style="color: var(--link-text-color); text-decoration: underline;text-decoration-style: dotted;">{row["Provider"]}</a>', | |
axis=1, | |
) | |
df = df[["Model"] + [col for col in df.columns.tolist() if col not in ["URL", "Provider", "Model"]]] | |
with gr.Blocks("ParityError/Interstellar") as demo: | |
gr.Markdown( | |
""" | |
<h1 style="margin: 0;">InfraBench - A Leaderboard for Inference Providers</h1> | |
<br> | |
<div style="margin-bottom: 20px;"> | |
<p>Welcome to InfraBench, the ultimate leaderboard for evaluating inference providers. Our platform focuses on key metrics such as cost, quality, and compression to help you make informed decisions. Whether you're a developer, researcher, or business looking to optimize your inference processes, InfraBench provides the insights you need to choose the best provider for your needs.</p> | |
</div> | |
""" | |
) | |
with gr.Tabs(): | |
with gr.TabItem("InfraBench Leaderboard"): | |
median_inference_time_min = math.floor(float(df["Median Inference Time (in s)"].min())) | |
median_inference_time_max = math.ceil(float(df["Median Inference Time (in s)"].max())) | |
price_per_image_min = math.floor(float(df["Price per Image"].min())) | |
price_per_image_max = math.ceil(float(df["Price per Image"].max())) | |
Leaderboard( | |
value=df, | |
search_columns=["Model"], | |
filter_columns=[ | |
ColumnFilter( | |
column="Median Inference Time (in s)", | |
type="slider", | |
default=[median_inference_time_min, median_inference_time_max], | |
min=median_inference_time_min, | |
max=median_inference_time_max, | |
), | |
ColumnFilter( | |
column="Price per Image", | |
type="slider", | |
default=[price_per_image_min, price_per_image_max], | |
min=price_per_image_min, | |
max=price_per_image_max, | |
), | |
], | |
select_columns=df.columns.tolist(), | |
datatype="markdown", | |
) | |
with gr.Accordion("Citation", open=True): | |
gr.Markdown( | |
""" | |
```bibtex | |
@article{InfraBench, | |
title={InfraBench: A Leaderboard for Inference Providers}, | |
author={PrunaAI}, | |
year={2025}, | |
howpublished={\\url{https://huggingface.co./spaces/PrunaAI/InferBench}} | |
} | |
``` | |
""" | |
) | |
with gr.TabItem("About"): | |
gr.Markdown( | |
""" | |
# About InfraBench | |
InfraBench is a leaderboard for inference providers, focusing on cost, quality, and compression. | |
<h1>π Join the Pruna AI community!</h1> | |
<p><a rel="nofollow" href="https://twitter.com/PrunaAI"><img alt="Twitter" src="https://img.shields.io/twitter/follow/PrunaAI?style=social"></a> | |
<a rel="nofollow" href="https://github.com/PrunaAI/pruna"><img alt="GitHub" src="https://img.shields.io/github/stars/prunaai/pruna"></a> | |
<a rel="nofollow" href="https://www.linkedin.com/company/93832878/admin/feed/posts/?feedType=following"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-Connect-blue"></a> | |
<a rel="nofollow" href="https://discord.com/invite/rskEr4BZJx"><img alt="Discord" src="https://img.shields.io/badge/Discord-Join%20Us-blue?style=social&logo=discord"></a> | |
<a rel="nofollow" href="https://www.reddit.com/r/PrunaAI/"><img alt="Reddit" src="https://img.shields.io/reddit/subreddit-subscribers/PrunaAI?style=social"></a></p> | |
""" | |
) | |
if __name__ == "__main__": | |
demo.launch() | |