Datdanboi25 commited on
Commit
097252d
Β·
1 Parent(s): 107c8eb

Highlight size category leaders in gold in the leaderboard

Browse files
Files changed (1) hide show
  1. index.html +52 -17
index.html CHANGED
@@ -10,6 +10,8 @@
10
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4"></script>
11
  <style>
12
  :root {
 
 
13
  --bg: #0a0a0b;
14
  --bg-alt: #111113;
15
  --surface: #141416;
@@ -1167,6 +1169,8 @@
1167
 
1168
  <style>
1169
  /* index7.1 refinements */
 
 
1170
  #highlight-leader-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
1171
  #highlight-leader-grid .filter-leader-card {
1172
  display: flex;
@@ -1191,8 +1195,8 @@
1191
  }
1192
  #highlight-leader-grid .filter-leader-card:focus-visible { outline: 2px solid var(--leader-org-color); outline-offset: 3px; }
1193
  #highlight-leader-grid .filter-leader-kicker { color: #91919b; font-size: 10px; letter-spacing: .08em; }
1194
- #highlight-leader-grid .filter-leader-name { min-height: 44px; margin-top: 14px; font-size: 18px; font-weight: 500; letter-spacing: -.3px; }
1195
- #highlight-leader-grid .filter-leader-name:hover { color: var(--leader-org-color); }
1196
  .highlight-leader-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin-top: auto; padding-top: 14px; }
1197
  .highlight-leader-score { text-align: right; }
1198
  #highlight-leader-grid .filter-leader-score { margin-top: 0; font-size: 22px; }
@@ -1601,7 +1605,7 @@
1601
  <!-- LEADERBOARD TABLE -->
1602
  <section id="leaderboard" style="padding-top:40px;">
1603
  <h2 class="section-title">Leaderboard</h2>
1604
- <p class="section-sub">Zero-shot evaluation. Higher is better for all columns. Click any header to sort.</p>
1605
  <div class="leaderboard-filter-row">
1606
  <div class="filter-group">
1607
  <span class="filter-label">Model size</span>
@@ -2123,6 +2127,7 @@
2123
  // ═══════════════════════════════════════════════════════════════
2124
 
2125
  const BENCHMARKS = ['arc', 'hellaswag', 'piqa', 'arcChall', 'arithmark3', 'arithmark2'];
 
2126
  const METRICS = [
2127
  { key: 'intelligenceIndex', label: 'Int Index', fullLabel: 'Intelligence Index' },
2128
  { key: 'hellaswag', label: 'HellaSwag', fullLabel: 'HellaSwag' },
@@ -2254,17 +2259,45 @@
2254
  return models.filter(m => !m.type);
2255
  }
2256
 
2257
- function getFilteredModels(models = MODELS) {
2258
  let arr = getModelEntries(models);
2259
- if (activeFilter === '<3M') arr = arr.filter(m => m.params && m.params < 3000000);
2260
- else if (activeFilter === '<10M') arr = arr.filter(m => m.params && m.params < 10000000);
2261
- else if (activeFilter === '<50M') arr = arr.filter(m => m.params && m.params < 50000000);
2262
- else if (activeFilter === '<100M') arr = arr.filter(m => m.params && m.params < 100000000);
2263
- else if (activeFilter === '<150M') arr = arr.filter(m => m.params && m.params < 150000000);
2264
- else if (activeFilter === '<250M') arr = arr.filter(m => m.params && m.params < 250000000);
2265
  return arr;
2266
  }
2267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2268
  function getLeaderboardModels(models = getFilteredModels()) {
2269
  const normalizeSearchText = value => String(value || '')
2270
  .normalize('NFKD')
@@ -2439,7 +2472,7 @@ function getFilteredModels(models = MODELS) {
2439
 
2440
  function renderFilters() {
2441
  const bar = document.getElementById('filter-bar');
2442
- const filters = ['all', '<250M', '<150M', '<100M', '<50M', '<10M', '<3M'];
2443
  bar.innerHTML = filters.map(f => `
2444
  <button class="filter-btn ${activeFilter === f ? 'active' : ''}" onclick="setFilter('${f}')">${f === 'all' ? 'All' : f}</button>
2445
  `).join('');
@@ -2568,6 +2601,7 @@ function getFilteredModels(models = MODELS) {
2568
  const allModels = getLeaderboardModels();
2569
  const fitMap = getModelFitMap(allModels);
2570
  const sorted = getSortedModels(allModels, fitMap);
 
2571
 
2572
  if (!sorted.length) {
2573
  tbody.innerHTML = '<tr><td colspan="13" class="td-model" style="padding:24px;color:var(--text-secondary);">No models match this search.</td></tr>';
@@ -2620,7 +2654,7 @@ function getFilteredModels(models = MODELS) {
2620
  <tr>
2621
  <td class="td-compare"><button class="compare-toggle ${inCompare ? 'active' : ''}" onclick="toggleCompare('${encodeURIComponent(m.name)}')" title="${inCompare ? 'Remove from comparison' : 'Add to comparison'}" aria-pressed="${inCompare}">${inCompare ? 'βˆ’' : '+'}</button></td>
2622
  <td class="td-rank">${rank}</td>
2623
- <td class="td-model"><a href="${m.links.card}" target="_blank">${m.name}</a>${cutoffTag}<span class="model-org"><a href="${org.url}" target="_blank">${org.name}</a> &middot; ${m.paramsDisplay}</span></td>
2624
  <td class="td-params">${m.paramsDisplay}</td>
2625
  <td class="td-score">${intelligenceIndex !== null ? `<span class="${Math.abs(intelligenceIndex - best.intelligenceIndex) < 0.001 ? 'best' : ''}" style="${scoreColor(intelligenceIndex, Math.min(0, mins.intelligenceIndex), best.intelligenceIndex)}">${intelligenceIndex.toFixed(2)}</span>` : '<span class="td-score na">&mdash;</span>'}</td>
2626
  <td class="td-score">${fmtCell(m.hellaswag, 'hellaswag')}</td>
@@ -3319,9 +3353,8 @@ function getFilteredModels(models = MODELS) {
3319
 
3320
  <script>
3321
  (function () {
3322
- const sizeFilters = ['all', '<250M', '<150M', '<100M', '<50M', '<10M', '<3M'];
3323
  const sizeLabels = { all: 'All sizes', '<250M': 'Under 250M', '<150M': 'Under 150M', '<100M': 'Under 100M', '<50M': 'Under 50M', '<10M': 'Under 10M', '<3M': 'Under 3M' };
3324
- const limits = { '<250M': 250000000, '<150M': 150000000, '<100M': 100000000, '<50M': 50000000, '<10M': 10000000, '<3M': 3000000 };
3325
 
3326
  function escapeHtml(value) {
3327
  return String(value).replace(/[&<>"']/g, function (char) {
@@ -3330,12 +3363,14 @@ function getFilteredModels(models = MODELS) {
3330
  }
3331
 
3332
  function modelsFor(filter) {
3333
- return getModelEntries(MODELS).filter(function (model) {
3334
- return filter === 'all' || (model.params && model.params < limits[filter]);
3335
- });
3336
  }
3337
 
3338
  function winner(filter, metric) {
 
 
 
 
3339
  return modelsFor(filter)
3340
  .map(function (model) { return { model: model, score: getMetricValue(model, metric) }; })
3341
  .filter(function (entry) { return Number.isFinite(entry.score); })
 
10
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4"></script>
11
  <style>
12
  :root {
13
+ --leader-gold: #d7bd83;
14
+ --leader-gold-hover: #f0dca8;
15
  --bg: #0a0a0b;
16
  --bg-alt: #111113;
17
  --surface: #141416;
 
1169
 
1170
  <style>
1171
  /* index7.1 refinements */
1172
+ #leaderboard-body .td-model > a.category-leader { color: var(--leader-gold); }
1173
+ #leaderboard-body .td-model > a.category-leader:hover { color: var(--leader-gold-hover); }
1174
  #highlight-leader-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
1175
  #highlight-leader-grid .filter-leader-card {
1176
  display: flex;
 
1195
  }
1196
  #highlight-leader-grid .filter-leader-card:focus-visible { outline: 2px solid var(--leader-org-color); outline-offset: 3px; }
1197
  #highlight-leader-grid .filter-leader-kicker { color: #91919b; font-size: 10px; letter-spacing: .08em; }
1198
+ #highlight-leader-grid .filter-leader-name { min-height: 44px; margin-top: 14px; color: var(--text); font-size: 18px; font-weight: 500; letter-spacing: -.3px; }
1199
+ #highlight-leader-grid .filter-leader-name:hover { color: var(--text); }
1200
  .highlight-leader-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin-top: auto; padding-top: 14px; }
1201
  .highlight-leader-score { text-align: right; }
1202
  #highlight-leader-grid .filter-leader-score { margin-top: 0; font-size: 22px; }
 
1605
  <!-- LEADERBOARD TABLE -->
1606
  <section id="leaderboard" style="padding-top:40px;">
1607
  <h2 class="section-title">Leaderboard</h2>
1608
+ <p class="section-sub">Zero-shot evaluation. Higher is better for all columns. Gold names mark size category leaders. Click any header to sort.</p>
1609
  <div class="leaderboard-filter-row">
1610
  <div class="filter-group">
1611
  <span class="filter-label">Model size</span>
 
2127
  // ═══════════════════════════════════════════════════════════════
2128
 
2129
  const BENCHMARKS = ['arc', 'hellaswag', 'piqa', 'arcChall', 'arithmark3', 'arithmark2'];
2130
+ const SIZE_FILTERS = ['all', '<250M', '<150M', '<100M', '<50M', '<10M', '<3M'];
2131
  const METRICS = [
2132
  { key: 'intelligenceIndex', label: 'Int Index', fullLabel: 'Intelligence Index' },
2133
  { key: 'hellaswag', label: 'HellaSwag', fullLabel: 'HellaSwag' },
 
2259
  return models.filter(m => !m.type);
2260
  }
2261
 
2262
+ function getFilteredModels(models = MODELS, filter = activeFilter) {
2263
  let arr = getModelEntries(models);
2264
+ if (filter === '<3M') arr = arr.filter(m => m.params && m.params < 3000000);
2265
+ else if (filter === '<10M') arr = arr.filter(m => m.params && m.params < 10000000);
2266
+ else if (filter === '<50M') arr = arr.filter(m => m.params && m.params < 50000000);
2267
+ else if (filter === '<100M') arr = arr.filter(m => m.params && m.params < 100000000);
2268
+ else if (filter === '<150M') arr = arr.filter(m => m.params && m.params < 150000000);
2269
+ else if (filter === '<250M') arr = arr.filter(m => m.params && m.params < 250000000);
2270
  return arr;
2271
  }
2272
 
2273
+ function getSizeLeader(filter) {
2274
+ let leader = null;
2275
+ let bestScore = -Infinity;
2276
+ for (const model of getFilteredModels(MODELS, filter)) {
2277
+ const score = getIntelligenceIndex(model);
2278
+ if (Number.isFinite(score) && score > bestScore) {
2279
+ leader = model;
2280
+ bestScore = score;
2281
+ }
2282
+ }
2283
+ return leader;
2284
+ }
2285
+
2286
+ function getCategoryLeaders() {
2287
+ const leaders = new Map();
2288
+ for (const filter of SIZE_FILTERS) {
2289
+ const leader = getSizeLeader(filter);
2290
+ if (!leader) continue;
2291
+ if (!leaders.has(leader.name)) leaders.set(leader.name, []);
2292
+ leaders.get(leader.name).push(filter === 'all' ? 'All sizes' : filter);
2293
+ }
2294
+ return leaders;
2295
+ }
2296
+
2297
+ function getCategoryLeaderTitle(categories) {
2298
+ return categories ? `Category leader: ${categories.join(', ')}`.replace(/</g, '&lt;') : '';
2299
+ }
2300
+
2301
  function getLeaderboardModels(models = getFilteredModels()) {
2302
  const normalizeSearchText = value => String(value || '')
2303
  .normalize('NFKD')
 
2472
 
2473
  function renderFilters() {
2474
  const bar = document.getElementById('filter-bar');
2475
+ const filters = SIZE_FILTERS;
2476
  bar.innerHTML = filters.map(f => `
2477
  <button class="filter-btn ${activeFilter === f ? 'active' : ''}" onclick="setFilter('${f}')">${f === 'all' ? 'All' : f}</button>
2478
  `).join('');
 
2601
  const allModels = getLeaderboardModels();
2602
  const fitMap = getModelFitMap(allModels);
2603
  const sorted = getSortedModels(allModels, fitMap);
2604
+ const categoryLeaders = getCategoryLeaders();
2605
 
2606
  if (!sorted.length) {
2607
  tbody.innerHTML = '<tr><td colspan="13" class="td-model" style="padding:24px;color:var(--text-secondary);">No models match this search.</td></tr>';
 
2654
  <tr>
2655
  <td class="td-compare"><button class="compare-toggle ${inCompare ? 'active' : ''}" onclick="toggleCompare('${encodeURIComponent(m.name)}')" title="${inCompare ? 'Remove from comparison' : 'Add to comparison'}" aria-pressed="${inCompare}">${inCompare ? 'βˆ’' : '+'}</button></td>
2656
  <td class="td-rank">${rank}</td>
2657
+ <td class="td-model"><a class="${categoryLeaders.has(m.name) ? 'category-leader' : ''}" title="${getCategoryLeaderTitle(categoryLeaders.get(m.name))}" href="${m.links.card}" target="_blank">${m.name}</a>${cutoffTag}<span class="model-org"><a href="${org.url}" target="_blank">${org.name}</a> &middot; ${m.paramsDisplay}</span></td>
2658
  <td class="td-params">${m.paramsDisplay}</td>
2659
  <td class="td-score">${intelligenceIndex !== null ? `<span class="${Math.abs(intelligenceIndex - best.intelligenceIndex) < 0.001 ? 'best' : ''}" style="${scoreColor(intelligenceIndex, Math.min(0, mins.intelligenceIndex), best.intelligenceIndex)}">${intelligenceIndex.toFixed(2)}</span>` : '<span class="td-score na">&mdash;</span>'}</td>
2660
  <td class="td-score">${fmtCell(m.hellaswag, 'hellaswag')}</td>
 
3353
 
3354
  <script>
3355
  (function () {
3356
+ const sizeFilters = SIZE_FILTERS;
3357
  const sizeLabels = { all: 'All sizes', '<250M': 'Under 250M', '<150M': 'Under 150M', '<100M': 'Under 100M', '<50M': 'Under 50M', '<10M': 'Under 10M', '<3M': 'Under 3M' };
 
3358
 
3359
  function escapeHtml(value) {
3360
  return String(value).replace(/[&<>"']/g, function (char) {
 
3363
  }
3364
 
3365
  function modelsFor(filter) {
3366
+ return getFilteredModels(MODELS, filter);
 
 
3367
  }
3368
 
3369
  function winner(filter, metric) {
3370
+ if (metric === 'intelligenceIndex') {
3371
+ const model = getSizeLeader(filter);
3372
+ return model ? { model, score: getIntelligenceIndex(model) } : null;
3373
+ }
3374
  return modelsFor(filter)
3375
  .map(function (model) { return { model: model, score: getMetricValue(model, metric) }; })
3376
  .filter(function (entry) { return Number.isFinite(entry.score); })