huckiyang commited on
Commit
7182724
·
1 Parent(s): 7fe24e8

[update] info

Browse files
Files changed (3) hide show
  1. .DS_Store +0 -0
  2. app.py +69 -31
  3. 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("🏅 LLM Benchmark", elem_id="llm-benchmark-tab-table", id=0):
55
- leaderboard = init_leaderboard(LEADERBOARD_DF)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
- with gr.TabItem("📝 About", elem_id="llm-benchmark-tab-table", id=2):
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">Demo leaderboard</h1>"""
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 = """