File size: 6,865 Bytes
e16fd64
 
 
35378f6
 
e16fd64
35378f6
 
 
 
e16fd64
 
35378f6
e16fd64
35378f6
 
e16fd64
 
35378f6
4f18cc8
35378f6
 
 
e16fd64
 
35378f6
 
 
e16fd64
 
 
 
d12b8ee
e16fd64
 
 
 
 
 
35378f6
e16fd64
35378f6
e16fd64
 
 
 
 
35378f6
e16fd64
35378f6
e16fd64
 
 
 
 
 
 
 
 
 
 
35378f6
e16fd64
 
35378f6
 
 
 
 
 
 
 
 
 
 
 
e16fd64
35378f6
e16fd64
 
35378f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e16fd64
b345ff4
 
 
 
 
 
 
 
 
e16fd64
35378f6
e16fd64
 
 
35378f6
e16fd64
35378f6
 
 
 
 
 
b345ff4
35378f6
 
 
 
 
 
b345ff4
35378f6
 
 
 
 
 
b345ff4
35378f6
 
 
e16fd64
35378f6
e16fd64
b345ff4
 
 
 
 
 
 
 
e16fd64
 
 
 
 
 
35378f6
 
e16fd64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35378f6
e16fd64
35378f6
e16fd64
 
 
35378f6
 
 
e16fd64
35378f6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
import gradio as gr

from src.assets.text_content import TITLE, INTRODUCTION_TEXT
from src.leaderboard_utils import filter_search, get_github_data
from src.plot_utils import split_models, compare_plots

# For Leaderboards
# Get CSV data
global primary_leaderboard_df, version_dfs, version_names
primary_leaderboard_df, version_dfs, version_names = get_github_data()

global prev_df
prev_df = version_dfs[0]
def select_prev_df(name):
    ind = version_names.index(name)
    prev_df = version_dfs[ind]
    return prev_df

# For Plots 
global plot_df, OPEN_MODELS, CLOSED_MODELS
plot_df = primary_leaderboard_df[0]
MODELS = list(plot_df[list(plot_df.columns)[0]].unique())
OPEN_MODELS, CLOSED_MODELS = split_models(MODELS)


# MAIN APPLICATION s
main_app = gr.Blocks()
with main_app:
    gr.HTML(TITLE)
    gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")

    with gr.Tabs(elem_classes="tab-buttons") as tabs:
        with gr.TabItem("πŸ₯‡ CLEM Leaderboard", elem_id="llm-benchmark-tab-table", id=0):
            with gr.Row():
                search_bar = gr.Textbox(
                    placeholder=" πŸ” Search for models - separate multiple queries with `;` and press ENTER...",
                    show_label=False,
                    elem_id="search-bar",
                )
                                    
            leaderboard_table = gr.components.Dataframe(
                value=primary_leaderboard_df[0],
                elem_id="leaderboard-table",
                interactive=False,
                visible=True,
            )

            # Add a dummy leaderboard to handle search queries from the primary_leaderboard_df and not update primary_leaderboard_df
            dummy_leaderboard_table = gr.components.Dataframe(
                value=primary_leaderboard_df[0],
                elem_id="leaderboard-table",
                interactive=False,
                visible=False,
            )
                
            search_bar.submit(
                filter_search,
                [dummy_leaderboard_table, search_bar],
                leaderboard_table,
                queue=True
            )

        with gr.TabItem("πŸ“ˆ Plot", id=3):
            with gr.Row():
                open_models_selection = gr.CheckboxGroup(
                    OPEN_MODELS, 
                    label="Open-weight Models 🌐",
                    value=[],
                    elem_id="value-select",
                    interactive=True,
                )

            with gr.Row():
                closed_models_selection = gr.CheckboxGroup(
                    CLOSED_MODELS, 
                    label="Closed-weight Models πŸ’Ό",
                    value=[],
                    elem_id="value-select-2",
                    interactive=True,
                )
            
            with gr.Row():
                with gr.Column():
                    show_all = gr.CheckboxGroup(
                        ["Select All Models"],
                        label="Show plot for all models πŸ€–",
                        value=[],
                        elem_id="value-select-3",
                        interactive=True,
                    )
                
                with gr.Column():
                    show_names = gr.CheckboxGroup(
                        ["Show Names"],
                        label ="Show names of models on the plot 🏷️",
                        value=[],
                        elem_id="value-select-4",
                        interactive=True,
                    ) 

                with gr.Column():
                    show_legend = gr.CheckboxGroup(
                        ["Show Legend"],
                        label ="Show legend on the plot πŸ’‘",
                        value=[],
                        elem_id="value-select-5",
                        interactive=True,
                    ) 

            with gr.Row():
                dummy_plot_df = gr.DataFrame(
                    value=plot_df,
                    visible=False
                )

            with gr.Row():
                with gr.Column():
                    # Output block for the plot
                    plot_output = gr.Plot()

            open_models_selection.change(
                compare_plots,
                [dummy_plot_df, open_models_selection, closed_models_selection, show_all, show_names, show_legend],
                plot_output,
                queue=True
            )

            closed_models_selection.change(
                compare_plots,
                [dummy_plot_df, open_models_selection, closed_models_selection, show_all, show_names, show_legend],
                plot_output,
                queue=True
            )
            
            show_all.change(
                compare_plots,
                [dummy_plot_df, open_models_selection, closed_models_selection, show_all, show_names, show_legend],
                plot_output,
                queue=True
            )

            show_names.change(
                compare_plots,
                [dummy_plot_df, open_models_selection, closed_models_selection, show_all, show_names, show_legend],
                plot_output,
                queue=True
            )

            show_legend.change(
                compare_plots,
                [dummy_plot_df, open_models_selection, closed_models_selection, show_all, show_names, show_legend],
                plot_output,
                queue=True
            )

        with gr.TabItem("πŸ”„ Versions and Details", elem_id="details", id=2):
            with gr.Row():
                version_select = gr.Dropdown(
                    version_names, label="Select Version πŸ•ΉοΈ", value=version_names[0]
                )
            with gr.Row():
                search_bar_prev = gr.Textbox(
                    placeholder=" πŸ” Search for models - separate multiple queries with `;` and press ENTER...",
                    show_label=False,
                    elem_id="search-bar-2",
                )

            prev_table = gr.components.Dataframe(
                value=prev_df,
                elem_id="leaderboard-table",
                interactive=False,
                visible=True,
            )

            dummy_prev_table = gr.components.Dataframe(
                value=prev_df,
                elem_id="leaderboard-table",
                interactive=False,
                visible=False,
            )

            search_bar_prev.submit(
                filter_search,
                [dummy_prev_table, search_bar_prev],
                prev_table,
                queue=True
            )

            version_select.change(
                select_prev_df,
                [version_select],
                prev_table,
                queue=True
            )
    main_app.load()

main_app.queue()

main_app.launch()