fenglinliu's picture
Update app.py
616c89c verified
raw
history blame contribute delete
3.81 kB
import abc
import gradio as gr
from gen_table import *
from meta_data import *
with gr.Blocks() as demo:
struct = load_results_local()
results = struct['results']
N_MODEL = len(results)
N_DATA = len(results['Claude-2']) - 1
DATASETS = list(results['Claude-2'])
DATASETS.remove('META')
print(DATASETS)
gr.Markdown(LEADERBORAD_INTRODUCTION)
structs = [abc.abstractproperty() for _ in range(N_DATA)]
with gr.Tabs(elem_classes='tab-buttons') as tabs:
with gr.TabItem('🏅 Medical LLM Leaderboard', elem_id='main', id=0):
gr.Markdown(LEADERBOARD_MD['MAIN'])
gr.Image(
value=IMAGE_PATH,
label='Medical LLM Benchmark',
width=1200,
height=900
)
gr.Markdown(LEADERBOARD_MD['RESULT'])
_, check_box = BUILD_L1_DF(results, MAIN_FIELDS)
table = generate_table(results, DEFAULT_BENCH)
table['Rank'] = list(range(1, len(table) + 1))
type_map = check_box['type_map']
type_map['Rank'] = 'number'
checkbox_group = gr.CheckboxGroup(
choices=check_box['all'],
value=check_box['required'],
label='Evaluation Dimension',
interactive=True,
)
headers = ['Rank'] + check_box['essential'] + checkbox_group.value
with gr.Row():
model_size = gr.CheckboxGroup(
choices=MODEL_SIZE,
value=MODEL_SIZE,
label='Model Size',
interactive=True
)
model_type = gr.CheckboxGroup(
choices=MODEL_TYPE,
value=MODEL_TYPE,
label='Model Type',
interactive=True
)
print(headers)
print(check_box['essential'])
data_component = gr.components.DataFrame(
value=table[headers],
type='pandas',
datatype=[type_map[x] for x in headers],
interactive=False,
visible=True,
elem_classes="data-table"
)
def filter_df(fields, model_size, model_type):
filter_list = ['Avg Score', 'Avg Rank']
headers = ['Rank'] + check_box['essential'] + fields
new_fields = [field for field in fields if field not in filter_list]
df = generate_table(results, new_fields)
df['flag'] = [model_size_flag(x, model_size) for x in df['Param (B)']]
df = df[df['flag']]
df.pop('flag')
if len(df):
df['flag'] = [model_type_flag(df.iloc[i], model_type) for i in range(len(df))]
df = df[df['flag']]
df.pop('flag')
df['Rank'] = list(range(1, len(df) + 1))
comp = gr.components.DataFrame(
value=df[headers],
type='pandas',
datatype=[type_map[x] for x in headers],
interactive=False,
visible=True)
return comp
for cbox in [checkbox_group, model_size, model_type]:
cbox.change(fn=filter_df, inputs=[checkbox_group, model_size, model_type], outputs=data_component)
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)
if __name__ == '__main__':
demo.launch(server_name='0.0.0.0')