karimouda commited on
Commit
42d6492
·
1 Parent(s): 5202df9

Fix UI loading

Browse files
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  from gradio_leaderboard import Leaderboard, ColumnFilter, SelectColumns
3
  import pandas as pd
4
  from apscheduler.schedulers.background import BackgroundScheduler
5
- from huggingface_hub import snapshot_download
6
 
7
  from src.about import (
8
  CITATION_BUTTON_LABEL,
@@ -19,10 +19,10 @@ from src.display.utils import (
19
  EVAL_COLS,
20
  EVAL_TYPES,
21
  AutoEvalColumn,
22
- ModelType,
23
  fields,
24
- WeightType,
25
- Precision
26
  )
27
  from src.envs import API, EVAL_REQUESTS_PATH, EVAL_RESULTS_PATH, QUEUE_REPO, REPO_ID, RESULTS_REPO, TOKEN
28
  from src.populate import get_evaluation_queue_df, get_leaderboard_df
 
2
  from gradio_leaderboard import Leaderboard, ColumnFilter, SelectColumns
3
  import pandas as pd
4
  from apscheduler.schedulers.background import BackgroundScheduler
5
+ #from huggingface_hub import snapshot_download
6
 
7
  from src.about import (
8
  CITATION_BUTTON_LABEL,
 
19
  EVAL_COLS,
20
  EVAL_TYPES,
21
  AutoEvalColumn,
22
+ # ModelType,
23
  fields,
24
+ #WeightType,
25
+ #Precision
26
  )
27
  from src.envs import API, EVAL_REQUESTS_PATH, EVAL_RESULTS_PATH, QUEUE_REPO, REPO_ID, RESULTS_REPO, TOKEN
28
  from src.populate import get_evaluation_queue_df, get_leaderboard_df
src/display/utils.py CHANGED
@@ -31,14 +31,14 @@ for task in Tasks:
31
  auto_eval_column_dict.append([task.name, ColumnContent, ColumnContent(task.value.col_name, "number", True)])
32
  # Model information
33
  auto_eval_column_dict.append(["model_type", ColumnContent, ColumnContent("Type", "str", False)])
34
- auto_eval_column_dict.append(["architecture", ColumnContent, ColumnContent("Architecture", "str", False)])
35
- auto_eval_column_dict.append(["weight_type", ColumnContent, ColumnContent("Weight type", "str", False, True)])
36
- auto_eval_column_dict.append(["precision", ColumnContent, ColumnContent("Precision", "str", False)])
37
  auto_eval_column_dict.append(["license", ColumnContent, ColumnContent("Hub License", "str", False)])
38
  auto_eval_column_dict.append(["params", ColumnContent, ColumnContent("#Params (B)", "number", False)])
39
  auto_eval_column_dict.append(["likes", ColumnContent, ColumnContent("Hub ❤️", "number", False)])
40
- auto_eval_column_dict.append(["still_on_hub", ColumnContent, ColumnContent("Available on the hub", "bool", False)])
41
- auto_eval_column_dict.append(["revision", ColumnContent, ColumnContent("Model sha", "str", False, False)])
42
 
43
  # We use make dataclass to dynamically fill the scores from Tasks
44
  AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict, frozen=True)
@@ -60,8 +60,10 @@ class ModelDetails:
60
  display_name: str = ""
61
  symbol: str = "" # emoji
62
 
63
-
64
  class ModelType(Enum):
 
 
65
  PT = ModelDetails(name="pretrained", symbol="🟢")
66
  FT = ModelDetails(name="fine-tuned", symbol="🔶")
67
  IFT = ModelDetails(name="instruction-tuned", symbol="⭕")
@@ -99,7 +101,7 @@ class Precision(Enum):
99
  if precision in ["torch.bfloat16", "bfloat16"]:
100
  return Precision.bfloat16
101
  return Precision.Unknown
102
-
103
  # Column selection
104
  COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden]
105
 
 
31
  auto_eval_column_dict.append([task.name, ColumnContent, ColumnContent(task.value.col_name, "number", True)])
32
  # Model information
33
  auto_eval_column_dict.append(["model_type", ColumnContent, ColumnContent("Type", "str", False)])
34
+ #auto_eval_column_dict.append(["architecture", ColumnContent, ColumnContent("Architecture", "str", False)])
35
+ #auto_eval_column_dict.append(["weight_type", ColumnContent, ColumnContent("Weight type", "str", False, True)])
36
+ #auto_eval_column_dict.append(["precision", ColumnContent, ColumnContent("Precision", "str", False)])
37
  auto_eval_column_dict.append(["license", ColumnContent, ColumnContent("Hub License", "str", False)])
38
  auto_eval_column_dict.append(["params", ColumnContent, ColumnContent("#Params (B)", "number", False)])
39
  auto_eval_column_dict.append(["likes", ColumnContent, ColumnContent("Hub ❤️", "number", False)])
40
+ #auto_eval_column_dict.append(["still_on_hub", ColumnContent, ColumnContent("Available on the hub", "bool", False)])
41
+ #auto_eval_column_dict.append(["revision", ColumnContent, ColumnContent("Model sha", "str", False, False)])
42
 
43
  # We use make dataclass to dynamically fill the scores from Tasks
44
  AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict, frozen=True)
 
60
  display_name: str = ""
61
  symbol: str = "" # emoji
62
 
63
+ """
64
  class ModelType(Enum):
65
+
66
+
67
  PT = ModelDetails(name="pretrained", symbol="🟢")
68
  FT = ModelDetails(name="fine-tuned", symbol="🔶")
69
  IFT = ModelDetails(name="instruction-tuned", symbol="⭕")
 
101
  if precision in ["torch.bfloat16", "bfloat16"]:
102
  return Precision.bfloat16
103
  return Precision.Unknown
104
+ """
105
  # Column selection
106
  COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden]
107
 
src/leaderboard/read_evals.py CHANGED
@@ -8,7 +8,7 @@ import dateutil
8
  import numpy as np
9
 
10
  from src.display.formatting import make_clickable_model
11
- from src.display.utils import AutoEvalColumn, ModelType, Tasks, Precision, WeightType
12
  from src.submission.check_validity import is_model_on_hub
13
 
14
 
@@ -20,12 +20,13 @@ class EvalResult:
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
@@ -41,54 +42,55 @@ class EvalResult:
41
  config = data.get("config")
42
 
43
  # Precision
44
- precision = Precision.from_str(config.get("model_dtype"))
45
 
46
  # Get model and org
47
- org_and_model = config.get("model_name", config.get("model_args", None))
 
48
  org_and_model = org_and_model.split("/", 1)
49
 
50
  if len(org_and_model) == 1:
51
  org = None
52
  model = org_and_model[0]
53
- result_key = f"{model}_{precision.value.name}"
54
  else:
55
  org = org_and_model[0]
56
  model = org_and_model[1]
57
- result_key = f"{org}_{model}_{precision.value.name}"
58
  full_model = "/".join(org_and_model)
59
 
60
  still_on_hub, _, model_config = is_model_on_hub(
61
  full_model, config.get("model_sha", "main"), trust_remote_code=True, test_tokenizer=False
62
  )
63
 
64
- ##make still_on_hub always true for now:
65
- still_on_hub = True
66
-
67
  architecture = "?"
68
  if model_config is not None:
69
  architectures = getattr(model_config, "architectures", None)
70
  if architectures:
71
  architecture = ";".join(architectures)
 
72
 
73
  # Extract results available in this file (some results are split in several files)
74
  results = {}
75
 
76
  results_obj = data.get("results")
77
  print(results_obj)
78
- results["average"] = results_obj.get("average").get("score")
79
- results["speed"] = results_obj.get("speed").get("spq")
80
- results["contamination"] = results_obj.get("contamination").get("score")
81
 
82
  return self(
83
  eval_name=result_key,
84
  full_model=full_model,
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):
@@ -98,8 +100,8 @@ class EvalResult:
98
  with open(request_file, "r") as f:
99
  request = json.load(f)
100
 
101
- self.model_type = ModelType.from_str(request.get("model_type", ""))
102
- self.weight_type = WeightType[request.get("weight_type", "Original")]
103
  self.license = request.get("license", "?")
104
  self.likes = request.get("likes", 0)
105
  self.num_params = request.get("params", 0)
@@ -112,13 +114,13 @@ class EvalResult:
112
  average = self.results["average"]
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,
119
- AutoEvalColumn.architecture.name: self.architecture,
120
  AutoEvalColumn.model.name: make_clickable_model(self.full_model),
121
- AutoEvalColumn.revision.name: self.revision,
122
  AutoEvalColumn.average.name: average,
123
  AutoEvalColumn.license.name: self.license,
124
  AutoEvalColumn.likes.name: self.likes,
@@ -149,7 +151,7 @@ def get_request_file_for_model(requests_path, model_name, precision):
149
  req_content = json.load(f)
150
  if (
151
  req_content["status"] in ["FINISHED"]
152
- and req_content["precision"] == precision.split(".")[-1]
153
  ):
154
  request_file = tmp_request_file
155
  return request_file
 
8
  import numpy as np
9
 
10
  from src.display.formatting import make_clickable_model
11
+ from src.display.utils import AutoEvalColumn, Tasks#, ModelType, Precision, WeightType
12
  from src.submission.check_validity import is_model_on_hub
13
 
14
 
 
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
+ model_source: str = "" # HF, private, ...
28
+ #weight_type: WeightType = WeightType.Original # Original or Adapter
29
+ #architecture: str = "Unknown"
30
  license: str = "?"
31
  likes: int = 0
32
  num_params: int = 0
 
42
  config = data.get("config")
43
 
44
  # Precision
45
+ #precision = Precision.from_str(config.get("model_dtype"))
46
 
47
  # Get model and org
48
+ org_and_model = config.get("model", config.get("model_args", None))
49
+ print("******* org_and_model **********", config)
50
  org_and_model = org_and_model.split("/", 1)
51
 
52
  if len(org_and_model) == 1:
53
  org = None
54
  model = org_and_model[0]
55
+ result_key = f"{model}"#_{precision.value.name}
56
  else:
57
  org = org_and_model[0]
58
  model = org_and_model[1]
59
+ result_key = f"{org}_{model}"#_{precision.value.name}
60
  full_model = "/".join(org_and_model)
61
 
62
  still_on_hub, _, model_config = is_model_on_hub(
63
  full_model, config.get("model_sha", "main"), trust_remote_code=True, test_tokenizer=False
64
  )
65
 
66
+ """
 
 
67
  architecture = "?"
68
  if model_config is not None:
69
  architectures = getattr(model_config, "architectures", None)
70
  if architectures:
71
  architecture = ";".join(architectures)
72
+ """
73
 
74
  # Extract results available in this file (some results are split in several files)
75
  results = {}
76
 
77
  results_obj = data.get("results")
78
  print(results_obj)
79
+ results["average_score"] = results_obj.get("average_score")
80
+ results["speed"] = results_obj.get("speed")
81
+ results["contamination_score"] = results_obj.get("contamination_score")
82
 
83
  return self(
84
  eval_name=result_key,
85
  full_model=full_model,
86
  org=org,
87
  model=model,
88
+ model_source=config.get("model_source", ""),
89
  results=results,
90
+ #precision=precision,
91
  revision= config.get("model_sha", ""),
92
  still_on_hub=still_on_hub,
93
+ #architecture=architecture
94
  )
95
 
96
  def update_with_request_file(self, requests_path):
 
100
  with open(request_file, "r") as f:
101
  request = json.load(f)
102
 
103
+ #self.model_type = ModelType.from_str(request.get("model_type", ""))
104
+ #self.weight_type = WeightType[request.get("weight_type", "Original")]
105
  self.license = request.get("license", "?")
106
  self.likes = request.get("likes", 0)
107
  self.num_params = request.get("params", 0)
 
114
  average = self.results["average"]
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_source.name: self.model_source.value.name,
119
+ #AutoEvalColumn.model_type_symbol.name: self.model_type.value.symbol,
120
+ #AutoEvalColumn.weight_type.name: self.weight_type.value.name,
121
+ #AutoEvalColumn.architecture.name: self.architecture,
122
  AutoEvalColumn.model.name: make_clickable_model(self.full_model),
123
+ #AutoEvalColumn.revision.name: self.revision,
124
  AutoEvalColumn.average.name: average,
125
  AutoEvalColumn.license.name: self.license,
126
  AutoEvalColumn.likes.name: self.likes,
 
151
  req_content = json.load(f)
152
  if (
153
  req_content["status"] in ["FINISHED"]
154
+ #and req_content["precision"] == precision.split(".")[-1]
155
  ):
156
  request_file = tmp_request_file
157
  return request_file
src/submission/submit.py CHANGED
@@ -172,5 +172,5 @@ def add_new_eval(
172
 
173
 
174
  return styled_message(
175
- "Thank you for submitting your request! It has been placed in the evaluation queue. Please allow up to 15 minutes for the model to appear in the PENDING list"
176
  )
 
172
 
173
 
174
  return styled_message(
175
+ "Thank you for submitting your request! It has been placed in the evaluation queue. You can except the eval to be completed in 1 hour."
176
  )