AlexNijjar commited on
Commit
934f7cd
1 Parent(s): eb072d7

Update to new format

Browse files
Files changed (1) hide show
  1. app.py +37 -54
app.py CHANGED
@@ -43,24 +43,19 @@ demo = gr.Blocks(css=".typewriter {font-family: 'JMH Typewriter', sans-serif;}")
43
  runs: dict[int, list[Run]] = {}
44
 
45
 
46
-
47
  @dataclass
48
  class LeaderboardEntry:
49
  uid: int
 
50
  model: str
51
  score: float
52
  similarity: float
53
  hotkey: str
54
- rank: int
55
  baseline_generation_time: float
56
- baseline_size: int
57
- baseline_vram_used: float
58
- baseline_watts_used: float
59
  generation_time: float
60
  size: int
61
  vram_used: float
62
  watts_used: float
63
- previous_day_winner: bool
64
 
65
 
66
  @dataclass
@@ -94,7 +89,7 @@ def is_valid_run(run: Run):
94
 
95
 
96
  def calculate_score(baseline_generation_time: float, generation_time: float, similarity_score: float) -> float:
97
- return max(0.0, baseline_generation_time - generation_time) * similarity_score
98
 
99
 
100
  def get_graph_entries(runs: list[Run]) -> dict[int, GraphEntry]:
@@ -116,7 +111,7 @@ def get_graph_entries(runs: list[Run]) -> dict[int, GraphEntry]:
116
  generation_time = value["generation_time"]
117
  similarity = min(1, value["similarity"])
118
  score = calculate_score(baseline_generation_time, generation_time, similarity)
119
- model = value["model"]
120
 
121
  if uid not in entries:
122
  entries[uid] = GraphEntry([date], [baseline_generation_time], [generation_time], [similarity], [score], [model], generation_time)
@@ -191,51 +186,40 @@ def create_leaderboard(runs: list[Run]) -> list[tuple]:
191
  for key, value in summary_value.items():
192
  has_data = True
193
 
194
- try:
195
- uid = int(key)
196
- generation_time = value["generation_time"]
197
- baseline_generation_time = value["baseline_generation_time"]
198
- similarity = min(1, value["similarity"])
199
-
200
- entries[uid] = LeaderboardEntry(
201
- uid=uid,
202
- model=value["model"],
203
- score=calculate_score(baseline_generation_time, generation_time, similarity),
204
- similarity=similarity,
205
- hotkey=value["hotkey"],
206
- rank=value["rank"],
207
- baseline_generation_time=baseline_generation_time,
208
- baseline_size=value["baseline_size"],
209
- baseline_vram_used=value["baseline_vram_used"],
210
- baseline_watts_used=value["baseline_watts_used"],
211
- generation_time=generation_time,
212
- size=value["size"],
213
- vram_used=value["vram_used"],
214
- watts_used=value["watts_used"],
215
- previous_day_winner=value["multiday_winner"],
216
- )
217
- except Exception:
218
- continue
219
 
220
  if has_data:
221
  break
222
 
223
- leaderboard: list[tuple] = [
224
- (entry.rank + 1,
225
- entry.uid,
226
- entry.model,
227
- entry.score,
228
- f"{entry.generation_time:.3f}s",
229
- f"{entry.similarity:.3f}",
230
- f"{entry.size / 1_000_000_000:.3f}GB",
231
- f"{entry.vram_used / 1_000_000_000:.3f}GB",
232
- f"{entry.watts_used:.3f}W",
233
- entry.hotkey,
234
- entry.previous_day_winner
235
- ) for entry in sorted(entries.values(), key=lambda entry: (entry.score, entry.rank), reverse=True)
236
- ]
237
-
238
- return leaderboard
239
 
240
 
241
  def get_run_validator_uid(run: Run) -> int:
@@ -251,7 +235,7 @@ def fetch_wandb_data():
251
  order="-created_at",
252
  )
253
 
254
- wandb_runs = [run for run in wandb_runs if len(dict(run.summary)) > 1]
255
 
256
  global runs
257
  runs.clear()
@@ -290,6 +274,7 @@ def refresh():
290
  fetch_wandb_data()
291
  demo.clear()
292
  now = datetime.now(tz=ZoneInfo("America/New_York"))
 
293
  with demo:
294
  gr.Image(
295
  "cover.png",
@@ -321,11 +306,9 @@ def refresh():
321
 
322
  leaderboard = gr.components.Dataframe(
323
  create_leaderboard(runs[parse_uid(dropdown.value)]),
324
- headers=["Rank", "Uid", "Model", "Score", "Generation Time", "Similarity", "Size", "VRAM Usage", "Power Usage", "Hotkey", "Previous day winner"],
325
- datatype=["number", "number", "markdown", "number", "markdown", "number", "markdown", "markdown", "markdown", "markdown", "markdown"],
326
  elem_id="leaderboard-table",
327
- interactive=False,
328
- visible=True,
329
  )
330
 
331
  demo.load(lambda uid: create_graph(runs[parse_uid(uid)]), [dropdown], [graph])
 
43
  runs: dict[int, list[Run]] = {}
44
 
45
 
 
46
  @dataclass
47
  class LeaderboardEntry:
48
  uid: int
49
+ winner: bool
50
  model: str
51
  score: float
52
  similarity: float
53
  hotkey: str
 
54
  baseline_generation_time: float
 
 
 
55
  generation_time: float
56
  size: int
57
  vram_used: float
58
  watts_used: float
 
59
 
60
 
61
  @dataclass
 
89
 
90
 
91
  def calculate_score(baseline_generation_time: float, generation_time: float, similarity_score: float) -> float:
92
+ return (baseline_generation_time - generation_time) * similarity_score
93
 
94
 
95
  def get_graph_entries(runs: list[Run]) -> dict[int, GraphEntry]:
 
111
  generation_time = value["generation_time"]
112
  similarity = min(1, value["similarity"])
113
  score = calculate_score(baseline_generation_time, generation_time, similarity)
114
+ model = run.summary["submissions"][str(uid)]["repository"]
115
 
116
  if uid not in entries:
117
  entries[uid] = GraphEntry([date], [baseline_generation_time], [generation_time], [similarity], [score], [model], generation_time)
 
186
  for key, value in summary_value.items():
187
  has_data = True
188
 
189
+ uid = int(key)
190
+ generation_time = value["generation_time"]
191
+ baseline_generation_time = value["baseline_generation_time"]
192
+ similarity = min(1, value["similarity"])
193
+
194
+ entries[uid] = LeaderboardEntry(
195
+ uid=uid,
196
+ winner="winner" in value,
197
+ model=run.summary["submissions"][str(uid)]["repository"],
198
+ score=calculate_score(baseline_generation_time, generation_time, similarity),
199
+ similarity=similarity,
200
+ baseline_generation_time=baseline_generation_time,
201
+ generation_time=generation_time,
202
+ size=value["size"],
203
+ vram_used=value["vram_used"],
204
+ watts_used=value["watts_used"],
205
+ hotkey=value["hotkey"],
206
+ )
 
 
 
 
 
 
 
207
 
208
  if has_data:
209
  break
210
 
211
+ return [(
212
+ entry.uid,
213
+ f"<span style='color: {'springgreen' if entry.winner else 'red'}'>{entry.winner}</span>",
214
+ entry.model,
215
+ round(entry.score, 3),
216
+ f"{entry.generation_time:.3f}s",
217
+ f"{entry.similarity:.3f}",
218
+ f"{entry.size / 1_000_000_000:.3f}GB",
219
+ f"{entry.vram_used / 1_000_000_000:.3f}GB",
220
+ f"{entry.watts_used:.3f}W",
221
+ entry.hotkey,
222
+ ) for entry in sorted(entries.values(), key=lambda entry: (entry.winner, entry.score), reverse=True)]
 
 
 
 
223
 
224
 
225
  def get_run_validator_uid(run: Run) -> int:
 
235
  order="-created_at",
236
  )
237
 
238
+ wandb_runs = [run for run in wandb_runs if "benchmarks" in run.summary]
239
 
240
  global runs
241
  runs.clear()
 
274
  fetch_wandb_data()
275
  demo.clear()
276
  now = datetime.now(tz=ZoneInfo("America/New_York"))
277
+
278
  with demo:
279
  gr.Image(
280
  "cover.png",
 
306
 
307
  leaderboard = gr.components.Dataframe(
308
  create_leaderboard(runs[parse_uid(dropdown.value)]),
309
+ headers=["Uid", "Winner", "Model", "Score", "Gen Time", "Similarity", "Size", "VRAM Usage", "Power Usage", "Hotkey"],
310
+ datatype=["number", "markdown", "markdown", "number", "markdown", "number", "markdown", "markdown", "markdown", "markdown"],
311
  elem_id="leaderboard-table",
 
 
312
  )
313
 
314
  demo.load(lambda uid: create_graph(runs[parse_uid(uid)]), [dropdown], [graph])