AlexNijjar
commited on
Commit
•
934f7cd
1
Parent(s):
eb072d7
Update to new format
Browse files
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
|
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 =
|
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 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
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 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
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
|
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=["
|
325 |
-
datatype=["number", "
|
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])
|