MohamedRashad commited on
Commit
4ab84d8
Β·
1 Parent(s): 6efebdc

Add handling for failed model evaluations in submission process

Browse files
Files changed (1) hide show
  1. utils.py +30 -7
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
- return f"Model {model_name} has been submitted successfully as a {task} πŸš€"
 
 
 
 
 
 
 
 
 
 
 
 
 
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)