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()
|