Zaruhi commited on
Commit
3cb4d64
·
1 Parent(s): 58e0b4d

final udpates

Browse files
Files changed (2) hide show
  1. app.py +54 -42
  2. full_price_report.csv +0 -1
app.py CHANGED
@@ -1,7 +1,6 @@
1
  import gradio as gr
2
  import pandas as pd
3
  import plotly.graph_objects as go
4
- import plotly.express as px
5
  import numpy as np
6
  from model_handler import (
7
  ModelHandler,
@@ -75,22 +74,28 @@ def create_leaderboard_chart(leaderboard_df):
75
  if leaderboard_df.empty or "Average" not in leaderboard_df.columns:
76
  return None
77
 
78
- # Get top 20 models (reverse for display with best at top)
79
- top_20 = leaderboard_df.head(20).copy().iloc[::-1]
80
- colors = ["#F4DD2C" if x == '-' else "#7DCEF1" for x in top_20['Size']]
81
-
82
- # Create horizontal bar chart
83
- fig = go.Figure(data=[
84
- go.Bar(
85
- y=top_20["Model"],
86
- x=top_20["Average"],
 
 
 
 
 
 
87
  orientation="h",
88
- marker_color=colors,
89
- text=top_20["Average"].round(4),
 
90
  textposition="outside",
91
  hovertemplate="<b>%{y}</b><br>Avg Score: %{x:.4f}<extra></extra>",
92
- )
93
- ])
94
 
95
  fig.update_layout(
96
  title="Top 20 Models by Average Score",
@@ -99,6 +104,8 @@ def create_leaderboard_chart(leaderboard_df):
99
  xaxis_range = [0,1],
100
  height=600,
101
  hovermode="y unified",
 
 
102
  margin=dict(l=100),
103
  paper_bgcolor="rgba(30,30,30,0.85)",
104
  plot_bgcolor="rgba(30,30,30,0.85)",
@@ -114,6 +121,8 @@ def create_leaderboard_chart(leaderboard_df):
114
  dtick=1,
115
  tickfont=dict(color="white"),
116
  title_font=dict(color="white"),
 
 
117
  )
118
  )
119
 
@@ -175,28 +184,28 @@ def create_spend_report_chart(leaderboard_df):
175
  # font=dict(size=11),
176
  # margin=dict(l=80, r=80, t=80, b=80),
177
  # )
178
- # === Small jitter so points don't land exactly on top of each other ===
179
- merged["Cost_jitter"] = merged["Total Cost ($)"] + np.random.normal(0, 0.8, len(merged))
180
  merged["Model"] = merged["Model"].str.split("/").str[-1]
181
- fig = px.scatter(
182
- merged,
183
- x="Total Cost ($)", # jittered X so points separate
184
- y="Average",
185
- text="Model", # ← model name appears on the plot
186
- # color="Average", # color by accuracy (green = better)
187
- # color_continuous_scale=px.colors.sequential.Viridis,
188
- hover_name="Model",
189
- hover_data=["Total Cost ($)", "Total Tokens"],
190
- title="Model Evaluation: Cost vs Accuracy<br><sub>Hover or read labels for full details</sub>",
191
- labels={"Average": "Accuracy (Average Score)"},
192
- log_x=True,
193
- )
194
 
195
- fig.update_traces(
196
- textposition="middle right", # labels sit above each point
197
- textfont=dict(size=11, color="white"),
198
- marker=dict(size=14, line=dict(width=1, color="white")), # bigger, visible points
199
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
  fig.update_layout(
202
  paper_bgcolor="rgba(30,30,30,0.85)",
@@ -205,13 +214,16 @@ def create_spend_report_chart(leaderboard_df):
205
  height=650,
206
  xaxis_title="Total Cost ($)",
207
  yaxis=dict(range=[0, 1], showgrid=False),
208
- xaxis=dict(showgrid=False),
209
- showlegend=False,
 
210
  margin=dict(l=40, r=40, t=80, b=40)
211
  )
212
-
213
- # Optional: show the real cost value on the x-axis (not the jittered one)
214
- fig.update_xaxes(tickvals=merged["Total Cost ($)"], ticktext=[f"${v:.1f}" for v in merged["Total Cost ($)"]])
 
 
215
 
216
  return fig
217
 
@@ -337,7 +349,7 @@ def refresh_data():
337
  "detailed": prepare_detailed_leaderboard(detailed_results, leaderboard),
338
  "task_scores": task_scores,
339
  }
340
-
341
  return (
342
  create_leaderboard_chart(global_data["leaderboard"]),
343
  global_data["leaderboard"],
@@ -398,7 +410,7 @@ def main():
398
  )
399
 
400
  gr.Markdown(
401
- "> **Note:** We observed significant reliability issues with Claude 4.6 (same for 4.5) during evaluation. "
402
  "To preserve the integrity of the benchmark, all Claude 4.6 (4.5) models have been excluded from the leaderboard. "
403
  "You can learn more about the issue in [this GitHub issue](https://github.com/anthropics/claude-code/issues/17357)."
404
  )
@@ -425,7 +437,7 @@ def main():
425
 
426
  **Notes:**
427
  - Token counts are approximations based on API usage patterns
428
- - Spend data is only reported for API-based evaluations; other models were evaluated on local compute and costs are not reported
429
  """
430
  )
431
 
 
1
  import gradio as gr
2
  import pandas as pd
3
  import plotly.graph_objects as go
 
4
  import numpy as np
5
  from model_handler import (
6
  ModelHandler,
 
74
  if leaderboard_df.empty or "Average" not in leaderboard_df.columns:
75
  return None
76
 
77
+ # Get top 20 models sorted by average, best at top in horizontal bar
78
+ top_20 = leaderboard_df.head(20).copy().sort_values("Average", ascending=True)
79
+ # Split into two traces for legend
80
+ closed_mask = top_20['Size'] == '-'
81
+ open_mask = ~closed_mask
82
+
83
+ fig = go.Figure()
84
+ for mask, label, color in [
85
+ (closed_mask, "Closed Source", "#F4DD2C"),
86
+ (open_mask, "Open Source", "#7DCEF1"),
87
+ ]:
88
+ subset = top_20[mask]
89
+ fig.add_trace(go.Bar(
90
+ y=subset["Model"],
91
+ x=subset["Average"],
92
  orientation="h",
93
+ name=label,
94
+ marker_color=color,
95
+ text=subset["Average"].round(4),
96
  textposition="outside",
97
  hovertemplate="<b>%{y}</b><br>Avg Score: %{x:.4f}<extra></extra>",
98
+ ))
 
99
 
100
  fig.update_layout(
101
  title="Top 20 Models by Average Score",
 
104
  xaxis_range = [0,1],
105
  height=600,
106
  hovermode="y unified",
107
+ showlegend=True,
108
+ legend=dict(x=1, y=1, xanchor="right", yanchor="top", bgcolor="rgba(0,0,0,0)", font=dict(color="white")),
109
  margin=dict(l=100),
110
  paper_bgcolor="rgba(30,30,30,0.85)",
111
  plot_bgcolor="rgba(30,30,30,0.85)",
 
121
  dtick=1,
122
  tickfont=dict(color="white"),
123
  title_font=dict(color="white"),
124
+ categoryorder="array",
125
+ categoryarray=top_20["Model"].tolist(),
126
  )
127
  )
128
 
 
184
  # font=dict(size=11),
185
  # margin=dict(l=80, r=80, t=80, b=80),
186
  # )
 
 
187
  merged["Model"] = merged["Model"].str.split("/").str[-1]
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
+ fig = go.Figure()
190
+ for mask, label, color in [
191
+ (merged['Size'] == '-', "Closed Source", "#F4DD2C"),
192
+ (merged['Size'] != '-', "Open Source", "#7DCEF1"),
193
+ ]:
194
+ subset = merged[mask]
195
+ print('[MODELS]',subset['Model'].tolist())
196
+ fig.add_trace(go.Scatter(
197
+ x=subset["Total Cost ($)"],
198
+ y=subset["Average"],
199
+ mode="markers+text",
200
+ name=label,
201
+ marker=dict(size=14, color=color, line=dict(width=1, color="white")),
202
+ text=subset["Model"],
203
+ textposition=["top right","middle right","middle right","middle right","top right","middle right","top right","middle right","bottom left","middle left","middle left","middle left","middle right"] if len(subset)>2 else ['bottom right','middle right'],
204
+ textfont=dict(size=11, color="white"),
205
+ hovertemplate="<b>%{text}</b><br>Cost: $%{x:.2f}<br>Avg Score: %{y:.4f}<extra></extra>",
206
+ ))
207
+
208
+ fig.update_layout(title="Model Evaluation: Cost vs Accuracy<br><sub>Hover or read labels for full details</sub>")
209
 
210
  fig.update_layout(
211
  paper_bgcolor="rgba(30,30,30,0.85)",
 
214
  height=650,
215
  xaxis_title="Total Cost ($)",
216
  yaxis=dict(range=[0, 1], showgrid=False),
217
+ # xaxis=dict(showgrid=False, dtick=10, tickprefix="$"),
218
+ showlegend=True,
219
+ legend=dict(x=1, y=1, xanchor="right", yanchor="top", bgcolor="rgba(0,0,0,0)", font=dict(color="white")),
220
  margin=dict(l=40, r=40, t=80, b=40)
221
  )
222
+ fig.update_xaxes(
223
+ showgrid=False,
224
+ tickprefix="$",
225
+ tickmode="auto",
226
+ )
227
 
228
  return fig
229
 
 
349
  "detailed": prepare_detailed_leaderboard(detailed_results, leaderboard),
350
  "task_scores": task_scores,
351
  }
352
+ global_data["leaderboard"].to_csv('leaderboard.csv',index =False)
353
  return (
354
  create_leaderboard_chart(global_data["leaderboard"]),
355
  global_data["leaderboard"],
 
410
  )
411
 
412
  gr.Markdown(
413
+ "> **Note:** We observed significant reliability issues with Claude 4.6 (4.5) during evaluation. "
414
  "To preserve the integrity of the benchmark, all Claude 4.6 (4.5) models have been excluded from the leaderboard. "
415
  "You can learn more about the issue in [this GitHub issue](https://github.com/anthropics/claude-code/issues/17357)."
416
  )
 
437
 
438
  **Notes:**
439
  - Token counts are approximations based on API usage patterns
440
+ - Spend data is only reported for models having more than 50B parameters.
441
  """
442
  )
443
 
full_price_report.csv CHANGED
@@ -13,5 +13,4 @@ openai/gpt-5.4-nano,1105571,0.623154
13
  x-ai/grok-4-fast,10881722,2.711288
14
  x-ai/grok-4.1-fast,12961678,3.236579
15
  x-ai/grok-4.20-beta,1554643,2.749659
16
- z-ai/glm-4.7-flash,15109580,2.976598
17
  z-ai/glm-5,17845348,26.480097
 
13
  x-ai/grok-4-fast,10881722,2.711288
14
  x-ai/grok-4.1-fast,12961678,3.236579
15
  x-ai/grok-4.20-beta,1554643,2.749659
 
16
  z-ai/glm-5,17845348,26.480097