ArchitSharma commited on
Commit
ca14639
·
1 Parent(s): 4649014

Finalize InferScale-Sim

Browse files
Files changed (3) hide show
  1. index.html +9 -9
  2. scripts/release_check.py +2 -0
  3. styles.css +0 -1
index.html CHANGED
@@ -181,7 +181,7 @@
181
  <div class="empty-state" id="plannerEmpty"><h3>No search yet</h3><p>The planner repeatedly runs the simulator at different offered loads.</p></div>
182
  <div class="hidden" id="plannerContent">
183
  <div class="metric-grid four">
184
- <div class="metric emphasis"><span>Estimated capacity</span><strong id="pCapacity">N/A</strong></div>
185
  <div class="metric"><span>Recommended load</span><strong id="pRecommended">N/A</strong></div>
186
  <div class="metric"><span>Safety headroom</span><strong id="pHeadroom">N/A</strong></div>
187
  <div class="metric"><span>Status</span><strong id="pStatus">N/A</strong></div>
@@ -222,7 +222,7 @@
222
  </div>
223
  <div class="empty-state small" id="designEmpty"><h3>No sweep yet</h3><p>The current workload, model, SLO, and P/D parameters are reused from Serving Lab.</p></div>
224
  <div class="hidden" id="designContent">
225
- <div class="metric-grid four"><div class="metric emphasis"><span>Candidates</span><strong id="dCandidates">N/A</strong></div><div class="metric"><span>Performance Pareto</span><strong id="dPareto">N/A</strong></div><div class="metric"><span>Efficiency Pareto</span><strong id="dEfficiencyPareto">N/A</strong></div><div class="metric"><span>Profile</span><strong class="metric-small">Analytical</strong></div></div>
226
  <div class="chart-grid">
227
  <div class="chart-card" data-chart-card="" data-chart-name="design-performance-pareto-frontier">
228
  <div class="chart-head"><div class="chart-title">Raw goodput vs p95 TTFT</div><div class="chart-actions"><button class="chart-download" type="button">Download PNG</button><button class="chart-expand" type="button">Expand</button></div></div>
@@ -352,7 +352,7 @@
352
  <div class="empty-state small" id="agentRunEmpty"><h3>No session run yet</h3><p>Each session has ordered LLM turns separated by sampled tool gaps. A replica processes one turn at a time in this mode so cache/routing effects remain isolated from the batching experiments in Serving Lab.</p></div>
353
  <div class="hidden" id="agentRunContent">
354
  <div class="metric-grid eight-agent">
355
- <div class="metric emphasis"><span>p95 turn TTFT</span><strong id="agentTtft">N/A</strong></div>
356
  <div class="metric"><span>p95 session E2E</span><strong id="agentSessionE2e">N/A</strong></div>
357
  <div class="metric"><span>Session SLO</span><strong id="agentSessionSloValue">N/A</strong></div>
358
  <div class="metric"><span>Cross-turn reuse</span><strong id="agentCacheHit">N/A</strong></div>
@@ -446,7 +446,7 @@
446
  <div class="hidden" id="predictiveContent">
447
  <div class="hidden" id="predictiveCompareBlock">
448
  <div class="metric-grid four">
449
- <div class="metric emphasis"><span>Best non-oracle p95 TTFT</span><strong id="predictiveBestTtft">N/A</strong></div>
450
  <div class="metric"><span>Per-tool oracle agreement</span><strong id="predictiveAgreement">N/A</strong></div>
451
  <div class="metric"><span>Post-shift MAE</span><strong id="predictivePostMae">N/A</strong></div>
452
  <div class="metric"><span>Shift point</span><strong id="predictiveShiftValue">N/A</strong></div>
@@ -523,7 +523,7 @@
523
  <div class="empty-state small" id="execRunEmpty"><h3>No execution run yet</h3><p>Agent-role transitions are revealed only when the next workflow step becomes ready. Learned policies may prefetch likely static prefixes from the modeled host tier before that happens.</p></div>
524
  <div class="hidden" id="execRunContent">
525
  <div class="metric-grid eight-agent">
526
- <div class="metric emphasis"><span>p95 step TTFT</span><strong id="execTtft">N/A</strong></div>
527
  <div class="metric"><span>p95 workflow E2E</span><strong id="execE2e">N/A</strong></div>
528
  <div class="metric"><span>Transition top-1</span><strong id="execAccuracy">N/A</strong></div>
529
  <div class="metric"><span>Post-shift top-1</span><strong id="execPostAccuracy">N/A</strong></div>
@@ -606,7 +606,7 @@
606
  <div class="empty-state small" id="execPlanningEmpty"><h3>No planning study yet</h3><p>This experiment separates next-role accuracy from forecast-set recall, cache utilization, unused prefetch traffic, and actual serving latency.</p></div>
607
  <div class="hidden" id="execPlanningContent">
608
  <div class="metric-grid four">
609
- <div class="metric emphasis"><span>Lowest p95 TTFT</span><strong id="execPlanningBestTtft">N/A</strong></div>
610
  <div class="metric"><span>Best prefill / HBM</span><strong id="execPlanningBestEfficiency">N/A</strong></div>
611
  <div class="metric"><span>Forecast horizon</span><strong id="execPlanningHorizon">N/A</strong></div>
612
  <div class="metric"><span>Top-k</span><strong id="execPlanningTopK">N/A</strong></div>
@@ -624,7 +624,7 @@
624
  <div class="empty-state small" id="execHorizonEmpty"><h3>No horizon sweep yet</h3><p>Each horizon replays the exact same shifted workflow trace and uses the same cache budget and learned transition model.</p></div>
625
  <div class="hidden" id="execHorizonContent">
626
  <div class="metric-grid four">
627
- <div class="metric emphasis"><span>Best TTFT horizon</span><strong id="execHorizonBestTtft">N/A</strong></div>
628
  <div class="metric"><span>Best utilization horizon</span><strong id="execHorizonBestUtil">N/A</strong></div>
629
  <div class="metric"><span>Configured top-k</span><strong id="execHorizonTopK">N/A</strong></div>
630
  <div class="metric"><span>Cache budget</span><strong id="execHorizonBudget">N/A</strong></div>
@@ -687,7 +687,7 @@
687
  <div class="empty-state small" id="consEmpty"><h3>No repeated-seed result yet</h3><p>Run the matched-seed experiment from the left panel. The default executes four deployable policies plus an offline oracle search on each seed.</p></div>
688
  <div class="hidden" id="consContent">
689
  <div class="metric-grid four">
690
- <div class="metric emphasis"><span>Robust winner</span><strong class="metric-small" id="consWinner">-</strong></div>
691
  <div class="metric"><span>First-seed winner</span><strong class="metric-small" id="consNominal">-</strong></div>
692
  <div class="metric"><span>Matched seeds</span><strong id="consSeedCount">-</strong></div>
693
  <div class="metric"><span>Median oracle TTFT</span><strong id="consOracle">-</strong></div>
@@ -709,7 +709,7 @@
709
  <div class="metric"><span>Cases</span><strong id="measurementCases">-</strong></div>
710
  <div class="metric"><span>Prefill scale</span><strong id="measurementPrefill">-</strong></div>
711
  <div class="metric"><span>Decode scale</span><strong id="measurementDecode">-</strong></div>
712
- <div class="metric emphasis"><span>Held-out MAPE</span><strong id="measurementMape">-</strong></div>
713
  </div>
714
  <div class="table-toolbar"><span id="measurementCaption">Validation residuals</span><div><button class="mini-button" disabled="" id="measurementCopy" type="button">Copy table</button><button class="mini-button" disabled="" id="measurementCsv" type="button">Download CSV</button><button class="mini-button" disabled="" id="measurementJson" type="button">Download JSON</button></div></div>
715
  <div class="table-wrap"><table><thead><tr><th>Case</th><th>Metric</th><th>Measured</th><th>Baseline pred.</th><th>Calibrated pred.</th><th>Baseline APE</th><th>Calibrated APE</th></tr></thead><tbody id="measurementRows"></tbody></table></div>
 
181
  <div class="empty-state" id="plannerEmpty"><h3>No search yet</h3><p>The planner repeatedly runs the simulator at different offered loads.</p></div>
182
  <div class="hidden" id="plannerContent">
183
  <div class="metric-grid four">
184
+ <div class="metric"><span>Estimated capacity</span><strong id="pCapacity">N/A</strong></div>
185
  <div class="metric"><span>Recommended load</span><strong id="pRecommended">N/A</strong></div>
186
  <div class="metric"><span>Safety headroom</span><strong id="pHeadroom">N/A</strong></div>
187
  <div class="metric"><span>Status</span><strong id="pStatus">N/A</strong></div>
 
222
  </div>
223
  <div class="empty-state small" id="designEmpty"><h3>No sweep yet</h3><p>The current workload, model, SLO, and P/D parameters are reused from Serving Lab.</p></div>
224
  <div class="hidden" id="designContent">
225
+ <div class="metric-grid four"><div class="metric"><span>Candidates</span><strong id="dCandidates">N/A</strong></div><div class="metric"><span>Performance Pareto</span><strong id="dPareto">N/A</strong></div><div class="metric"><span>Efficiency Pareto</span><strong id="dEfficiencyPareto">N/A</strong></div><div class="metric"><span>Profile</span><strong class="metric-small">Analytical</strong></div></div>
226
  <div class="chart-grid">
227
  <div class="chart-card" data-chart-card="" data-chart-name="design-performance-pareto-frontier">
228
  <div class="chart-head"><div class="chart-title">Raw goodput vs p95 TTFT</div><div class="chart-actions"><button class="chart-download" type="button">Download PNG</button><button class="chart-expand" type="button">Expand</button></div></div>
 
352
  <div class="empty-state small" id="agentRunEmpty"><h3>No session run yet</h3><p>Each session has ordered LLM turns separated by sampled tool gaps. A replica processes one turn at a time in this mode so cache/routing effects remain isolated from the batching experiments in Serving Lab.</p></div>
353
  <div class="hidden" id="agentRunContent">
354
  <div class="metric-grid eight-agent">
355
+ <div class="metric"><span>p95 turn TTFT</span><strong id="agentTtft">N/A</strong></div>
356
  <div class="metric"><span>p95 session E2E</span><strong id="agentSessionE2e">N/A</strong></div>
357
  <div class="metric"><span>Session SLO</span><strong id="agentSessionSloValue">N/A</strong></div>
358
  <div class="metric"><span>Cross-turn reuse</span><strong id="agentCacheHit">N/A</strong></div>
 
446
  <div class="hidden" id="predictiveContent">
447
  <div class="hidden" id="predictiveCompareBlock">
448
  <div class="metric-grid four">
449
+ <div class="metric"><span>Best non-oracle p95 TTFT</span><strong id="predictiveBestTtft">N/A</strong></div>
450
  <div class="metric"><span>Per-tool oracle agreement</span><strong id="predictiveAgreement">N/A</strong></div>
451
  <div class="metric"><span>Post-shift MAE</span><strong id="predictivePostMae">N/A</strong></div>
452
  <div class="metric"><span>Shift point</span><strong id="predictiveShiftValue">N/A</strong></div>
 
523
  <div class="empty-state small" id="execRunEmpty"><h3>No execution run yet</h3><p>Agent-role transitions are revealed only when the next workflow step becomes ready. Learned policies may prefetch likely static prefixes from the modeled host tier before that happens.</p></div>
524
  <div class="hidden" id="execRunContent">
525
  <div class="metric-grid eight-agent">
526
+ <div class="metric"><span>p95 step TTFT</span><strong id="execTtft">N/A</strong></div>
527
  <div class="metric"><span>p95 workflow E2E</span><strong id="execE2e">N/A</strong></div>
528
  <div class="metric"><span>Transition top-1</span><strong id="execAccuracy">N/A</strong></div>
529
  <div class="metric"><span>Post-shift top-1</span><strong id="execPostAccuracy">N/A</strong></div>
 
606
  <div class="empty-state small" id="execPlanningEmpty"><h3>No planning study yet</h3><p>This experiment separates next-role accuracy from forecast-set recall, cache utilization, unused prefetch traffic, and actual serving latency.</p></div>
607
  <div class="hidden" id="execPlanningContent">
608
  <div class="metric-grid four">
609
+ <div class="metric"><span>Lowest p95 TTFT</span><strong id="execPlanningBestTtft">N/A</strong></div>
610
  <div class="metric"><span>Best prefill / HBM</span><strong id="execPlanningBestEfficiency">N/A</strong></div>
611
  <div class="metric"><span>Forecast horizon</span><strong id="execPlanningHorizon">N/A</strong></div>
612
  <div class="metric"><span>Top-k</span><strong id="execPlanningTopK">N/A</strong></div>
 
624
  <div class="empty-state small" id="execHorizonEmpty"><h3>No horizon sweep yet</h3><p>Each horizon replays the exact same shifted workflow trace and uses the same cache budget and learned transition model.</p></div>
625
  <div class="hidden" id="execHorizonContent">
626
  <div class="metric-grid four">
627
+ <div class="metric"><span>Best TTFT horizon</span><strong id="execHorizonBestTtft">N/A</strong></div>
628
  <div class="metric"><span>Best utilization horizon</span><strong id="execHorizonBestUtil">N/A</strong></div>
629
  <div class="metric"><span>Configured top-k</span><strong id="execHorizonTopK">N/A</strong></div>
630
  <div class="metric"><span>Cache budget</span><strong id="execHorizonBudget">N/A</strong></div>
 
687
  <div class="empty-state small" id="consEmpty"><h3>No repeated-seed result yet</h3><p>Run the matched-seed experiment from the left panel. The default executes four deployable policies plus an offline oracle search on each seed.</p></div>
688
  <div class="hidden" id="consContent">
689
  <div class="metric-grid four">
690
+ <div class="metric"><span>Robust winner</span><strong class="metric-small" id="consWinner">-</strong></div>
691
  <div class="metric"><span>First-seed winner</span><strong class="metric-small" id="consNominal">-</strong></div>
692
  <div class="metric"><span>Matched seeds</span><strong id="consSeedCount">-</strong></div>
693
  <div class="metric"><span>Median oracle TTFT</span><strong id="consOracle">-</strong></div>
 
709
  <div class="metric"><span>Cases</span><strong id="measurementCases">-</strong></div>
710
  <div class="metric"><span>Prefill scale</span><strong id="measurementPrefill">-</strong></div>
711
  <div class="metric"><span>Decode scale</span><strong id="measurementDecode">-</strong></div>
712
+ <div class="metric"><span>Held-out MAPE</span><strong id="measurementMape">-</strong></div>
713
  </div>
714
  <div class="table-toolbar"><span id="measurementCaption">Validation residuals</span><div><button class="mini-button" disabled="" id="measurementCopy" type="button">Copy table</button><button class="mini-button" disabled="" id="measurementCsv" type="button">Download CSV</button><button class="mini-button" disabled="" id="measurementJson" type="button">Download JSON</button></div></div>
715
  <div class="table-wrap"><table><thead><tr><th>Case</th><th>Metric</th><th>Measured</th><th>Baseline pred.</th><th>Calibrated pred.</th><th>Baseline APE</th><th>Calibrated APE</th></tr></thead><tbody id="measurementRows"></tbody></table></div>
scripts/release_check.py CHANGED
@@ -112,6 +112,8 @@ if 'class="subtitle"' in index:
112
  errors.append("topbar should remain a compact tool header, not a product masthead")
113
  if re.search(r"\.section-kicker\s*\{[^}]*text-transform:\s*uppercase", css, re.DOTALL | re.IGNORECASE):
114
  errors.append("section labels should not use repetitive AI-style uppercase kickers")
 
 
115
 
116
  # Every $("id") lookup in app.js should resolve to a static DOM id.
117
  app_ids = set(re.findall(r'\$\("([A-Za-z0-9_-]+)"\)', app))
 
112
  errors.append("topbar should remain a compact tool header, not a product masthead")
113
  if re.search(r"\.section-kicker\s*\{[^}]*text-transform:\s*uppercase", css, re.DOTALL | re.IGNORECASE):
114
  errors.append("section labels should not use repetitive AI-style uppercase kickers")
115
+ if 'class="metric emphasis"' in index or ".metric.emphasis" in css:
116
+ errors.append("summary metric cards should remain visually uniform; avoid one-off accent-card emphasis")
117
 
118
  # Every $("id") lookup in app.js should resolve to a static DOM id.
119
  app_ids = set(re.findall(r'\$\("([A-Za-z0-9_-]+)"\)', app))
styles.css CHANGED
@@ -399,7 +399,6 @@ button:disabled { opacity: 0.4; cursor: not-allowed; }
399
  .metric span { display: block; margin-bottom: 8px; color: var(--muted); font-size: 11.5px; }
400
  .metric strong { font-size: 20px; line-height: 1.2; letter-spacing: -0.025em; }
401
  .metric strong.metric-small { font-size: 14.5px; line-height: 1.35; }
402
- .metric.emphasis { box-shadow: inset 0 2px 0 var(--accent); background: rgba(111, 150, 207, 0.055); }
403
 
404
  .diagnostic-card {
405
  margin-bottom: 13px;
 
399
  .metric span { display: block; margin-bottom: 8px; color: var(--muted); font-size: 11.5px; }
400
  .metric strong { font-size: 20px; line-height: 1.2; letter-spacing: -0.025em; }
401
  .metric strong.metric-small { font-size: 14.5px; line-height: 1.35; }
 
402
 
403
  .diagnostic-card {
404
  margin-bottom: 13px;