[update] info
Browse files- .DS_Store +0 -0
- app.py +69 -31
- src/about.py +1 -1
.DS_Store
CHANGED
Binary files a/.DS_Store and b/.DS_Store differ
|
|
app.py
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
import gradio as gr
|
2 |
-
from gradio_leaderboard import Leaderboard, ColumnFilter, SelectColumns
|
3 |
import pandas as pd
|
4 |
|
5 |
from src.about import (
|
@@ -16,33 +15,8 @@ from src.display.css_html_js import custom_css
|
|
16 |
|
17 |
|
18 |
LEADERBOARD_DF = pd.read_csv("leaderboard_data.csv")
|
19 |
-
|
20 |
-
|
21 |
-
def init_leaderboard(dataframe):
|
22 |
-
if dataframe is None or dataframe.empty:
|
23 |
-
raise ValueError("Leaderboard DataFrame is empty or None.")
|
24 |
-
|
25 |
-
all_columns = dataframe.columns.tolist()
|
26 |
-
|
27 |
-
datatypes = ['str'] * len(all_columns)
|
28 |
-
|
29 |
-
default_selection = all_columns
|
30 |
-
search_columns = [all_columns[0]] if all_columns else []
|
31 |
-
|
32 |
-
return Leaderboard(
|
33 |
-
value=dataframe,
|
34 |
-
datatype=datatypes,
|
35 |
-
select_columns=SelectColumns(
|
36 |
-
default_selection=default_selection,
|
37 |
-
cant_deselect=[],
|
38 |
-
label="Select Columns to Display:",
|
39 |
-
),
|
40 |
-
search_columns=search_columns,
|
41 |
-
hide_columns=[],
|
42 |
-
filter_columns=[ColumnFilter(col, type="checkboxgroup", label=f"{col} types") for col in search_columns],
|
43 |
-
bool_checkboxgroup_label="Hide models",
|
44 |
-
interactive=False,
|
45 |
-
)
|
46 |
|
47 |
|
48 |
demo = gr.Blocks(css=custom_css)
|
@@ -51,10 +25,74 @@ with demo:
|
|
51 |
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
|
52 |
|
53 |
with gr.Tabs(elem_classes="tab-buttons") as tabs:
|
54 |
-
with gr.TabItem("
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
-
with gr.TabItem("📝
|
58 |
gr.Markdown(LLM_BENCHMARKS_TEXT, elem_classes="markdown-text")
|
59 |
|
60 |
with gr.Row():
|
|
|
1 |
import gradio as gr
|
|
|
2 |
import pandas as pd
|
3 |
|
4 |
from src.about import (
|
|
|
15 |
|
16 |
|
17 |
LEADERBOARD_DF = pd.read_csv("leaderboard_data.csv")
|
18 |
+
# Ensure all data is treated as string initially for display consistency
|
19 |
+
LEADERBOARD_DF = LEADERBOARD_DF.astype(str)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
|
22 |
demo = gr.Blocks(css=custom_css)
|
|
|
25 |
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
|
26 |
|
27 |
with gr.Tabs(elem_classes="tab-buttons") as tabs:
|
28 |
+
with gr.TabItem("Unified performance evaluation of VLM captioners", elem_id="llm-benchmark-tab-table", id=0):
|
29 |
+
with gr.Column():
|
30 |
+
# 1. Display the table first
|
31 |
+
# Make DataFrame interactive for sorting
|
32 |
+
table_output = gr.DataFrame(value=LEADERBOARD_DF, label="Leaderboard Results", interactive=True, wrap=True)
|
33 |
+
|
34 |
+
gr.Markdown("---") # Visual separator
|
35 |
+
|
36 |
+
# 2. Controls below the table
|
37 |
+
gr.Markdown("### Display Options")
|
38 |
+
|
39 |
+
all_columns_list = LEADERBOARD_DF.columns.tolist()
|
40 |
+
column_selector = gr.CheckboxGroup(
|
41 |
+
choices=all_columns_list,
|
42 |
+
value=all_columns_list, # Initially, all columns are selected
|
43 |
+
label="Select Columns to Display:"
|
44 |
+
)
|
45 |
+
|
46 |
+
# Assuming the first column is 'Model' for filtering
|
47 |
+
# If leaderboard_data.csv might be empty or have no columns, add checks
|
48 |
+
model_filter_col_name = ""
|
49 |
+
model_filter_choices = []
|
50 |
+
if not LEADERBOARD_DF.empty and LEADERBOARD_DF.columns.any():
|
51 |
+
model_filter_col_name = LEADERBOARD_DF.columns[0]
|
52 |
+
model_filter_choices = LEADERBOARD_DF[model_filter_col_name].astype(str).unique().tolist()
|
53 |
+
|
54 |
+
model_selector = gr.CheckboxGroup(
|
55 |
+
choices=model_filter_choices,
|
56 |
+
value=model_filter_choices, # Initially, all models are selected
|
57 |
+
label=f"Filter by {model_filter_col_name} types:" if model_filter_col_name else "Model Filter"
|
58 |
+
)
|
59 |
+
|
60 |
+
# Update function for the table
|
61 |
+
def update_table(selected_cols, selected_models_from_filter):
|
62 |
+
temp_df = LEADERBOARD_DF.copy()
|
63 |
+
|
64 |
+
# Filter by selected models (from the first column)
|
65 |
+
if model_filter_col_name and selected_models_from_filter:
|
66 |
+
temp_df = temp_df[temp_df[model_filter_col_name].isin(selected_models_from_filter)]
|
67 |
+
elif model_filter_col_name and not selected_models_from_filter: # No models selected, show empty
|
68 |
+
temp_df = pd.DataFrame(columns=LEADERBOARD_DF.columns)
|
69 |
+
|
70 |
+
|
71 |
+
# Select display columns
|
72 |
+
# Ensure selected_cols are valid columns present in the temp_df after filtering
|
73 |
+
valid_selected_cols = [col for col in selected_cols if col in temp_df.columns]
|
74 |
+
if not valid_selected_cols and not temp_df.empty : # If all columns are deselected, but df is not empty, show all original columns of filtered
|
75 |
+
final_df = temp_df
|
76 |
+
elif not valid_selected_cols and temp_df.empty: # if all columns deselected and df is empty
|
77 |
+
final_df = pd.DataFrame(columns=selected_cols) # empty df with original column names
|
78 |
+
else:
|
79 |
+
final_df = temp_df[valid_selected_cols]
|
80 |
+
|
81 |
+
return gr.DataFrame.update(value=final_df)
|
82 |
+
|
83 |
+
# Event listeners
|
84 |
+
column_selector.change(
|
85 |
+
fn=update_table,
|
86 |
+
inputs=[column_selector, model_selector],
|
87 |
+
outputs=[table_output]
|
88 |
+
)
|
89 |
+
model_selector.change(
|
90 |
+
fn=update_table,
|
91 |
+
inputs=[column_selector, model_selector],
|
92 |
+
outputs=[table_output]
|
93 |
+
)
|
94 |
|
95 |
+
with gr.TabItem("📝 Bias-aware evaluation of VLM ", elem_id="llm-benchmark-tab-table", id=2):
|
96 |
gr.Markdown(LLM_BENCHMARKS_TEXT, elem_classes="markdown-text")
|
97 |
|
98 |
with gr.Row():
|
src/about.py
CHANGED
@@ -21,7 +21,7 @@ NUM_FEWSHOT = 0 # Change with your few shot
|
|
21 |
|
22 |
|
23 |
# Your leaderboard name
|
24 |
-
TITLE = """<h1 align="center" id="space-title"
|
25 |
|
26 |
# What does your leaderboard evaluate?
|
27 |
INTRODUCTION_TEXT = """
|
|
|
21 |
|
22 |
|
23 |
# Your leaderboard name
|
24 |
+
TITLE = """<h1 align="center" id="space-title">🪷 LOTUS: A Leaderboard for Detailed Image Captioning from Quality to Societal Bias and User Preferences</h1>"""
|
25 |
|
26 |
# What does your leaderboard evaluate?
|
27 |
INTRODUCTION_TEXT = """
|