Multimodal leaderboard

#25
by fzoll - opened
app/backend/constant.py CHANGED
@@ -69,6 +69,7 @@ class Similarity(Enum):
69
 
70
  LEADERBOARD_ICON_MAP = {
71
  "Text Leaderboard": "📚",
 
72
  "Law": "⚖️",
73
  "Multilingual": "🌎",
74
  "German": "🇩🇪",
@@ -80,7 +81,7 @@ LEADERBOARD_ICON_MAP = {
80
  "Finance": "💰",
81
  "French": "🇫🇷",
82
  "Japanese": "🇯🇵",
83
-
84
  }
85
 
86
  USERNAME = "embedding-benchmark"
 
69
 
70
  LEADERBOARD_ICON_MAP = {
71
  "Text Leaderboard": "📚",
72
+ "Multimodal Leaderboard": "🖼️",
73
  "Law": "⚖️",
74
  "Multilingual": "🌎",
75
  "German": "🇩🇪",
 
81
  "Finance": "💰",
82
  "French": "🇫🇷",
83
  "Japanese": "🇯🇵",
84
+ "Document_understanding": "📄",
85
  }
86
 
87
  USERNAME = "embedding-benchmark"
app/backend/data_page.py CHANGED
@@ -36,6 +36,15 @@ def is_section(group_name):
36
  return False
37
 
38
 
 
 
 
 
 
 
 
 
 
39
  def get_closed_dataset():
40
  data_engine = st.session_state.get("data_engine", DataEngine())
41
  closed_list = []
@@ -144,15 +153,18 @@ def table_area(group_name, grid_state, data_engine=None, df=None):
144
  column_list = []
145
  avg_column = None
146
  if is_section(group_name):
 
147
  avg_columns = []
148
  for column in df.columns:
149
-
150
- if column.startswith("Average"):
151
- avg_columns.insert(0, column)
152
- continue
153
- if "Average" in column:
154
- avg_columns.append(column)
155
  continue
 
 
 
 
 
 
 
156
  avg_column = avg_columns[0]
157
  column_list.extend(avg_columns)
158
  else:
@@ -179,7 +191,9 @@ def table_area(group_name, grid_state, data_engine=None, df=None):
179
  df["Open average"] = df[open_avg_list].mean(axis=1).round(2)
180
  column_list.append("Open average")
181
 
182
- df = df[COLUMNS + column_list].sort_values(by=avg_column, ascending=False)
 
 
183
 
184
  # rename avg column name
185
  if not is_section(group_name):
 
36
  return False
37
 
38
 
39
+ def get_leaderboard_groups(group_name):
40
+ """Get all group names belonging to the same leaderboard as group_name."""
41
+ for k, v in LEADERBOARD_MAP.items():
42
+ group_names = [g[0] for g in v]
43
+ if group_name in group_names:
44
+ return set(group_names)
45
+ return set()
46
+
47
+
48
  def get_closed_dataset():
49
  data_engine = st.session_state.get("data_engine", DataEngine())
50
  closed_list = []
 
153
  column_list = []
154
  avg_column = None
155
  if is_section(group_name):
156
+ lb_groups = get_leaderboard_groups(group_name)
157
  avg_columns = []
158
  for column in df.columns:
159
+ if not column.endswith("Average"):
 
 
 
 
 
160
  continue
161
+ # "Average" (bare) belongs to the "text" group
162
+ col_group = "text" if column == "Average" else column.replace(" Average", "").lower()
163
+ if col_group in lb_groups:
164
+ if column == "Average" or column.startswith(group_name.capitalize()):
165
+ avg_columns.insert(0, column)
166
+ else:
167
+ avg_columns.append(column)
168
  avg_column = avg_columns[0]
169
  column_list.extend(avg_columns)
170
  else:
 
191
  df["Open average"] = df[open_avg_list].mean(axis=1).round(2)
192
  column_list.append("Open average")
193
 
194
+ df = df[COLUMNS + column_list]
195
+ df = df[df[avg_column] > 0]
196
+ df = df.sort_values(by=avg_column, ascending=False)
197
 
198
  # rename avg column name
199
  if not is_section(group_name):