Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
block = gr.Blocks(title="LongVideoBench Leaderboard", theme='gradio/soft') | |
# Function to sort data and filter columns based on checkboxes | |
def sort_data(key, show_duration, show_category): | |
data = pd.read_csv("result.csv") | |
duration_columns = ['8s-15s', '15s-60s', '180s-600s', '900s-3600s'] | |
category_columns = ['S2E', 'S2O', 'S2A', 'E2O', 'SSS', 'SOS', 'SAA', 'T3E', 'T3O', 'TOS', 'TAA'] | |
columns_to_show = ['Model', 'Test Total'] | |
if show_duration: | |
columns_to_show += duration_columns | |
if show_category: | |
columns_to_show += category_columns | |
columns_to_show += ['Val Total', 'LMM Type', 'Interleaved?', "#Max Frames"] | |
if key in data.columns: | |
df_sorted = data.sort_values(by=key, ascending=False) | |
else: | |
df_sorted = data.sort_values(by='Test Total', ascending=False) | |
return df_sorted[columns_to_show] | |
with block: | |
gr.HTML("<link rel='stylesheet' type='text/css' href='style.css'>") | |
with gr.Row(): | |
gr.Markdown(""" | |
<div style='text-align: center;'> | |
<h1>LongVideoBench Leaderboard</h1> | |
Website: <a href="https://longvideobench.github.io" target="_blank">longvideobench.github.io</a> | |
</div> | |
""") | |
with gr.Tab("Existing Results"): | |
with gr.Row(): | |
show_duration = gr.Checkbox(label="Show Test Set Accuracy by Duration Groups", value=False) | |
show_category = gr.Checkbox(label="Show Test Set Accuracy by Question Categories", value=False) | |
key_input = gr.Textbox(label="Rank LMMs by column:", placeholder="Test Total (default)") | |
data_frame = gr.DataFrame(sort_data('Test Total', show_duration=False, show_category=False)) | |
def update_data_frame(key, show_duration, show_category): | |
return sort_data(key, show_duration, show_category) | |
key_input.change(update_data_frame, inputs=[key_input, show_duration, show_category], outputs=data_frame) | |
show_duration.change(update_data_frame, inputs=[key_input, show_duration, show_category], outputs=data_frame) | |
show_category.change(update_data_frame, inputs=[key_input, show_duration, show_category], outputs=data_frame) | |
gr.Markdown("Models are evaluated using their optimal #max frames, capped at 256 frames.") | |
with gr.Tab("Submit!"): | |
gr.Markdown( | |
'''The answer of validation set of LongVideoBench is public now. Please see our [released dataset](https://huggingface.co/datasets/longvideobench/LongVideoBench) for more information. | |
For test set, please prepare your output as follows: | |
```python | |
{VIDEO_ID_0: "A", VIDEO_ID_1: "D", ...} # Please make sure your submission only contains the letter of model's choice, or starts with the letter of model's choice. | |
``` | |
and submit to us as a JSON file. | |
Please prepare an email to `haoning001@e.ntu.edu.sg` titled [LongVideoBench-Submission-YOURNAME] to submit and obtain your results. | |
_We will launch an automatic submission server soon._''' | |
) | |
block.launch() |