AndreP-git commited on
Commit ·
a90ebc8
1
Parent(s): 232a514
Update position
Browse files- README.md +1 -1
- app.js +3 -22
- index.html +52 -52
README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
emoji: 👀
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: yellow
|
|
|
|
| 1 |
---
|
| 2 |
+
title: SIMPLE Law
|
| 3 |
emoji: 👀
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: yellow
|
app.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
// =====================================================
|
| 2 |
-
//
|
| 3 |
// =====================================================
|
| 4 |
|
| 5 |
|
|
@@ -33,7 +33,7 @@ const RDYLGN_R =
|
|
| 33 |
"#fee08b", "#fdae61", "#f46d43", "#d73027", "#a50026"
|
| 34 |
];
|
| 35 |
|
| 36 |
-
// Validated models, from models.json
|
| 37 |
const PRESET_MODELS =
|
| 38 |
{
|
| 39 |
"Llama 3.2 1B":
|
|
@@ -81,15 +81,6 @@ const PRESET_MODELS =
|
|
| 81 |
nkv:8
|
| 82 |
},
|
| 83 |
|
| 84 |
-
"Gemma 2 27B":
|
| 85 |
-
{
|
| 86 |
-
params:2.72e+10,
|
| 87 |
-
d:4608,
|
| 88 |
-
L:46,
|
| 89 |
-
nq:32,
|
| 90 |
-
nkv:16
|
| 91 |
-
},
|
| 92 |
-
|
| 93 |
"Granite 3B":
|
| 94 |
{
|
| 95 |
params:3.48e+09,
|
|
@@ -160,15 +151,6 @@ const PRESET_MODELS =
|
|
| 160 |
L:36,
|
| 161 |
nq:64,
|
| 162 |
nkv:64
|
| 163 |
-
},
|
| 164 |
-
|
| 165 |
-
"Mistral 24B":
|
| 166 |
-
{
|
| 167 |
-
params:2.36e+10,
|
| 168 |
-
d:5120,
|
| 169 |
-
L:40,
|
| 170 |
-
nq:32,
|
| 171 |
-
nkv:8
|
| 172 |
}
|
| 173 |
};
|
| 174 |
|
|
@@ -177,8 +159,7 @@ const PRESET_GROUPS =
|
|
| 177 |
[
|
| 178 |
{label:"XS · ~1B", max:2e9},
|
| 179 |
{label:"S · ~2B–3B", max:5e9},
|
| 180 |
-
{label:"M · ~6B–9B", max:
|
| 181 |
-
{label:"L · ~24B–27B", max:Infinity}
|
| 182 |
];
|
| 183 |
|
| 184 |
window.onload = function()
|
|
|
|
| 1 |
// =====================================================
|
| 2 |
+
// SIMPLE Law analytical model
|
| 3 |
// =====================================================
|
| 4 |
|
| 5 |
|
|
|
|
| 33 |
"#fee08b", "#fdae61", "#f46d43", "#d73027", "#a50026"
|
| 34 |
];
|
| 35 |
|
| 36 |
+
// Validated models, from models.json (up to ~9B)
|
| 37 |
const PRESET_MODELS =
|
| 38 |
{
|
| 39 |
"Llama 3.2 1B":
|
|
|
|
| 81 |
nkv:8
|
| 82 |
},
|
| 83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
"Granite 3B":
|
| 85 |
{
|
| 86 |
params:3.48e+09,
|
|
|
|
| 151 |
L:36,
|
| 152 |
nq:64,
|
| 153 |
nkv:64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
}
|
| 155 |
};
|
| 156 |
|
|
|
|
| 159 |
[
|
| 160 |
{label:"XS · ~1B", max:2e9},
|
| 161 |
{label:"S · ~2B–3B", max:5e9},
|
| 162 |
+
{label:"M · ~6B–9B", max:Infinity}
|
|
|
|
| 163 |
];
|
| 164 |
|
| 165 |
window.onload = function()
|
index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
<head>
|
| 5 |
<meta charset="UTF-8">
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 7 |
-
<title>
|
| 8 |
|
| 9 |
<script src="https://cdn.plot.ly/plotly-2.35.2.min.js"></script>
|
| 10 |
|
|
@@ -214,9 +214,9 @@
|
|
| 214 |
/* Input-token slider */
|
| 215 |
#ninWrapper {
|
| 216 |
width: 100%;
|
| 217 |
-
margin-
|
| 218 |
-
padding-
|
| 219 |
-
border-
|
| 220 |
}
|
| 221 |
|
| 222 |
.sliderHeader {
|
|
@@ -451,7 +451,7 @@
|
|
| 451 |
<body>
|
| 452 |
|
| 453 |
<header class="hero">
|
| 454 |
-
<div class="eyebrow">
|
| 455 |
<h1>Energy-per-Token demo</h1>
|
| 456 |
<p class="lede">
|
| 457 |
An architecture-aware analytical model of the energy spent on each
|
|
@@ -513,8 +513,54 @@
|
|
| 513 |
|
| 514 |
</div>
|
| 515 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 516 |
<section class="card" id="controls">
|
| 517 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 518 |
<div class="cardHeader">
|
| 519 |
<h3>Model</h3>
|
| 520 |
<span id="status" class="status"></span>
|
|
@@ -567,54 +613,8 @@
|
|
| 567 |
|
| 568 |
<div id="archSummary"></div>
|
| 569 |
|
| 570 |
-
<div id="ninWrapper">
|
| 571 |
-
|
| 572 |
-
<div class="sliderHeader">
|
| 573 |
-
<label for="ninSlider">Input tokens τ<sub>in</sub></label>
|
| 574 |
-
<span id="ninValue" class="badge">64</span>
|
| 575 |
-
</div>
|
| 576 |
-
|
| 577 |
-
<input
|
| 578 |
-
id="ninSlider"
|
| 579 |
-
type="range"
|
| 580 |
-
min="4"
|
| 581 |
-
max="16"
|
| 582 |
-
step="0.01"
|
| 583 |
-
value="6"
|
| 584 |
-
oninput="updateNin(this.value)"
|
| 585 |
-
>
|
| 586 |
-
|
| 587 |
-
<div id="ninLabels">
|
| 588 |
-
<span>16</span>
|
| 589 |
-
<span>65536</span>
|
| 590 |
-
</div>
|
| 591 |
-
|
| 592 |
-
<!-- Actual token count used by app.js -->
|
| 593 |
-
<input id="nin" type="hidden" value="64">
|
| 594 |
-
|
| 595 |
-
</div>
|
| 596 |
-
|
| 597 |
</section>
|
| 598 |
|
| 599 |
-
<div id="plots">
|
| 600 |
-
|
| 601 |
-
<div id="plotPanel">
|
| 602 |
-
<h4>Component breakdown at the selected τ<sub>in</sub></h4>
|
| 603 |
-
<div id="plot"></div>
|
| 604 |
-
</div>
|
| 605 |
-
|
| 606 |
-
<div id="contourPanel">
|
| 607 |
-
<h4>E<sub>tok</sub> over input and output tokens</h4>
|
| 608 |
-
<div id="contour"></div>
|
| 609 |
-
</div>
|
| 610 |
-
|
| 611 |
-
</div>
|
| 612 |
-
|
| 613 |
-
<p>
|
| 614 |
-
The contour map shows the total energy per token for the current architecture;
|
| 615 |
-
the dashed line marks the selected τ<sub>in</sub>.
|
| 616 |
-
</p>
|
| 617 |
-
|
| 618 |
<script>
|
| 619 |
const MIN_TOKENS = 16;
|
| 620 |
const MAX_TOKENS = 65536;
|
|
@@ -662,7 +662,7 @@ and inference frameworks.
|
|
| 662 |
For the complete methodology, experimental validation, and citation
|
| 663 |
information, please see the paper:
|
| 664 |
<a href="YOUR_PAPER_URL" target="_blank">
|
| 665 |
-
|
| 666 |
Efficiency of LLM Inference
|
| 667 |
</a>.
|
| 668 |
</p>
|
|
|
|
| 4 |
<head>
|
| 5 |
<meta charset="UTF-8">
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 7 |
+
<title>SIMPLE Law — Energy-per-Token demo</title>
|
| 8 |
|
| 9 |
<script src="https://cdn.plot.ly/plotly-2.35.2.min.js"></script>
|
| 10 |
|
|
|
|
| 214 |
/* Input-token slider */
|
| 215 |
#ninWrapper {
|
| 216 |
width: 100%;
|
| 217 |
+
margin-bottom: 22px;
|
| 218 |
+
padding-bottom: 18px;
|
| 219 |
+
border-bottom: 1px solid var(--border);
|
| 220 |
}
|
| 221 |
|
| 222 |
.sliderHeader {
|
|
|
|
| 451 |
<body>
|
| 452 |
|
| 453 |
<header class="hero">
|
| 454 |
+
<div class="eyebrow">SIMPLE Law</div>
|
| 455 |
<h1>Energy-per-Token demo</h1>
|
| 456 |
<p class="lede">
|
| 457 |
An architecture-aware analytical model of the energy spent on each
|
|
|
|
| 513 |
|
| 514 |
</div>
|
| 515 |
|
| 516 |
+
<div id="plots">
|
| 517 |
+
|
| 518 |
+
<div id="plotPanel">
|
| 519 |
+
<h4>Component breakdown at the selected τ<sub>in</sub></h4>
|
| 520 |
+
<div id="plot"></div>
|
| 521 |
+
</div>
|
| 522 |
+
|
| 523 |
+
<div id="contourPanel">
|
| 524 |
+
<h4>E<sub>tok</sub> over input and output tokens</h4>
|
| 525 |
+
<div id="contour"></div>
|
| 526 |
+
</div>
|
| 527 |
+
|
| 528 |
+
</div>
|
| 529 |
+
|
| 530 |
+
<p>
|
| 531 |
+
The contour map shows the total energy per token for the current architecture;
|
| 532 |
+
the dashed line marks the selected τ<sub>in</sub>.
|
| 533 |
+
</p>
|
| 534 |
+
|
| 535 |
<section class="card" id="controls">
|
| 536 |
|
| 537 |
+
<div id="ninWrapper">
|
| 538 |
+
|
| 539 |
+
<div class="sliderHeader">
|
| 540 |
+
<label for="ninSlider">Input tokens τ<sub>in</sub></label>
|
| 541 |
+
<span id="ninValue" class="badge">64</span>
|
| 542 |
+
</div>
|
| 543 |
+
|
| 544 |
+
<input
|
| 545 |
+
id="ninSlider"
|
| 546 |
+
type="range"
|
| 547 |
+
min="4"
|
| 548 |
+
max="16"
|
| 549 |
+
step="0.01"
|
| 550 |
+
value="6"
|
| 551 |
+
oninput="updateNin(this.value)"
|
| 552 |
+
>
|
| 553 |
+
|
| 554 |
+
<div id="ninLabels">
|
| 555 |
+
<span>16</span>
|
| 556 |
+
<span>65536</span>
|
| 557 |
+
</div>
|
| 558 |
+
|
| 559 |
+
<!-- Actual token count used by app.js -->
|
| 560 |
+
<input id="nin" type="hidden" value="64">
|
| 561 |
+
|
| 562 |
+
</div>
|
| 563 |
+
|
| 564 |
<div class="cardHeader">
|
| 565 |
<h3>Model</h3>
|
| 566 |
<span id="status" class="status"></span>
|
|
|
|
| 613 |
|
| 614 |
<div id="archSummary"></div>
|
| 615 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 616 |
</section>
|
| 617 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 618 |
<script>
|
| 619 |
const MIN_TOKENS = 16;
|
| 620 |
const MAX_TOKENS = 65536;
|
|
|
|
| 662 |
For the complete methodology, experimental validation, and citation
|
| 663 |
information, please see the paper:
|
| 664 |
<a href="YOUR_PAPER_URL" target="_blank">
|
| 665 |
+
SIMPLE Law: An Architecture-Aware Analytical Model for Predicting Energy
|
| 666 |
Efficiency of LLM Inference
|
| 667 |
</a>.
|
| 668 |
</p>
|