MMLU-Pro / app.py
wenhu's picture
Update app.py
91c7bd8 verified
raw
history blame
4.27 kB
from utils import *
global data_component
def update_table(query, min_size, max_size, selected_subjects=None):
df = get_df()
filtered_df = search_and_filter_models(df, query, min_size, max_size)
if selected_subjects and len(selected_subjects) > 0:
base_columns = ['Models', 'Model Size(B)', 'Data Source', 'Overall']
selected_columns = base_columns + selected_subjects
filtered_df = filtered_df[selected_columns]
return filtered_df
with gr.Blocks() as block:
gr.Markdown(LEADERBOARD_INTRODUCTION)
with gr.Tabs(elem_classes="tab-buttons") as tabs:
# Table 1
with gr.TabItem("📊 MMLU-Pro", elem_id="qa-tab-table1", id=1):
with gr.Row():
with gr.Accordion("Citation", open=False):
citation_button = gr.Textbox(
value=CITATION_BUTTON_TEXT,
label=CITATION_BUTTON_LABEL,
elem_id="citation-button",
lines=10,
)
gr.Markdown(TABLE_INTRODUCTION)
with gr.Row():
search_bar = gr.Textbox(
placeholder="Search models...",
show_label=False,
elem_id="search-bar"
)
df = get_df()
min_size, max_size = get_size_range(df)
with gr.Row():
min_size_slider = gr.Slider(
minimum=min_size,
maximum=max_size,
value=min_size,
step=0.1,
label="Minimum number of parameters (B)",
)
max_size_slider = gr.Slider(
minimum=min_size,
maximum=max_size,
value=max_size,
step=0.1,
label="Maximum number of parameters (B)",
)
# 添加学科选择器
subject_choices = [col for col in COLUMN_NAMES if col not in ['Models', 'Model Size(B)', 'Data Source', 'Overall']]
with gr.Row():
subjects_select = gr.CheckboxGroup(
choices=subject_choices,
value=subject_choices, # 默认全选
label="Select Subjects to Display",
elem_id="subjects-select"
)
data_component = gr.components.Dataframe(
value=df[COLUMN_NAMES],
headers=COLUMN_NAMES,
type="pandas",
datatype=DATA_TITLE_TYPE,
interactive=False,
visible=True,
height=1500
)
refresh_button = gr.Button("Refresh")
# 更新事件处理
def update_with_subjects(*args):
return update_table(*args)
search_bar.change(
fn=update_with_subjects,
inputs=[search_bar, min_size_slider, max_size_slider, subjects_select],
outputs=data_component
)
min_size_slider.change(
fn=update_with_subjects,
inputs=[search_bar, min_size_slider, max_size_slider, subjects_select],
outputs=data_component
)
max_size_slider.change(
fn=update_with_subjects,
inputs=[search_bar, min_size_slider, max_size_slider, subjects_select],
outputs=data_component
)
subjects_select.change(
fn=update_with_subjects,
inputs=[search_bar, min_size_slider, max_size_slider, subjects_select],
outputs=data_component
)
refresh_button.click(fn=refresh_data, outputs=data_component)
# table 2
with gr.TabItem("📝 About", elem_id="qa-tab-table2", id=2):
gr.Markdown(LEADERBOARD_INFO, elem_classes="markdown-text")
# table 3
with gr.TabItem("🚀 Submit here! ", elem_id="submit-tab", id=3):
with gr.Row():
gr.Markdown(SUBMIT_INTRODUCTION, elem_classes="markdown-text")
block.launch(share=True)