Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Apply black to app.py
Browse files
app.py
CHANGED
@@ -41,14 +41,24 @@ def restart_space():
|
|
41 |
try:
|
42 |
print(EVAL_REQUESTS_PATH)
|
43 |
snapshot_download(
|
44 |
-
repo_id=QUEUE_REPO,
|
|
|
|
|
|
|
|
|
|
|
45 |
)
|
46 |
except Exception:
|
47 |
restart_space()
|
48 |
try:
|
49 |
print(EVAL_RESULTS_PATH)
|
50 |
snapshot_download(
|
51 |
-
repo_id=RESULTS_REPO,
|
|
|
|
|
|
|
|
|
|
|
52 |
)
|
53 |
except Exception:
|
54 |
restart_space()
|
@@ -78,16 +88,30 @@ def update_table(
|
|
78 |
show_flagged: bool,
|
79 |
query: str,
|
80 |
):
|
81 |
-
print(
|
|
|
|
|
82 |
print(f"hidden_df shape before filtering: {hidden_df.shape}")
|
83 |
|
84 |
-
filtered_df = filter_models(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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(
|
|
|
|
|
91 |
print("Filtered dataframe head:")
|
92 |
print(filtered_df.head())
|
93 |
|
@@ -100,7 +124,10 @@ def update_table(
|
|
100 |
|
101 |
def load_query(request: gr.Request): # triggered only once at startup => read query parameter if it exists
|
102 |
query = request.query_params.get("query") or ""
|
103 |
-
return
|
|
|
|
|
|
|
104 |
|
105 |
|
106 |
def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
|
@@ -118,10 +145,11 @@ def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
|
|
118 |
# ]
|
119 |
# return filtered_df
|
120 |
|
|
|
121 |
def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
122 |
always_here_cols = [
|
123 |
AutoEvalColumn.model_type_symbol.name, # 'T'
|
124 |
-
AutoEvalColumn.model.name,
|
125 |
]
|
126 |
|
127 |
# 'always_here_cols' を 'columns' から除外して重複を避ける
|
@@ -137,8 +165,14 @@ def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
|
137 |
seen.add(c)
|
138 |
|
139 |
# 'Model' カラムにリンクを含む形式で再構築
|
140 |
-
if
|
141 |
-
df[
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
# フィルタリングされたカラムでデータフレームを作成
|
144 |
filtered_df = df[unique_columns]
|
@@ -166,7 +200,15 @@ def filter_queries(query: str, filtered_df: pd.DataFrame):
|
|
166 |
|
167 |
|
168 |
def filter_models(
|
169 |
-
df: pd.DataFrame,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
) -> pd.DataFrame:
|
171 |
print(f"Initial df shape: {df.shape}")
|
172 |
print(f"Initial df content:\n{df}")
|
@@ -174,34 +216,38 @@ def filter_models(
|
|
174 |
filtered_df = df
|
175 |
|
176 |
# Model Type フィルタリング
|
177 |
-
type_column =
|
178 |
type_emoji = [t.split()[0] for t in type_query]
|
179 |
filtered_df = df[df[type_column].isin(type_emoji)]
|
180 |
print(f"After type filter: {filtered_df.shape}")
|
181 |
|
182 |
# Precision フィルタリング
|
183 |
-
filtered_df = filtered_df[filtered_df[
|
184 |
print(f"After precision filter: {filtered_df.shape}")
|
185 |
|
186 |
# Model Size フィルタリング
|
187 |
-
if
|
188 |
-
size_mask = filtered_df[
|
189 |
else:
|
190 |
-
size_mask = filtered_df[
|
|
|
|
|
191 |
filtered_df = filtered_df[size_mask]
|
192 |
print(f"After size filter: {filtered_df.shape}")
|
193 |
|
194 |
# Add Special Tokens フィルタリング
|
195 |
-
filtered_df = filtered_df[filtered_df[
|
196 |
print(f"After add_special_tokens filter: {filtered_df.shape}")
|
197 |
|
198 |
# Num Few Shots フィルタリング
|
199 |
-
filtered_df = filtered_df[
|
|
|
|
|
200 |
print(f"After num_few_shots filter: {filtered_df.shape}")
|
201 |
|
202 |
# Show deleted models フィルタリング
|
203 |
if not show_deleted:
|
204 |
-
filtered_df = filtered_df[filtered_df[
|
205 |
print(f"After show_deleted filter: {filtered_df.shape}")
|
206 |
|
207 |
print("Filtered dataframe head:")
|
@@ -211,9 +257,29 @@ def filter_models(
|
|
211 |
|
212 |
# Prepare leaderboard dataframes
|
213 |
|
214 |
-
leaderboard_df = filter_models(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
|
216 |
-
leaderboard_df_filtered = filter_models(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
# initial_columns = [c.name for c in fields(AutoEvalColumn) if c.never_hidden or c.displayed_by_default]
|
218 |
# leaderboard_df_filtered = select_columns(leaderboard_df_filtered, initial_columns)
|
219 |
|
@@ -227,17 +293,23 @@ leaderboard_df_filtered = filter_models(leaderboard_df, [t.to_str(" : ") for t i
|
|
227 |
# )
|
228 |
|
229 |
# DataFrameの初期化部分のみを修正
|
230 |
-
initial_columns = [
|
|
|
|
|
231 |
leaderboard_df_filtered = select_columns(leaderboard_df, initial_columns)
|
232 |
|
233 |
# Model列のリンク形式を修正
|
234 |
-
leaderboard_df_filtered[
|
235 |
-
lambda x:
|
|
|
|
|
|
|
|
|
236 |
)
|
237 |
|
238 |
# 数値データを文字列に変換
|
239 |
for col in leaderboard_df_filtered.columns:
|
240 |
-
if col not in [
|
241 |
leaderboard_df_filtered[col] = leaderboard_df_filtered[col].astype(str)
|
242 |
|
243 |
# Leaderboard demo
|
@@ -252,9 +324,7 @@ with gr.Blocks() as demo_leaderboard:
|
|
252 |
)
|
253 |
shown_columns = gr.CheckboxGroup(
|
254 |
choices=[
|
255 |
-
c.name
|
256 |
-
for c in fields(AutoEvalColumn)
|
257 |
-
if not c.hidden and not c.never_hidden# and not c.dummy
|
258 |
],
|
259 |
value=[
|
260 |
c.name
|
@@ -468,7 +538,7 @@ with gr.Blocks() as demo_submission:
|
|
468 |
add_special_tokens,
|
469 |
],
|
470 |
submission_result,
|
471 |
-
|
472 |
|
473 |
# Main demo
|
474 |
|
|
|
41 |
try:
|
42 |
print(EVAL_REQUESTS_PATH)
|
43 |
snapshot_download(
|
44 |
+
repo_id=QUEUE_REPO,
|
45 |
+
local_dir=EVAL_REQUESTS_PATH,
|
46 |
+
repo_type="dataset",
|
47 |
+
tqdm_class=None,
|
48 |
+
etag_timeout=30,
|
49 |
+
token=TOKEN,
|
50 |
)
|
51 |
except Exception:
|
52 |
restart_space()
|
53 |
try:
|
54 |
print(EVAL_RESULTS_PATH)
|
55 |
snapshot_download(
|
56 |
+
repo_id=RESULTS_REPO,
|
57 |
+
local_dir=EVAL_RESULTS_PATH,
|
58 |
+
repo_type="dataset",
|
59 |
+
tqdm_class=None,
|
60 |
+
etag_timeout=30,
|
61 |
+
token=TOKEN,
|
62 |
)
|
63 |
except Exception:
|
64 |
restart_space()
|
|
|
88 |
show_flagged: bool,
|
89 |
query: str,
|
90 |
):
|
91 |
+
print(
|
92 |
+
f"Update table called with: type_query={type_query}, precision_query={precision_query}, size_query={size_query}"
|
93 |
+
)
|
94 |
print(f"hidden_df shape before filtering: {hidden_df.shape}")
|
95 |
|
96 |
+
filtered_df = filter_models(
|
97 |
+
hidden_df,
|
98 |
+
type_query,
|
99 |
+
size_query,
|
100 |
+
precision_query,
|
101 |
+
add_special_tokens_query,
|
102 |
+
num_few_shots_query,
|
103 |
+
show_deleted,
|
104 |
+
show_merges,
|
105 |
+
show_flagged,
|
106 |
+
)
|
107 |
print(f"filtered_df shape after filter_models: {filtered_df.shape}")
|
108 |
|
109 |
filtered_df = filter_queries(query, filtered_df)
|
110 |
print(f"filtered_df shape after filter_queries: {filtered_df.shape}")
|
111 |
|
112 |
+
print(
|
113 |
+
f"Filter applied: query={query}, columns={columns}, type_query={type_query}, precision_query={precision_query}"
|
114 |
+
)
|
115 |
print("Filtered dataframe head:")
|
116 |
print(filtered_df.head())
|
117 |
|
|
|
124 |
|
125 |
def load_query(request: gr.Request): # triggered only once at startup => read query parameter if it exists
|
126 |
query = request.query_params.get("query") or ""
|
127 |
+
return (
|
128 |
+
query,
|
129 |
+
query,
|
130 |
+
) # return one for the "search_bar", one for a hidden component that triggers a reload only if value has changed
|
131 |
|
132 |
|
133 |
def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
|
|
|
145 |
# ]
|
146 |
# return filtered_df
|
147 |
|
148 |
+
|
149 |
def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
150 |
always_here_cols = [
|
151 |
AutoEvalColumn.model_type_symbol.name, # 'T'
|
152 |
+
AutoEvalColumn.model.name, # 'Model'
|
153 |
]
|
154 |
|
155 |
# 'always_here_cols' を 'columns' から除外して重複を避ける
|
|
|
165 |
seen.add(c)
|
166 |
|
167 |
# 'Model' カラムにリンクを含む形式で再構築
|
168 |
+
if "Model" in df.columns:
|
169 |
+
df["Model"] = df["Model"].apply(
|
170 |
+
lambda x: (
|
171 |
+
f'[{x.split(">")[-2].split("<")[0]}]({x.split("href=")[1].split(chr(34))[1]})'
|
172 |
+
if isinstance(x, str) and "href=" in x
|
173 |
+
else x
|
174 |
+
)
|
175 |
+
)
|
176 |
|
177 |
# フィルタリングされたカラムでデータフレームを作成
|
178 |
filtered_df = df[unique_columns]
|
|
|
200 |
|
201 |
|
202 |
def filter_models(
|
203 |
+
df: pd.DataFrame,
|
204 |
+
type_query: list,
|
205 |
+
size_query: list,
|
206 |
+
precision_query: list,
|
207 |
+
add_special_tokens_query: list,
|
208 |
+
num_few_shots_query: list,
|
209 |
+
show_deleted: bool,
|
210 |
+
show_merges: bool,
|
211 |
+
show_flagged: bool,
|
212 |
) -> pd.DataFrame:
|
213 |
print(f"Initial df shape: {df.shape}")
|
214 |
print(f"Initial df content:\n{df}")
|
|
|
216 |
filtered_df = df
|
217 |
|
218 |
# Model Type フィルタリング
|
219 |
+
type_column = "T" if "T" in df.columns else "Type_"
|
220 |
type_emoji = [t.split()[0] for t in type_query]
|
221 |
filtered_df = df[df[type_column].isin(type_emoji)]
|
222 |
print(f"After type filter: {filtered_df.shape}")
|
223 |
|
224 |
# Precision フィルタリング
|
225 |
+
filtered_df = filtered_df[filtered_df["Precision"].isin(precision_query + ["Unknown", "?"])]
|
226 |
print(f"After precision filter: {filtered_df.shape}")
|
227 |
|
228 |
# Model Size フィルタリング
|
229 |
+
if "Unknown" in size_query:
|
230 |
+
size_mask = filtered_df["#Params (B)"].isna() | (filtered_df["#Params (B)"] == 0)
|
231 |
else:
|
232 |
+
size_mask = filtered_df["#Params (B)"].apply(
|
233 |
+
lambda x: any(x in NUMERIC_INTERVALS[s] for s in size_query if s != "Unknown")
|
234 |
+
)
|
235 |
filtered_df = filtered_df[size_mask]
|
236 |
print(f"After size filter: {filtered_df.shape}")
|
237 |
|
238 |
# Add Special Tokens フィルタリング
|
239 |
+
filtered_df = filtered_df[filtered_df["Add Special Tokens"].isin(add_special_tokens_query + ["Unknown", "?"])]
|
240 |
print(f"After add_special_tokens filter: {filtered_df.shape}")
|
241 |
|
242 |
# Num Few Shots フィルタリング
|
243 |
+
filtered_df = filtered_df[
|
244 |
+
filtered_df["Few-shot"].astype(str).isin([str(x) for x in num_few_shots_query] + ["Unknown", "?"])
|
245 |
+
]
|
246 |
print(f"After num_few_shots filter: {filtered_df.shape}")
|
247 |
|
248 |
# Show deleted models フィルタリング
|
249 |
if not show_deleted:
|
250 |
+
filtered_df = filtered_df[filtered_df["Available on the hub"] == True]
|
251 |
print(f"After show_deleted filter: {filtered_df.shape}")
|
252 |
|
253 |
print("Filtered dataframe head:")
|
|
|
257 |
|
258 |
# Prepare leaderboard dataframes
|
259 |
|
260 |
+
leaderboard_df = filter_models(
|
261 |
+
leaderboard_df,
|
262 |
+
[t.to_str(" : ") for t in ModelType],
|
263 |
+
list(NUMERIC_INTERVALS.keys()),
|
264 |
+
[i.value.name for i in Precision],
|
265 |
+
[i.value.name for i in AddSpecialTokens],
|
266 |
+
[i.value.name for i in NumFewShots],
|
267 |
+
False,
|
268 |
+
False,
|
269 |
+
False,
|
270 |
+
)
|
271 |
|
272 |
+
leaderboard_df_filtered = filter_models(
|
273 |
+
leaderboard_df,
|
274 |
+
[t.to_str(" : ") for t in ModelType],
|
275 |
+
list(NUMERIC_INTERVALS.keys()),
|
276 |
+
[i.value.name for i in Precision],
|
277 |
+
[i.value.name for i in AddSpecialTokens],
|
278 |
+
[i.value.name for i in NumFewShots],
|
279 |
+
False,
|
280 |
+
False,
|
281 |
+
False,
|
282 |
+
)
|
283 |
# initial_columns = [c.name for c in fields(AutoEvalColumn) if c.never_hidden or c.displayed_by_default]
|
284 |
# leaderboard_df_filtered = select_columns(leaderboard_df_filtered, initial_columns)
|
285 |
|
|
|
293 |
# )
|
294 |
|
295 |
# DataFrameの初期化部分のみを修正
|
296 |
+
initial_columns = ["T"] + [
|
297 |
+
c.name for c in fields(AutoEvalColumn) if (c.never_hidden or c.displayed_by_default) and c.name != "T"
|
298 |
+
]
|
299 |
leaderboard_df_filtered = select_columns(leaderboard_df, initial_columns)
|
300 |
|
301 |
# Model列のリンク形式を修正
|
302 |
+
leaderboard_df_filtered["Model"] = leaderboard_df_filtered["Model"].apply(
|
303 |
+
lambda x: (
|
304 |
+
f'[{x.split(">")[-2].split("<")[0]}]({x.split("href=")[1].split(chr(34))[1]})'
|
305 |
+
if isinstance(x, str) and "href=" in x
|
306 |
+
else x
|
307 |
+
)
|
308 |
)
|
309 |
|
310 |
# 数値データを文字列に変換
|
311 |
for col in leaderboard_df_filtered.columns:
|
312 |
+
if col not in ["T", "Model"]:
|
313 |
leaderboard_df_filtered[col] = leaderboard_df_filtered[col].astype(str)
|
314 |
|
315 |
# Leaderboard demo
|
|
|
324 |
)
|
325 |
shown_columns = gr.CheckboxGroup(
|
326 |
choices=[
|
327 |
+
c.name for c in fields(AutoEvalColumn) if not c.hidden and not c.never_hidden # and not c.dummy
|
|
|
|
|
328 |
],
|
329 |
value=[
|
330 |
c.name
|
|
|
538 |
add_special_tokens,
|
539 |
],
|
540 |
submission_result,
|
541 |
+
)
|
542 |
|
543 |
# Main demo
|
544 |
|