Spaces:
Sleeping
Sleeping
| 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') | |