implements search bar
Browse files
app.py
CHANGED
@@ -81,16 +81,9 @@ COLS = [
|
|
81 |
"HellaSwag (10-shot) ⬆️",
|
82 |
"MMLU (5-shot) ⬆️",
|
83 |
"TruthfulQA (0-shot) ⬆️",
|
|
|
84 |
]
|
85 |
-
TYPES = [
|
86 |
-
"markdown",
|
87 |
-
"str",
|
88 |
-
"number",
|
89 |
-
"number",
|
90 |
-
"number",
|
91 |
-
"number",
|
92 |
-
"number",
|
93 |
-
]
|
94 |
|
95 |
if not IS_PUBLIC:
|
96 |
COLS.insert(2, "8bit")
|
@@ -115,7 +108,7 @@ def has_nan_values(df, columns):
|
|
115 |
return df[columns].isna().any(axis=1)
|
116 |
|
117 |
|
118 |
-
def
|
119 |
if repo:
|
120 |
print("Pulling evaluation results for the leaderboard.")
|
121 |
repo.git_pull()
|
@@ -132,6 +125,7 @@ def get_leaderboard():
|
|
132 |
"HellaSwag (10-shot) ⬆️": 95.3,
|
133 |
"MMLU (5-shot) ⬆️": 86.4,
|
134 |
"TruthfulQA (0-shot) ⬆️": 59.0,
|
|
|
135 |
}
|
136 |
all_data.append(gpt4_values)
|
137 |
gpt35_values = {
|
@@ -143,6 +137,7 @@ def get_leaderboard():
|
|
143 |
"HellaSwag (10-shot) ⬆️": 85.5,
|
144 |
"MMLU (5-shot) ⬆️": 70.0,
|
145 |
"TruthfulQA (0-shot) ⬆️": 47.0,
|
|
|
146 |
}
|
147 |
all_data.append(gpt35_values)
|
148 |
|
@@ -155,6 +150,7 @@ def get_leaderboard():
|
|
155 |
"HellaSwag (10-shot) ⬆️": 25.0,
|
156 |
"MMLU (5-shot) ⬆️": 25.0,
|
157 |
"TruthfulQA (0-shot) ⬆️": 25.0,
|
|
|
158 |
}
|
159 |
|
160 |
all_data.append(base_line)
|
@@ -168,7 +164,7 @@ def get_leaderboard():
|
|
168 |
return df
|
169 |
|
170 |
|
171 |
-
def
|
172 |
if repo:
|
173 |
print("Pulling changes for the evaluation queue.")
|
174 |
repo.git_pull()
|
@@ -216,8 +212,13 @@ def get_eval_table():
|
|
216 |
return df_finished[EVAL_COLS], df_running[EVAL_COLS], df_pending[EVAL_COLS]
|
217 |
|
218 |
|
219 |
-
|
220 |
-
|
|
|
|
|
|
|
|
|
|
|
221 |
|
222 |
|
223 |
def is_model_on_hub(model_name, revision) -> bool:
|
@@ -294,9 +295,18 @@ def add_new_eval(
|
|
294 |
|
295 |
|
296 |
def refresh():
|
297 |
-
|
298 |
-
|
299 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
|
301 |
|
302 |
custom_css = """
|
@@ -324,8 +334,20 @@ custom_css = """
|
|
324 |
margin: 6px;
|
325 |
transform: scale(1.3);
|
326 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
"""
|
328 |
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
demo = gr.Blocks(css=custom_css)
|
330 |
with demo:
|
331 |
gr.HTML(TITLE)
|
@@ -343,22 +365,35 @@ with demo:
|
|
343 |
with gr.Accordion("✨ CHANGELOG", open=False):
|
344 |
changelog = gr.Markdown(CHANGELOG_TEXT, elem_id="changelog-text")
|
345 |
|
|
|
|
|
346 |
leaderboard_table = gr.components.Dataframe(
|
347 |
-
value=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
)
|
349 |
|
350 |
gr.Markdown(EVALUATION_QUEUE_TEXT, elem_classes="markdown-text")
|
351 |
|
352 |
with gr.Accordion("✅ Finished Evaluations", open=False):
|
353 |
finished_eval_table = gr.components.Dataframe(
|
354 |
-
value=
|
355 |
headers=EVAL_COLS,
|
356 |
datatype=EVAL_TYPES,
|
357 |
max_rows=5,
|
358 |
)
|
359 |
with gr.Accordion("🔄 Running Evaluation Queue", open=False):
|
360 |
running_eval_table = gr.components.Dataframe(
|
361 |
-
value=
|
362 |
headers=EVAL_COLS,
|
363 |
datatype=EVAL_TYPES,
|
364 |
max_rows=5,
|
@@ -366,7 +401,7 @@ with demo:
|
|
366 |
|
367 |
with gr.Accordion("⏳ Pending Evaluation Queue", open=False):
|
368 |
pending_eval_table = gr.components.Dataframe(
|
369 |
-
value=
|
370 |
headers=EVAL_COLS,
|
371 |
datatype=EVAL_TYPES,
|
372 |
max_rows=5,
|
|
|
81 |
"HellaSwag (10-shot) ⬆️",
|
82 |
"MMLU (5-shot) ⬆️",
|
83 |
"TruthfulQA (0-shot) ⬆️",
|
84 |
+
"model_name_for_query", # dummy column to implement search bar (hidden by custom CSS)
|
85 |
]
|
86 |
+
TYPES = ["markdown", "str", "number", "number", "number", "number", "number", "str"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
|
88 |
if not IS_PUBLIC:
|
89 |
COLS.insert(2, "8bit")
|
|
|
108 |
return df[columns].isna().any(axis=1)
|
109 |
|
110 |
|
111 |
+
def get_leaderboard_df():
|
112 |
if repo:
|
113 |
print("Pulling evaluation results for the leaderboard.")
|
114 |
repo.git_pull()
|
|
|
125 |
"HellaSwag (10-shot) ⬆️": 95.3,
|
126 |
"MMLU (5-shot) ⬆️": 86.4,
|
127 |
"TruthfulQA (0-shot) ⬆️": 59.0,
|
128 |
+
"model_name_for_query": "GPT-4",
|
129 |
}
|
130 |
all_data.append(gpt4_values)
|
131 |
gpt35_values = {
|
|
|
137 |
"HellaSwag (10-shot) ⬆️": 85.5,
|
138 |
"MMLU (5-shot) ⬆️": 70.0,
|
139 |
"TruthfulQA (0-shot) ⬆️": 47.0,
|
140 |
+
"model_name_for_query": "GPT-3.5",
|
141 |
}
|
142 |
all_data.append(gpt35_values)
|
143 |
|
|
|
150 |
"HellaSwag (10-shot) ⬆️": 25.0,
|
151 |
"MMLU (5-shot) ⬆️": 25.0,
|
152 |
"TruthfulQA (0-shot) ⬆️": 25.0,
|
153 |
+
"model_name_for_query": "baseline",
|
154 |
}
|
155 |
|
156 |
all_data.append(base_line)
|
|
|
164 |
return df
|
165 |
|
166 |
|
167 |
+
def get_evaluation_queue_df():
|
168 |
if repo:
|
169 |
print("Pulling changes for the evaluation queue.")
|
170 |
repo.git_pull()
|
|
|
212 |
return df_finished[EVAL_COLS], df_running[EVAL_COLS], df_pending[EVAL_COLS]
|
213 |
|
214 |
|
215 |
+
original_df = get_leaderboard_df()
|
216 |
+
leaderboard_df = original_df.copy()
|
217 |
+
(
|
218 |
+
finished_eval_queue_df,
|
219 |
+
running_eval_queue_df,
|
220 |
+
pending_eval_queue_df,
|
221 |
+
) = get_evaluation_queue_df()
|
222 |
|
223 |
|
224 |
def is_model_on_hub(model_name, revision) -> bool:
|
|
|
295 |
|
296 |
|
297 |
def refresh():
|
298 |
+
leaderboard_df = get_leaderboard_df()
|
299 |
+
(
|
300 |
+
finished_eval_queue_df,
|
301 |
+
running_eval_queue_df,
|
302 |
+
pending_eval_queue_df,
|
303 |
+
) = get_evaluation_queue_df()
|
304 |
+
return (
|
305 |
+
leaderboard_df,
|
306 |
+
finished_eval_queue_df,
|
307 |
+
running_eval_queue_df,
|
308 |
+
pending_eval_queue_df,
|
309 |
+
)
|
310 |
|
311 |
|
312 |
custom_css = """
|
|
|
334 |
margin: 6px;
|
335 |
transform: scale(1.3);
|
336 |
}
|
337 |
+
|
338 |
+
/* Hides the final column */
|
339 |
+
table td:last-child,
|
340 |
+
table th:last-child {
|
341 |
+
display: none;
|
342 |
+
}
|
343 |
"""
|
344 |
|
345 |
+
|
346 |
+
def search_table(df, query):
|
347 |
+
filtered_df = df[df["model_name_for_query"].str.contains(query, case=False)]
|
348 |
+
return filtered_df
|
349 |
+
|
350 |
+
|
351 |
demo = gr.Blocks(css=custom_css)
|
352 |
with demo:
|
353 |
gr.HTML(TITLE)
|
|
|
365 |
with gr.Accordion("✨ CHANGELOG", open=False):
|
366 |
changelog = gr.Markdown(CHANGELOG_TEXT, elem_id="changelog-text")
|
367 |
|
368 |
+
search_bar = gr.Textbox(label="Search bar")
|
369 |
+
|
370 |
leaderboard_table = gr.components.Dataframe(
|
371 |
+
value=leaderboard_df, headers=COLS, datatype=TYPES, max_rows=5
|
372 |
+
)
|
373 |
+
|
374 |
+
# Dummy leaderboard for handling the case when the user uses backspace key
|
375 |
+
hidden_leaderboard_table_for_search = gr.components.Dataframe(
|
376 |
+
value=original_df, headers=COLS, datatype=TYPES, max_rows=5, visible=False
|
377 |
+
)
|
378 |
+
|
379 |
+
search_bar.change(
|
380 |
+
search_table,
|
381 |
+
[hidden_leaderboard_table_for_search, search_bar],
|
382 |
+
leaderboard_table,
|
383 |
)
|
384 |
|
385 |
gr.Markdown(EVALUATION_QUEUE_TEXT, elem_classes="markdown-text")
|
386 |
|
387 |
with gr.Accordion("✅ Finished Evaluations", open=False):
|
388 |
finished_eval_table = gr.components.Dataframe(
|
389 |
+
value=finished_eval_queue_df,
|
390 |
headers=EVAL_COLS,
|
391 |
datatype=EVAL_TYPES,
|
392 |
max_rows=5,
|
393 |
)
|
394 |
with gr.Accordion("🔄 Running Evaluation Queue", open=False):
|
395 |
running_eval_table = gr.components.Dataframe(
|
396 |
+
value=running_eval_queue_df,
|
397 |
headers=EVAL_COLS,
|
398 |
datatype=EVAL_TYPES,
|
399 |
max_rows=5,
|
|
|
401 |
|
402 |
with gr.Accordion("⏳ Pending Evaluation Queue", open=False):
|
403 |
pending_eval_table = gr.components.Dataframe(
|
404 |
+
value=pending_eval_queue_df,
|
405 |
headers=EVAL_COLS,
|
406 |
datatype=EVAL_TYPES,
|
407 |
max_rows=5,
|
utils.py
CHANGED
@@ -71,6 +71,8 @@ class EvalResult:
|
|
71 |
data_dict["eval_name"] = self.eval_name
|
72 |
data_dict["8bit"] = self.is_8bit
|
73 |
data_dict["Model"] = make_clickable_model(base_model)
|
|
|
|
|
74 |
data_dict["Revision"] = self.revision
|
75 |
data_dict["Average ⬆️"] = round(
|
76 |
sum([v for k, v in self.results.items()]) / 4.0, 1
|
|
|
71 |
data_dict["eval_name"] = self.eval_name
|
72 |
data_dict["8bit"] = self.is_8bit
|
73 |
data_dict["Model"] = make_clickable_model(base_model)
|
74 |
+
# dummy column to implement search bar (hidden by custom CSS)
|
75 |
+
data_dict["model_name_for_query"] = base_model
|
76 |
data_dict["Revision"] = self.revision
|
77 |
data_dict["Average ⬆️"] = round(
|
78 |
sum([v for k, v in self.results.items()]) / 4.0, 1
|