InferBench / app.py
davidberenstein1957's picture
Add citation section and community links to app.py
83c9fd8
raw
history blame
4.35 kB
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&amp;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()