abhinav-joshi commited on
Commit
998da49
·
1 Parent(s): d14bf54

fix precision bug

Browse files
Files changed (1) hide show
  1. src/leaderboard/read_evals.py +21 -18
src/leaderboard/read_evals.py CHANGED
@@ -14,22 +14,22 @@ from src.submission.check_validity import is_model_on_hub
14
 
15
  @dataclass
16
  class EvalResult:
17
- """Represents one full evaluation. Built from a combination of the result and request file for a given run.
18
- """
19
- eval_name: str # org_model_precision (uid)
20
- full_model: str # org/model (path on hub)
21
- org: str
22
  model: str
23
- revision: str # commit hash, "" if main
24
  results: dict
25
  precision: Precision = Precision.Unknown
26
- model_type: ModelType = ModelType.Unknown # Pretrained, fine tuned, ...
27
- weight_type: WeightType = WeightType.Original # Original or Adapter
28
- architecture: str = "Unknown"
29
  license: str = "?"
30
  likes: int = 0
31
  num_params: int = 0
32
- date: str = "" # submission date of request file
33
  still_on_hub: bool = False
34
 
35
  @classmethod
@@ -85,10 +85,10 @@ class EvalResult:
85
  org=org,
86
  model=model,
87
  results=results,
88
- precision=precision,
89
- revision= config.get("model_sha", ""),
90
  still_on_hub=still_on_hub,
91
- architecture=architecture
92
  )
93
 
94
  def update_with_request_file(self, requests_path):
@@ -105,14 +105,16 @@ class EvalResult:
105
  self.num_params = request.get("params", 0)
106
  self.date = request.get("submitted_time", "")
107
  except Exception:
108
- print(f"Could not find request file for {self.org}/{self.model} with precision {self.precision.value.name}")
 
 
109
 
110
  def to_dict(self):
111
  """Converts the Eval Result to a dict compatible with our dataframe display"""
112
  average = sum([v for v in self.results.values() if v is not None]) / len(Tasks)
113
  data_dict = {
114
  "eval_name": self.eval_name, # not a column, just a save name,
115
- AutoEvalColumn.precision.name: self.precision.value.name,
116
  AutoEvalColumn.model_type.name: self.model_type.value.name,
117
  AutoEvalColumn.model_type_symbol.name: self.model_type.value.symbol,
118
  AutoEvalColumn.weight_type.name: self.weight_type.value.name,
@@ -147,8 +149,9 @@ def get_request_file_for_model(requests_path, model_name, precision):
147
  with open(tmp_request_file, "r") as f:
148
  req_content = json.load(f)
149
  if (
150
- req_content["status"] in ["FINISHED"]
151
- and req_content["precision"] == precision.split(".")[-1]
 
152
  ):
153
  request_file = tmp_request_file
154
  return request_file
@@ -188,7 +191,7 @@ def get_raw_eval_results(results_path: str, requests_path: str) -> list[EvalResu
188
  results = []
189
  for v in eval_results.values():
190
  try:
191
- v.to_dict() # we test if the dict version is complete
192
  results.append(v)
193
  except KeyError: # not all eval values present
194
  continue
 
14
 
15
  @dataclass
16
  class EvalResult:
17
+ """Represents one full evaluation. Built from a combination of the result and request file for a given run."""
18
+
19
+ eval_name: str # org_model_precision (uid)
20
+ full_model: str # org/model (path on hub)
21
+ org: str
22
  model: str
23
+ revision: str # commit hash, "" if main
24
  results: dict
25
  precision: Precision = Precision.Unknown
26
+ model_type: ModelType = ModelType.Unknown # Pretrained, fine tuned, ...
27
+ weight_type: WeightType = WeightType.Original # Original or Adapter
28
+ architecture: str = "Unknown"
29
  license: str = "?"
30
  likes: int = 0
31
  num_params: int = 0
32
+ date: str = "" # submission date of request file
33
  still_on_hub: bool = False
34
 
35
  @classmethod
 
85
  org=org,
86
  model=model,
87
  results=results,
88
+ precision=precision,
89
+ revision=config.get("model_sha", ""),
90
  still_on_hub=still_on_hub,
91
+ architecture=architecture,
92
  )
93
 
94
  def update_with_request_file(self, requests_path):
 
105
  self.num_params = request.get("params", 0)
106
  self.date = request.get("submitted_time", "")
107
  except Exception:
108
+ print(
109
+ f"Could not find request file for {self.org}/{self.model} with precision {self.precision.value.name}"
110
+ )
111
 
112
  def to_dict(self):
113
  """Converts the Eval Result to a dict compatible with our dataframe display"""
114
  average = sum([v for v in self.results.values() if v is not None]) / len(Tasks)
115
  data_dict = {
116
  "eval_name": self.eval_name, # not a column, just a save name,
117
+ # AutoEvalColumn.precision.name: self.precision.value.name,
118
  AutoEvalColumn.model_type.name: self.model_type.value.name,
119
  AutoEvalColumn.model_type_symbol.name: self.model_type.value.symbol,
120
  AutoEvalColumn.weight_type.name: self.weight_type.value.name,
 
149
  with open(tmp_request_file, "r") as f:
150
  req_content = json.load(f)
151
  if (
152
+ req_content["status"]
153
+ in ["FINISHED"]
154
+ # and req_content["precision"] == precision.split(".")[-1]
155
  ):
156
  request_file = tmp_request_file
157
  return request_file
 
191
  results = []
192
  for v in eval_results.values():
193
  try:
194
+ v.to_dict() # we test if the dict version is complete
195
  results.append(v)
196
  except KeyError: # not all eval values present
197
  continue