Spaces:
Running
Running
minor fix
Browse files- app.py +96 -94
- {Archive β archive}/BGE-VL-v1.5-mmeb.json +0 -0
- {Archive β archive}/BGE-VL-v1.5-zs.json +0 -0
- {Archive β archive}/LLaVE.json +0 -0
- {Archive β archive}/UNITE_MMEB_results.json +0 -0
- {Archive β archive}/UniME_results.json +0 -0
- {Archive β archive}/meta-score-BGE-VL-v1.5-mmeb.json +0 -0
- {Archive β archive}/meta-score-BGE-VL-v1.5-zs.json +0 -0
- {Archive β archive}/mmE5_mmeb.json +0 -0
- {Archive β archive}/mmeb-qqmm.json +0 -0
- {Archive β archive}/submission_CAFe.json +0 -0
- {Scores β scores}/LamRA-Ret-Qwen2.5VL-7b.json +0 -0
- {Scores β scores}/LamRA-Ret.json +0 -0
- {Scores β scores}/VLM2Vec-Qwen2-VL-V2.0-scores_report.json +0 -0
- {Scores β scores}/VLM2Vec-Qwen2-VL-V2.1-scores_report.json +0 -0
- {Scores β scores}/VLM2Vec-V1-Qwen2VL-2B.json +0 -0
- {Scores β scores}/VLM2Vec-V1-Qwen2VL-7B.json +0 -0
- {Scores β scores}/VLM2Vec-V2.0-Qwen2VL-2B.json +0 -0
- {Scores β scores}/colpali-v1.3.json +0 -0
- {Scores β scores}/gme-Qwen2-VL-2B-Instruct.json +0 -0
- {Scores β scores}/gme-Qwen2-VL-7B-Instruct.json +0 -0
- utils.py +1 -1
- utils_v2.py +4 -4
app.py
CHANGED
@@ -24,89 +24,7 @@ with gr.Blocks() as block:
|
|
24 |
|
25 |
with gr.Tabs(elem_classes="tab-buttons") as tabs:
|
26 |
# Table 1
|
27 |
-
with gr.TabItem("π MMEB (
|
28 |
-
with gr.Row():
|
29 |
-
with gr.Accordion("Citation", open=False):
|
30 |
-
citation_button = gr.Textbox(
|
31 |
-
value=CITATION_BUTTON_TEXT,
|
32 |
-
label=CITATION_BUTTON_LABEL,
|
33 |
-
elem_id="citation-button",
|
34 |
-
lines=10,
|
35 |
-
)
|
36 |
-
gr.Markdown(TABLE_INTRODUCTION)
|
37 |
-
|
38 |
-
with gr.Row():
|
39 |
-
search_bar = gr.Textbox(
|
40 |
-
placeholder="Search models...",
|
41 |
-
show_label=False,
|
42 |
-
elem_id="search-bar"
|
43 |
-
)
|
44 |
-
|
45 |
-
df = get_df()
|
46 |
-
min_size, max_size = get_size_range(df)
|
47 |
-
|
48 |
-
with gr.Row():
|
49 |
-
min_size_slider = gr.Slider(
|
50 |
-
minimum=min_size,
|
51 |
-
maximum=max_size,
|
52 |
-
value=min_size,
|
53 |
-
step=0.1,
|
54 |
-
label="Minimum number of parameters (B)",
|
55 |
-
)
|
56 |
-
max_size_slider = gr.Slider(
|
57 |
-
minimum=min_size,
|
58 |
-
maximum=max_size,
|
59 |
-
value=max_size,
|
60 |
-
step=0.1,
|
61 |
-
label="Maximum number of parameters (B)",
|
62 |
-
)
|
63 |
-
|
64 |
-
with gr.Row():
|
65 |
-
tasks_select = gr.CheckboxGroup(
|
66 |
-
choices=TASKS_V1,
|
67 |
-
value=TASKS_V1,
|
68 |
-
label="Select tasks to Display",
|
69 |
-
elem_id="tasks-select"
|
70 |
-
)
|
71 |
-
|
72 |
-
data_component = gr.components.Dataframe(
|
73 |
-
value=df[COLUMN_NAMES],
|
74 |
-
headers=COLUMN_NAMES,
|
75 |
-
type="pandas",
|
76 |
-
datatype=DATA_TITLE_TYPE,
|
77 |
-
interactive=False,
|
78 |
-
visible=True,
|
79 |
-
max_height=2400,
|
80 |
-
)
|
81 |
-
|
82 |
-
refresh_button = gr.Button("Refresh")
|
83 |
-
|
84 |
-
def update_with_tasks(*args):
|
85 |
-
return update_table(*args)
|
86 |
-
|
87 |
-
search_bar.change(
|
88 |
-
fn=update_with_tasks,
|
89 |
-
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
90 |
-
outputs=data_component
|
91 |
-
)
|
92 |
-
min_size_slider.change(
|
93 |
-
fn=update_with_tasks,
|
94 |
-
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
95 |
-
outputs=data_component
|
96 |
-
)
|
97 |
-
max_size_slider.change(
|
98 |
-
fn=update_with_tasks,
|
99 |
-
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
100 |
-
outputs=data_component
|
101 |
-
)
|
102 |
-
tasks_select.change(
|
103 |
-
fn=update_with_tasks,
|
104 |
-
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
105 |
-
outputs=data_component
|
106 |
-
)
|
107 |
-
refresh_button.click(fn=refresh_data, outputs=data_component)
|
108 |
-
|
109 |
-
with gr.TabItem("π **MMEB (V2)**", elem_id="qa-tab-table1", id=2):
|
110 |
with gr.Row():
|
111 |
with gr.Accordion("Citation", open=False):
|
112 |
citation_button2 = gr.Textbox(
|
@@ -186,10 +104,10 @@ with gr.Blocks() as block:
|
|
186 |
inputs=[search_bar2, min_size_slider2, max_size_slider2, tasks_select2],
|
187 |
outputs=data_component2
|
188 |
)
|
189 |
-
|
190 |
|
191 |
-
# table
|
192 |
-
with gr.TabItem("πΌοΈ Image", elem_id="qa-tab-table1", id=
|
193 |
data_component3 = gr.components.Dataframe(
|
194 |
value=df2[v2.COLUMN_NAMES_I],
|
195 |
headers=v2.COLUMN_NAMES_I,
|
@@ -200,8 +118,8 @@ with gr.Blocks() as block:
|
|
200 |
max_height=2400,
|
201 |
)
|
202 |
|
203 |
-
# table
|
204 |
-
with gr.TabItem("π½ Video", elem_id="qa-tab-table1", id=
|
205 |
data_component4 = gr.components.Dataframe(
|
206 |
value=df2[v2.COLUMN_NAMES_V],
|
207 |
headers=v2.COLUMN_NAMES_V,
|
@@ -212,8 +130,8 @@ with gr.Blocks() as block:
|
|
212 |
max_height=2400,
|
213 |
)
|
214 |
|
215 |
-
# table
|
216 |
-
with gr.TabItem("π Visual Doc", elem_id="qa-tab-table1", id=
|
217 |
data_component5 = gr.components.Dataframe(
|
218 |
value=df2[v2.COLUMN_NAMES_D],
|
219 |
headers=v2.COLUMN_NAMES_D,
|
@@ -224,14 +142,98 @@ with gr.Blocks() as block:
|
|
224 |
max_height=2400,
|
225 |
)
|
226 |
|
227 |
-
# table
|
228 |
-
with gr.TabItem("π About", elem_id="qa-tab-table2", id=
|
229 |
gr.Markdown(LEADERBOARD_INFO, elem_classes="markdown-text")
|
230 |
gr.Image("overview.png", width=900, label="Dataset Overview")
|
231 |
|
232 |
-
# table
|
233 |
-
with gr.TabItem("π Submit here! ", elem_id="submit-tab", id=
|
234 |
with gr.Row():
|
235 |
gr.Markdown(SUBMIT_INTRODUCTION, elem_classes="markdown-text")
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
block.launch(share=True)
|
|
|
24 |
|
25 |
with gr.Tabs(elem_classes="tab-buttons") as tabs:
|
26 |
# Table 1
|
27 |
+
with gr.TabItem("π MMEB (V2)", elem_id="qa-tab-table1", id=1):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
with gr.Row():
|
29 |
with gr.Accordion("Citation", open=False):
|
30 |
citation_button2 = gr.Textbox(
|
|
|
104 |
inputs=[search_bar2, min_size_slider2, max_size_slider2, tasks_select2],
|
105 |
outputs=data_component2
|
106 |
)
|
107 |
+
refresh_button2.click(fn=v2.refresh_data, outputs=data_component2)
|
108 |
|
109 |
+
# table 2
|
110 |
+
with gr.TabItem("πΌοΈ Image", elem_id="qa-tab-table1", id=2):
|
111 |
data_component3 = gr.components.Dataframe(
|
112 |
value=df2[v2.COLUMN_NAMES_I],
|
113 |
headers=v2.COLUMN_NAMES_I,
|
|
|
118 |
max_height=2400,
|
119 |
)
|
120 |
|
121 |
+
# table 3
|
122 |
+
with gr.TabItem("π½ Video", elem_id="qa-tab-table1", id=3):
|
123 |
data_component4 = gr.components.Dataframe(
|
124 |
value=df2[v2.COLUMN_NAMES_V],
|
125 |
headers=v2.COLUMN_NAMES_V,
|
|
|
130 |
max_height=2400,
|
131 |
)
|
132 |
|
133 |
+
# table 4
|
134 |
+
with gr.TabItem("π Visual Doc", elem_id="qa-tab-table1", id=4):
|
135 |
data_component5 = gr.components.Dataframe(
|
136 |
value=df2[v2.COLUMN_NAMES_D],
|
137 |
headers=v2.COLUMN_NAMES_D,
|
|
|
142 |
max_height=2400,
|
143 |
)
|
144 |
|
145 |
+
# table 5
|
146 |
+
with gr.TabItem("π About", elem_id="qa-tab-table2", id=5):
|
147 |
gr.Markdown(LEADERBOARD_INFO, elem_classes="markdown-text")
|
148 |
gr.Image("overview.png", width=900, label="Dataset Overview")
|
149 |
|
150 |
+
# table 6
|
151 |
+
with gr.TabItem("π Submit here! ", elem_id="submit-tab", id=6):
|
152 |
with gr.Row():
|
153 |
gr.Markdown(SUBMIT_INTRODUCTION, elem_classes="markdown-text")
|
154 |
|
155 |
+
# table 7
|
156 |
+
with gr.TabItem("π MMEB (Archived)", elem_id="qa-tab-table1", id=7):
|
157 |
+
with gr.Row():
|
158 |
+
with gr.Accordion("Citation", open=False):
|
159 |
+
citation_button = gr.Textbox(
|
160 |
+
value=CITATION_BUTTON_TEXT,
|
161 |
+
label=CITATION_BUTTON_LABEL,
|
162 |
+
elem_id="citation-button",
|
163 |
+
lines=10,
|
164 |
+
)
|
165 |
+
gr.Markdown(TABLE_INTRODUCTION)
|
166 |
+
|
167 |
+
with gr.Row():
|
168 |
+
search_bar = gr.Textbox(
|
169 |
+
placeholder="Search models...",
|
170 |
+
show_label=False,
|
171 |
+
elem_id="search-bar"
|
172 |
+
)
|
173 |
+
|
174 |
+
df = get_df()
|
175 |
+
min_size, max_size = get_size_range(df)
|
176 |
+
|
177 |
+
with gr.Row():
|
178 |
+
min_size_slider = gr.Slider(
|
179 |
+
minimum=min_size,
|
180 |
+
maximum=max_size,
|
181 |
+
value=min_size,
|
182 |
+
step=0.1,
|
183 |
+
label="Minimum number of parameters (B)",
|
184 |
+
)
|
185 |
+
max_size_slider = gr.Slider(
|
186 |
+
minimum=min_size,
|
187 |
+
maximum=max_size,
|
188 |
+
value=max_size,
|
189 |
+
step=0.1,
|
190 |
+
label="Maximum number of parameters (B)",
|
191 |
+
)
|
192 |
+
|
193 |
+
with gr.Row():
|
194 |
+
tasks_select = gr.CheckboxGroup(
|
195 |
+
choices=TASKS_V1,
|
196 |
+
value=TASKS_V1,
|
197 |
+
label="Select tasks to Display",
|
198 |
+
elem_id="tasks-select"
|
199 |
+
)
|
200 |
+
|
201 |
+
data_component = gr.components.Dataframe(
|
202 |
+
value=df[COLUMN_NAMES],
|
203 |
+
headers=COLUMN_NAMES,
|
204 |
+
type="pandas",
|
205 |
+
datatype=DATA_TITLE_TYPE,
|
206 |
+
interactive=False,
|
207 |
+
visible=True,
|
208 |
+
max_height=2400,
|
209 |
+
)
|
210 |
+
|
211 |
+
refresh_button = gr.Button("Refresh")
|
212 |
+
|
213 |
+
def update_with_tasks(*args):
|
214 |
+
return update_table(*args)
|
215 |
+
|
216 |
+
search_bar.change(
|
217 |
+
fn=update_with_tasks,
|
218 |
+
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
219 |
+
outputs=data_component
|
220 |
+
)
|
221 |
+
min_size_slider.change(
|
222 |
+
fn=update_with_tasks,
|
223 |
+
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
224 |
+
outputs=data_component
|
225 |
+
)
|
226 |
+
max_size_slider.change(
|
227 |
+
fn=update_with_tasks,
|
228 |
+
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
229 |
+
outputs=data_component
|
230 |
+
)
|
231 |
+
tasks_select.change(
|
232 |
+
fn=update_with_tasks,
|
233 |
+
inputs=[search_bar, min_size_slider, max_size_slider, tasks_select],
|
234 |
+
outputs=data_component
|
235 |
+
)
|
236 |
+
refresh_button.click(fn=refresh_data, outputs=data_component)
|
237 |
+
|
238 |
+
|
239 |
block.launch(share=True)
|
{Archive β archive}/BGE-VL-v1.5-mmeb.json
RENAMED
File without changes
|
{Archive β archive}/BGE-VL-v1.5-zs.json
RENAMED
File without changes
|
{Archive β archive}/LLaVE.json
RENAMED
File without changes
|
{Archive β archive}/UNITE_MMEB_results.json
RENAMED
File without changes
|
{Archive β archive}/UniME_results.json
RENAMED
File without changes
|
{Archive β archive}/meta-score-BGE-VL-v1.5-mmeb.json
RENAMED
File without changes
|
{Archive β archive}/meta-score-BGE-VL-v1.5-zs.json
RENAMED
File without changes
|
{Archive β archive}/mmE5_mmeb.json
RENAMED
File without changes
|
{Archive β archive}/mmeb-qqmm.json
RENAMED
File without changes
|
{Archive β archive}/submission_CAFe.json
RENAMED
File without changes
|
{Scores β scores}/LamRA-Ret-Qwen2.5VL-7b.json
RENAMED
File without changes
|
{Scores β scores}/LamRA-Ret.json
RENAMED
File without changes
|
{Scores β scores}/VLM2Vec-Qwen2-VL-V2.0-scores_report.json
RENAMED
File without changes
|
{Scores β scores}/VLM2Vec-Qwen2-VL-V2.1-scores_report.json
RENAMED
File without changes
|
{Scores β scores}/VLM2Vec-V1-Qwen2VL-2B.json
RENAMED
File without changes
|
{Scores β scores}/VLM2Vec-V1-Qwen2VL-7B.json
RENAMED
File without changes
|
{Scores β scores}/VLM2Vec-V2.0-Qwen2VL-2B.json
RENAMED
File without changes
|
{Scores β scores}/colpali-v1.3.json
RENAMED
File without changes
|
{Scores β scores}/gme-Qwen2-VL-2B-Instruct.json
RENAMED
File without changes
|
{Scores β scores}/gme-Qwen2-VL-7B-Instruct.json
RENAMED
File without changes
|
utils.py
CHANGED
@@ -18,7 +18,7 @@ DATA_TITLE_TYPE = ['number', 'markdown', 'str', 'markdown'] + \
|
|
18 |
['number'] * len(TASKS_V1)
|
19 |
|
20 |
LEADERBOARD_INTRODUCTION = """
|
21 |
-
# π **MMEB LEADERBOARD**
|
22 |
|
23 |
## Introduction
|
24 |
We introduce a novel benchmark, **MMEB-V1 (Massive Multimodal Embedding Benchmark)**,
|
|
|
18 |
['number'] * len(TASKS_V1)
|
19 |
|
20 |
LEADERBOARD_INTRODUCTION = """
|
21 |
+
# π **MMEB LEADERBOARD (VLM2Vec)**
|
22 |
|
23 |
## Introduction
|
24 |
We introduce a novel benchmark, **MMEB-V1 (Massive Multimodal Embedding Benchmark)**,
|
utils_v2.py
CHANGED
@@ -11,7 +11,7 @@ def sum_lst(lst):
|
|
11 |
total += item
|
12 |
return total
|
13 |
|
14 |
-
SCORE_BASE_DIR = "
|
15 |
META_DATA = ["model_name", "model_size", "url"]
|
16 |
DATASETS = {
|
17 |
"image": {
|
@@ -41,9 +41,9 @@ BASE_COLS = ['Rank', 'Models', 'Model Size(B)']
|
|
41 |
TASKS = ["Overall", "I-CLS", "I-QA", "I-RET", "I-VG", "VisDoc", "V-CLS", "V-QA", "V-RET", "V-MRET"]
|
42 |
BASE_DATA_TITLE_TYPE = ['number', 'markdown', 'str', 'markdown']
|
43 |
|
44 |
-
COLUMN_NAMES = BASE_COLS +
|
45 |
DATA_TITLE_TYPE = BASE_DATA_TITLE_TYPE + \
|
46 |
-
['number'] *
|
47 |
|
48 |
TASKS_I = ['Image-Overall'] + ALL_DATASETS_SPLITS['image']
|
49 |
COLUMN_NAMES_I = BASE_COLS + TASKS_I
|
@@ -97,7 +97,7 @@ def load_scores(raw_scores=None):
|
|
97 |
if modality == 'visdoc':
|
98 |
metric = "ndcg_linear@5" if "ndcg_linear@5" in score else "ndcg@5"
|
99 |
score = score.get(metric, 0.0)
|
100 |
-
all_scores[dataset] = round(score,
|
101 |
return all_scores
|
102 |
|
103 |
def calculate_score(raw_scores=None):
|
|
|
11 |
total += item
|
12 |
return total
|
13 |
|
14 |
+
SCORE_BASE_DIR = "scores"
|
15 |
META_DATA = ["model_name", "model_size", "url"]
|
16 |
DATASETS = {
|
17 |
"image": {
|
|
|
41 |
TASKS = ["Overall", "I-CLS", "I-QA", "I-RET", "I-VG", "VisDoc", "V-CLS", "V-QA", "V-RET", "V-MRET"]
|
42 |
BASE_DATA_TITLE_TYPE = ['number', 'markdown', 'str', 'markdown']
|
43 |
|
44 |
+
COLUMN_NAMES = BASE_COLS + ["Overall", 'Image-Overall', 'Video-Overall', 'VisDoc']
|
45 |
DATA_TITLE_TYPE = BASE_DATA_TITLE_TYPE + \
|
46 |
+
['number'] * 3
|
47 |
|
48 |
TASKS_I = ['Image-Overall'] + ALL_DATASETS_SPLITS['image']
|
49 |
COLUMN_NAMES_I = BASE_COLS + TASKS_I
|
|
|
97 |
if modality == 'visdoc':
|
98 |
metric = "ndcg_linear@5" if "ndcg_linear@5" in score else "ndcg@5"
|
99 |
score = score.get(metric, 0.0)
|
100 |
+
all_scores[dataset] = round(score, 4) * 100.0
|
101 |
return all_scores
|
102 |
|
103 |
def calculate_score(raw_scores=None):
|