Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Clean up
Browse files
app.py
CHANGED
@@ -1,5 +1,3 @@
|
|
1 |
-
import os
|
2 |
-
import json
|
3 |
import gradio as gr
|
4 |
import pandas as pd
|
5 |
from apscheduler.schedulers.background import BackgroundScheduler
|
@@ -34,9 +32,11 @@ from src.envs import API, EVAL_REQUESTS_PATH, EVAL_RESULTS_PATH, QUEUE_REPO, REP
|
|
34 |
from src.populate import get_evaluation_queue_df, get_leaderboard_df
|
35 |
from src.submission.submit import add_new_eval
|
36 |
|
|
|
37 |
def restart_space():
|
38 |
API.restart_space(repo_id=REPO_ID)
|
39 |
|
|
|
40 |
### Space initialisation
|
41 |
try:
|
42 |
print(EVAL_REQUESTS_PATH)
|
@@ -63,6 +63,7 @@ leaderboard_df = original_df.copy()
|
|
63 |
failed_eval_queue_df,
|
64 |
) = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
|
65 |
|
|
|
66 |
# Searching and filtering
|
67 |
def update_table(
|
68 |
hidden_df: pd.DataFrame,
|
@@ -79,13 +80,13 @@ def update_table(
|
|
79 |
):
|
80 |
print(f"Update table called with: type_query={type_query}, precision_query={precision_query}, size_query={size_query}")
|
81 |
print(f"hidden_df shape before filtering: {hidden_df.shape}")
|
82 |
-
|
83 |
filtered_df = filter_models(hidden_df, type_query, size_query, precision_query, add_special_tokens_query, num_few_shots_query, show_deleted, show_merges, show_flagged)
|
84 |
print(f"filtered_df shape after filter_models: {filtered_df.shape}")
|
85 |
-
|
86 |
filtered_df = filter_queries(query, filtered_df)
|
87 |
print(f"filtered_df shape after filter_queries: {filtered_df.shape}")
|
88 |
-
|
89 |
print(f"Filter applied: query={query}, columns={columns}, type_query={type_query}, precision_query={precision_query}")
|
90 |
print("Filtered dataframe head:")
|
91 |
print(filtered_df.head())
|
@@ -122,11 +123,11 @@ def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
|
122 |
AutoEvalColumn.model_type_symbol.name, # 'T'
|
123 |
AutoEvalColumn.model.name, # 'Model'
|
124 |
]
|
125 |
-
|
126 |
# 'always_here_cols' を 'columns' から除外して重複を避ける
|
127 |
columns = [c for c in columns if c not in always_here_cols]
|
128 |
new_columns = always_here_cols + [c for c in COLS if c in df.columns and c in columns]
|
129 |
-
|
130 |
# 重複を排除しつつ順序を維持
|
131 |
seen = set()
|
132 |
unique_columns = []
|
@@ -207,6 +208,7 @@ def filter_models(
|
|
207 |
print(filtered_df.head())
|
208 |
return filtered_df
|
209 |
|
|
|
210 |
leaderboard_df = filter_models(leaderboard_df, [t.to_str(" : ") for t in ModelType], list(NUMERIC_INTERVALS.keys()), [i.value.name for i in Precision], [i.value.name for i in AddSpecialTokens], [i.value.name for i in NumFewShots], False, False, False)
|
211 |
|
212 |
demo = gr.Blocks(css=custom_css)
|
@@ -304,17 +306,17 @@ with demo:
|
|
304 |
# DataFrameの初期化部分のみを修正
|
305 |
initial_columns = ['T'] + [c.name for c in fields(AutoEvalColumn) if (c.never_hidden or c.displayed_by_default) and c.name != 'T']
|
306 |
leaderboard_df_filtered = select_columns(leaderboard_df, initial_columns)
|
307 |
-
|
308 |
# Model列のリンク形式を修正
|
309 |
leaderboard_df_filtered['Model'] = leaderboard_df_filtered['Model'].apply(
|
310 |
lambda x: f'[{x.split(">")[-2].split("<")[0]}]({x.split("href=")[1].split(chr(34))[1]})' if isinstance(x, str) and 'href=' in x else x
|
311 |
)
|
312 |
-
|
313 |
# 数値データを文字列に変換
|
314 |
for col in leaderboard_df_filtered.columns:
|
315 |
if col not in ['T', 'Model']:
|
316 |
leaderboard_df_filtered[col] = leaderboard_df_filtered[col].astype(str)
|
317 |
-
|
318 |
# DataFrameコンポーネントの初期化
|
319 |
leaderboard_table = gr.components.Dataframe(
|
320 |
value=leaderboard_df_filtered,
|
@@ -324,7 +326,7 @@ with demo:
|
|
324 |
interactive=False,
|
325 |
visible=True
|
326 |
)
|
327 |
-
|
328 |
# Dummy leaderboard for handling the case when the user uses backspace key
|
329 |
hidden_leaderboard_table_for_search = gr.components.Dataframe(
|
330 |
value=original_df[COLS],
|
@@ -371,7 +373,7 @@ with demo:
|
|
371 |
)
|
372 |
# Check query parameter once at startup and update search bar + hidden component
|
373 |
demo.load(load_query, inputs=[], outputs=[search_bar, hidden_search_bar])
|
374 |
-
|
375 |
for selector in [shown_columns, filter_columns_type, filter_columns_precision, filter_columns_size, filter_columns_add_special_tokens, filter_columns_num_few_shots, deleted_models_visibility, merged_models_visibility, flagged_models_visibility]:
|
376 |
selector.change(
|
377 |
update_table,
|
@@ -515,4 +517,4 @@ with demo:
|
|
515 |
scheduler = BackgroundScheduler()
|
516 |
scheduler.add_job(restart_space, "interval", seconds=1800)
|
517 |
scheduler.start()
|
518 |
-
demo.queue(default_concurrency_limit=40).launch()
|
|
|
|
|
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
from apscheduler.schedulers.background import BackgroundScheduler
|
|
|
32 |
from src.populate import get_evaluation_queue_df, get_leaderboard_df
|
33 |
from src.submission.submit import add_new_eval
|
34 |
|
35 |
+
|
36 |
def restart_space():
|
37 |
API.restart_space(repo_id=REPO_ID)
|
38 |
|
39 |
+
|
40 |
### Space initialisation
|
41 |
try:
|
42 |
print(EVAL_REQUESTS_PATH)
|
|
|
63 |
failed_eval_queue_df,
|
64 |
) = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
|
65 |
|
66 |
+
|
67 |
# Searching and filtering
|
68 |
def update_table(
|
69 |
hidden_df: pd.DataFrame,
|
|
|
80 |
):
|
81 |
print(f"Update table called with: type_query={type_query}, precision_query={precision_query}, size_query={size_query}")
|
82 |
print(f"hidden_df shape before filtering: {hidden_df.shape}")
|
83 |
+
|
84 |
filtered_df = filter_models(hidden_df, type_query, size_query, precision_query, add_special_tokens_query, num_few_shots_query, show_deleted, show_merges, show_flagged)
|
85 |
print(f"filtered_df shape after filter_models: {filtered_df.shape}")
|
86 |
+
|
87 |
filtered_df = filter_queries(query, filtered_df)
|
88 |
print(f"filtered_df shape after filter_queries: {filtered_df.shape}")
|
89 |
+
|
90 |
print(f"Filter applied: query={query}, columns={columns}, type_query={type_query}, precision_query={precision_query}")
|
91 |
print("Filtered dataframe head:")
|
92 |
print(filtered_df.head())
|
|
|
123 |
AutoEvalColumn.model_type_symbol.name, # 'T'
|
124 |
AutoEvalColumn.model.name, # 'Model'
|
125 |
]
|
126 |
+
|
127 |
# 'always_here_cols' を 'columns' から除外して重複を避ける
|
128 |
columns = [c for c in columns if c not in always_here_cols]
|
129 |
new_columns = always_here_cols + [c for c in COLS if c in df.columns and c in columns]
|
130 |
+
|
131 |
# 重複を排除しつつ順序を維持
|
132 |
seen = set()
|
133 |
unique_columns = []
|
|
|
208 |
print(filtered_df.head())
|
209 |
return filtered_df
|
210 |
|
211 |
+
|
212 |
leaderboard_df = filter_models(leaderboard_df, [t.to_str(" : ") for t in ModelType], list(NUMERIC_INTERVALS.keys()), [i.value.name for i in Precision], [i.value.name for i in AddSpecialTokens], [i.value.name for i in NumFewShots], False, False, False)
|
213 |
|
214 |
demo = gr.Blocks(css=custom_css)
|
|
|
306 |
# DataFrameの初期化部分のみを修正
|
307 |
initial_columns = ['T'] + [c.name for c in fields(AutoEvalColumn) if (c.never_hidden or c.displayed_by_default) and c.name != 'T']
|
308 |
leaderboard_df_filtered = select_columns(leaderboard_df, initial_columns)
|
309 |
+
|
310 |
# Model列のリンク形式を修正
|
311 |
leaderboard_df_filtered['Model'] = leaderboard_df_filtered['Model'].apply(
|
312 |
lambda x: f'[{x.split(">")[-2].split("<")[0]}]({x.split("href=")[1].split(chr(34))[1]})' if isinstance(x, str) and 'href=' in x else x
|
313 |
)
|
314 |
+
|
315 |
# 数値データを文字列に変換
|
316 |
for col in leaderboard_df_filtered.columns:
|
317 |
if col not in ['T', 'Model']:
|
318 |
leaderboard_df_filtered[col] = leaderboard_df_filtered[col].astype(str)
|
319 |
+
|
320 |
# DataFrameコンポーネントの初期化
|
321 |
leaderboard_table = gr.components.Dataframe(
|
322 |
value=leaderboard_df_filtered,
|
|
|
326 |
interactive=False,
|
327 |
visible=True
|
328 |
)
|
329 |
+
|
330 |
# Dummy leaderboard for handling the case when the user uses backspace key
|
331 |
hidden_leaderboard_table_for_search = gr.components.Dataframe(
|
332 |
value=original_df[COLS],
|
|
|
373 |
)
|
374 |
# Check query parameter once at startup and update search bar + hidden component
|
375 |
demo.load(load_query, inputs=[], outputs=[search_bar, hidden_search_bar])
|
376 |
+
|
377 |
for selector in [shown_columns, filter_columns_type, filter_columns_precision, filter_columns_size, filter_columns_add_special_tokens, filter_columns_num_few_shots, deleted_models_visibility, merged_models_visibility, flagged_models_visibility]:
|
378 |
selector.change(
|
379 |
update_table,
|
|
|
517 |
scheduler = BackgroundScheduler()
|
518 |
scheduler.add_job(restart_space, "interval", seconds=1800)
|
519 |
scheduler.start()
|
520 |
+
demo.queue(default_concurrency_limit=40).launch()
|