meg-huggingface commited on
Commit
c60e715
·
1 Parent(s): 005d6f3

Adding handling to say that something takes too long

Browse files
Files changed (2) hide show
  1. failed_run.py +27 -15
  2. parse_requests.py +6 -2
failed_run.py CHANGED
@@ -23,27 +23,39 @@ parser.add_argument(
23
  required=True,
24
  help="Model to benchmark.",
25
  )
 
 
 
 
 
 
 
26
 
27
  args = parser.parse_args()
28
 
29
  # Updating request
30
  dataset = load_dataset("AIEnergyScore/requests_debug", split="test", token=TOKEN).to_pandas()
31
 
32
- # Set benchmark to failed
33
- # TODO: This doesn't have to be try-except, we could actually check if the file is there.
34
- try:
35
- # Read error message
36
- with open(f"{args.run_dir}/error.log", 'r') as file:
37
- for f in file.readlines():
38
- if 'Traceback (most recent call last):' in f:
39
- error_message = f
40
- dataset.loc[dataset["model"].isin([args.model_name]), ['status']] = "FAILED"
41
- print("Status set to FAILED")
42
- else:
43
- dataset.loc[dataset["model"].isin([args.model_name]), ['status']] = "COMPLETED"
44
- # Add a new column for the error message if necessary
45
- except FileNotFoundError as e:
46
- print(f"Could not find {args.run_dir}/error.log")
 
 
 
 
 
47
 
48
  updated_dataset = Dataset.from_pandas(dataset)
49
  updated_dataset.push_to_hub("AIEnergyScore/requests_debug", split="test", token=TOKEN)
 
23
  required=True,
24
  help="Model to benchmark.",
25
  )
26
+ parser.add_argument(
27
+ "--reason",
28
+ default=None,
29
+ type=str,
30
+ required=True,
31
+ help="Reason for failure -- to update in the requests file",
32
+ )
33
 
34
  args = parser.parse_args()
35
 
36
  # Updating request
37
  dataset = load_dataset("AIEnergyScore/requests_debug", split="test", token=TOKEN).to_pandas()
38
 
39
+ ## Set benchmark to failed
40
+
41
+ # If we have a custom reason for failure, add that instead of generic FAILED.
42
+ if args.reason:
43
+ dataset.loc[dataset["model"].isin([args.model_name]), ['status']] = args.reason
44
+ else:
45
+ # TODO: This doesn't have to be try-except, we could actually check if the file is there...
46
+ try:
47
+ # Read error message
48
+ with open(f"{args.run_dir}/error.log", 'r') as file:
49
+ for f in file.readlines():
50
+ if 'Traceback (most recent call last):' in f:
51
+ error_message = f
52
+ dataset.loc[dataset["model"].isin([args.model_name]), ['status']] = "FAILED"
53
+ print("Status set to FAILED")
54
+ else:
55
+ dataset.loc[dataset["model"].isin([args.model_name]), ['status']] = "COMPLETED"
56
+ # Add a new column for the error message if necessary
57
+ except FileNotFoundError as e:
58
+ print(f"Could not find {args.run_dir}/error.log")
59
 
60
  updated_dataset = Dataset.from_pandas(dataset)
61
  updated_dataset.push_to_hub("AIEnergyScore/requests_debug", split="test", token=TOKEN)
parse_requests.py CHANGED
@@ -1,8 +1,9 @@
1
  import os
2
  from datasets import load_dataset, Dataset
3
 
 
4
  TOKEN = os.environ.get("DEBUG")
5
- requests_dataset = load_dataset("EnergyStarAI/requests_debug", split="test")
6
 
7
  def normalize_task(task):
8
  # Makes assumption about how the task names are being written, and called.
@@ -13,4 +14,7 @@ requests_dset = requests_dataset.to_pandas()
13
 
14
  for model, task in requests_dset[['model','task']].loc[requests_dset['status'] == 'PENDING'].to_dict(orient= 'split', index=False)['data']:
15
  print("%s,%s" % (model, normalize_task(task)))
16
-
 
 
 
 
1
  import os
2
  from datasets import load_dataset, Dataset
3
 
4
+ skip_statuses = ['COMPLETED', 'FAILED', 'RUNNING']
5
  TOKEN = os.environ.get("DEBUG")
6
+ requests_dataset = load_dataset("AIEnergyScore/requests_debug", split="test")
7
 
8
  def normalize_task(task):
9
  # Makes assumption about how the task names are being written, and called.
 
14
 
15
  for model, task in requests_dset[['model','task']].loc[requests_dset['status'] == 'PENDING'].to_dict(orient= 'split', index=False)['data']:
16
  print("%s,%s" % (model, normalize_task(task)))
17
+
18
+ # Custom errors we will rerun.
19
+ for model, task in requests_dset[['model','task']].loc[~requests_dset['status'].isin(skip_statuses)].to_dict(orient= 'split', index=False)['data']:
20
+ print("%s,%s" % (model, normalize_task(task)))