Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
Β·
4ab84d8
1
Parent(s):
6efebdc
Add handling for failed model evaluations in submission process
Browse files
utils.py
CHANGED
@@ -72,6 +72,7 @@ def submit_model(model_name, revision, precision, params, license, task, pending
|
|
72 |
# Load pending and finished requests from the dataset repository
|
73 |
df_pending = load_requests('pending')
|
74 |
df_finished = load_requests('finished')
|
|
|
75 |
|
76 |
# Check if model is in pending requests
|
77 |
if not df_pending.empty:
|
@@ -91,14 +92,24 @@ def submit_model(model_name, revision, precision, params, license, task, pending
|
|
91 |
(existing_models_finished['precision'] == precision.capitalize()) &
|
92 |
(existing_models_finished['task'] == task)).any()
|
93 |
if model_exists_in_finished:
|
94 |
-
return f"Model {model_name} has already been evaluated as a {task} π"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
# Check if model exists on HuggingFace Hub
|
97 |
try:
|
98 |
api.model_info(model_name)
|
99 |
except Exception as e:
|
100 |
print(f"Error fetching model info: {e}")
|
101 |
-
return f"Model {model_name} not found on HuggingFace Hub π€·ββοΈ"
|
102 |
|
103 |
# Proceed with submission
|
104 |
status = "PENDING"
|
@@ -120,7 +131,7 @@ def submit_model(model_name, revision, precision, params, license, task, pending
|
|
120 |
# Define the file path in the repository
|
121 |
org_model = model_name.split('/')
|
122 |
if len(org_model) != 2:
|
123 |
-
return "Please enter the full model name including the organization or username, e.g., 'intfloat/multilingual-e5-large-instruct' π€·ββοΈ"
|
124 |
org, model_id = org_model
|
125 |
precision_str = precision if precision else 'Missing'
|
126 |
file_path_in_repo = f"pending/{org}/{model_id}_eval_request_{revision}_{precision_str}_{task.lower()}.json"
|
@@ -136,9 +147,22 @@ def submit_model(model_name, revision, precision, params, license, task, pending
|
|
136 |
)
|
137 |
except Exception as e:
|
138 |
print(f"Error uploading file: {e}")
|
139 |
-
return f"Error: Could not submit model '{model_name}' for evaluation."
|
140 |
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
def load_requests(status_folder, task_type=None):
|
144 |
api = HfApi()
|
@@ -252,8 +276,7 @@ def submit_gradio_module(task_type):
|
|
252 |
if not df_pending.empty:
|
253 |
pending_gradio_df = gr.Dataframe(df_pending)
|
254 |
else:
|
255 |
-
gr.Markdown("No pending evaluations.")
|
256 |
-
pending_gradio_df = None
|
257 |
with gr.Accordion(f"Finished Evaluations ({len(df_finished)})", open=False):
|
258 |
if not df_finished.empty:
|
259 |
gr.Dataframe(df_finished)
|
|
|
72 |
# Load pending and finished requests from the dataset repository
|
73 |
df_pending = load_requests('pending')
|
74 |
df_finished = load_requests('finished')
|
75 |
+
df_failed = load_requests('failed')
|
76 |
|
77 |
# Check if model is in pending requests
|
78 |
if not df_pending.empty:
|
|
|
92 |
(existing_models_finished['precision'] == precision.capitalize()) &
|
93 |
(existing_models_finished['task'] == task)).any()
|
94 |
if model_exists_in_finished:
|
95 |
+
return f"Model {model_name} has already been evaluated as a {task} π", pending_gradio_df
|
96 |
+
|
97 |
+
# Check if model is in failed requests
|
98 |
+
if not df_failed.empty:
|
99 |
+
existing_models_failed = df_failed[['model_name', 'revision', 'precision', 'task']]
|
100 |
+
model_exists_in_failed = ((existing_models_failed['model_name'] == model_name) &
|
101 |
+
(existing_models_failed['revision'] == revision) &
|
102 |
+
(existing_models_failed['precision'] == precision.capitalize()) &
|
103 |
+
(existing_models_failed['task'] == task)).any()
|
104 |
+
if model_exists_in_failed:
|
105 |
+
return f"Model {model_name} has previously failed evaluation as a {task} β", pending_gradio_df
|
106 |
|
107 |
# Check if model exists on HuggingFace Hub
|
108 |
try:
|
109 |
api.model_info(model_name)
|
110 |
except Exception as e:
|
111 |
print(f"Error fetching model info: {e}")
|
112 |
+
return f"Model {model_name} not found on HuggingFace Hub π€·ββοΈ", pending_gradio_df
|
113 |
|
114 |
# Proceed with submission
|
115 |
status = "PENDING"
|
|
|
131 |
# Define the file path in the repository
|
132 |
org_model = model_name.split('/')
|
133 |
if len(org_model) != 2:
|
134 |
+
return "Please enter the full model name including the organization or username, e.g., 'intfloat/multilingual-e5-large-instruct' π€·ββοΈ", pending_gradio_df
|
135 |
org, model_id = org_model
|
136 |
precision_str = precision if precision else 'Missing'
|
137 |
file_path_in_repo = f"pending/{org}/{model_id}_eval_request_{revision}_{precision_str}_{task.lower()}.json"
|
|
|
147 |
)
|
148 |
except Exception as e:
|
149 |
print(f"Error uploading file: {e}")
|
150 |
+
return f"Error: Could not submit model '{model_name}' for evaluation.", pending_gradio_df
|
151 |
|
152 |
+
# Update the pending requests DataFrame
|
153 |
+
pending_gradio_df = pending_gradio_df._append(
|
154 |
+
{
|
155 |
+
"model_name": model_name,
|
156 |
+
"license": license,
|
157 |
+
"revision": revision,
|
158 |
+
"precision": precision.capitalize(),
|
159 |
+
"status": status,
|
160 |
+
"params": params,
|
161 |
+
"task": task
|
162 |
+
},
|
163 |
+
ignore_index=True
|
164 |
+
)
|
165 |
+
return f"Model {model_name} has been submitted successfully as a {task} π", pending_gradio_df
|
166 |
|
167 |
def load_requests(status_folder, task_type=None):
|
168 |
api = HfApi()
|
|
|
276 |
if not df_pending.empty:
|
277 |
pending_gradio_df = gr.Dataframe(df_pending)
|
278 |
else:
|
279 |
+
pending_gradio_df = gr.Markdown("No pending evaluations.")
|
|
|
280 |
with gr.Accordion(f"Finished Evaluations ({len(df_finished)})", open=False):
|
281 |
if not df_finished.empty:
|
282 |
gr.Dataframe(df_finished)
|