DMCRA-LAB / index.html
AEUPH's picture
DMCRA Lab: elastic level-set quantisation over real GGUF weights, measured end to end
48f8357 verified
Raw History Blame Contribute Delete
11.7 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>DMCRA Lab — elastic level-set quantisation, measured</title>
<meta name="description" content="A client-side lab that quantises a real GGUF's real weight tensors to elastic per-block level sets and runs the real llama forward pass to measure what it costs. Every figure is measured in your browser.">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="scanline"></div>
<div class="app">
<header>
<span class="brand">DMCRA · ELASTIC CENTROID LAB</span>
<span class="sub">REAL GGUF WEIGHTS · REAL FORWARD PASS · MEASURED, NOT ASSERTED</span>
</header>
<!-- ============================================================ spec -->
<section class="panel">
<h2 class="panel-title pink">Spec — what is measured here, and what this page refuses to claim</h2>
<div class="table-wrap">
<table class="spec">
<tr><th>mechanism under test</th><td>per-block level-set selection. A weight matrix is cut into 32-weight blocks and each block is assigned a grid from a nested family — <span class="num">{±1}</span> → <span class="num">{0,±1}</span> → <span class="num">{0,±1,±2}</span> → <span class="num">{0..±3}</span> — so the <i>codebook</i>, not just the scale, is chosen per block under a bit budget.</td></tr>
<tr><th>the “multi-channel zero”</th><td><code>{0/0/0}</code> is three zeros. A decoder that maps a channel to the number zero maps all three to zero, so this page puts both grids through the same pass and reports whether the logits come out bit-identical — and what the widened alphabet is charged for it. Both rows are printed either way.</td></tr>
<tr><th>elasticity at equal bits</th><td>measured here, at a bit budget held equal by construction, against uniform ternary. The verdict printed in that panel is produced by your run; the page does not assert a winner in its copy.</td></tr>
<tr><th>what is NOT measured</th><td>memristive crossbar arrays, photonic waveguides, “zero-latency” propagation and in-DRAM routing. This is a static page running JavaScript in a tab: it has no such datapath and makes no claim about one. Latency figures here are the cost of the mechanism <i>in software</i>.</td></tr>
<tr><th>quality instruments</th><td>top-1 of the true next token <i>with its standard error</i>, mean rank of the true token, and Spearman ρ of the 512 logits against the exact pass. Both latter are invariant to logit scale, so no quantiser can buy a better score by shrinking its logits.</td></tr>
<tr><th>why not perplexity</th><td>on this fixture the exact pass scores <b>worse</b> than a uniform distribution in mean log-likelihood while being far above chance on top-1. A metric that uniform beats rewards degradation, so it is printed as a warning and never used to rank.</td></tr>
<tr><th>what a level costs</th><td><span class="num">ceil(log2 levels)</span> index bits per weight, plus one 4-byte scale per block. The measured bits/weight column is reported by the forward pass itself, and asserted against this arithmetic in the test suite.</td></tr>
<tr><th>every figure</th><td>computed in your browser from the GGUF's real weight bytes, or labelled with the suite that measured it. Nothing is a simulated or definition-derived number.</td></tr>
</table>
</div>
</section>
<!-- ============================================================ 1. model -->
<section class="panel">
<h2 class="panel-title">1 · Model — stream a GGUF and read its real weights</h2>
<div class="row">
<select id="model-select">
<option value="https://huggingface.co/ggml-org/models/resolve/main/tinyllamas/stories260K.gguf">stories260K · 1.13 MB · all F32 · 512-token vocab</option>
<option value="https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf">TinyLlama 1.1B · Q4_K_M — 638 MB, refused (over the in-tab ceiling)</option>
<option value="https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/qwen2.5-0.5b-instruct-q4_k_m.gguf">Qwen2.5 0.5B · q4_k_m — ~400 MB, refused (over the ceiling, and already quantised)</option>
<option value="https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf">Llama 3 8B · Q4_K_M — refused (over the ceiling)</option>
<option value="https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf">Mistral 7B Instruct · Q4_K_M — refused (over the ceiling)</option>
</select>
<button id="load-btn" class="btn primary">Stream + parse</button>
<span class="status-text" id="load-status">nothing loaded</span>
</div>
<div class="table-wrap">
<table class="telemetry">
<thead><tr><th>field</th><th>value</th></tr></thead>
<tbody id="model-tbody">
<tr><th>state</th><td class="num">press “Stream + parse”</td></tr>
</tbody>
</table>
</div>
<p class="hint">The pass needs the weight tensors, so the whole file is read, not just the metadata block. Larger models are refused with their byte count and a reason rather than appearing to hang.</p>
</section>
<!-- ============================================================ 2. inference -->
<section class="panel">
<h2 class="panel-title">2 · Inference — the real transformer, real next-token distribution</h2>
<div class="row">
<textarea id="prompt" rows="2" spellcheck="false">Once upon a time there was a little girl named Lily .</textarea>
</div>
<div class="row">
<button id="run-btn" class="btn accent">Run forward pass</button>
<span class="status-text" id="infer-status">needs a loaded model</span>
</div>
<div class="table-wrap">
<table class="data">
<thead><tr><th>#</th><th>token</th><th>logit</th><th>p</th></tr></thead>
<tbody id="topk-tbody">
<tr><td colspan="4">run the pass to see the model's own next-token distribution</td></tr>
</tbody>
</table>
</div>
</section>
<!-- ============================================================ 3. ladder -->
<section class="panel accent-panel">
<h2 class="panel-title lime">3 · The level-set ladder — what unclamping actually buys</h2>
<div class="row">
<label>scored positions</label>
<input type="range" id="positions" min="4" max="32" value="12">
<span class="status-text" id="positions-label">12 positions</span>
<button id="ladder-btn" class="btn primary">Measure ladder</button>
<span class="status-text" id="exact-status">exact baseline: not measured</span>
<span class="status-text" id="ladder-status"></span>
</div>
<div class="table-wrap">
<table class="data">
<thead><tr><th>grid</th><th>bits/weight</th><th>RMSE</th><th>mean rank</th><th>top-1</th><th>rho vs exact</th></tr></thead>
<tbody id="ladder-tbody">
<tr><td colspan="6">measure the ladder to fill this table — the exact pass is measured first, because every rho is against it</td></tr>
</tbody>
</table>
</div>
<p class="hint">Mean rank is the position of the true next token in the model's own ordering; a uniform guess averages <span class="num">256.5</span> on this vocabulary, lower is better. rho is the rank correlation of all 512 logits against the exact pass. Top-1 is shown with its standard error in the log, because at these position counts it cannot resolve small differences.</p>
</section>
<!-- ============================================================ 4. zero -->
<section class="grid2">
<div class="panel">
<h2 class="panel-title">4 · The multi-channel zero, tested for identity</h2>
<div class="row">
<button id="zero-btn" class="btn step">Test {0} vs {0/0/0}</button>
<span class="status-text" id="zero-status">needs the ladder's exact baseline</span>
</div>
<div class="table-wrap">
<table class="data">
<thead><tr><th>configuration</th><th>bits/weight</th><th>logits identical to {0}?</th><th>mean rank</th><th>top-1</th></tr></thead>
<tbody id="zero-tbody">
<tr><td colspan="5">the claim is that widening the zero into three channels is an information channel; the test is whether a decoder can tell them apart</td></tr>
</tbody>
</table>
</div>
<p class="hint">Compared bit-for-bit across every position and every vocabulary entry — not a tolerance, not a similarity.</p>
</div>
<div class="panel">
<h2 class="panel-title">5 · Elastic allocation at equal bits</h2>
<div class="row">
<select id="plan-select">
<option value="benefit">key: measured error reduction per bit</option>
<option value="variance">key: block dispersion (the document's stated pressure)</option>
</select>
<button id="plan-btn" class="btn warn">Build + measure plan</button>
<span class="status-text" id="plan-status">needs the ladder's exact baseline</span>
</div>
<div class="table-wrap">
<table class="data">
<thead><tr><th>plan</th><th>bits/weight</th><th>mean rank</th><th>rho vs exact</th><th>rank diff vs ternary</th></tr></thead>
<tbody id="plan-tbody">
<tr><td colspan="5">uniform ternary is the baseline at the same average bits; a positive rank difference means the plan is worse</td></tr>
</tbody>
</table>
</div>
<div class="vis-box">
<canvas id="grid-canvas"></canvas>
<span class="vis-label">per-block grid map — blue = binary, grey = ternary, pink = hepta</span>
</div>
<div class="row legend">
<span class="swatch"><i style="background:#3b82f6"></i>binary · 1 index bit</span>
<span class="swatch"><i style="background:#6b6480"></i>ternary · 2 index bits</span>
<span class="swatch"><i style="background:#ff2d78"></i>hepta · 3 index bits</span>
</div>
<p class="hint">The plan promotes the most important blocks to the 3-bit grid and demotes the least important to the 1-bit grid until the promoted and demoted parameter masses balance, which holds the average to 2.0000 index bits. Both plans are shown against the same uniform-ternary baseline.</p>
</div>
</section>
<!-- ============================================================ log -->
<section class="panel">
<h2 class="panel-title">Log — what the page actually did</h2>
<div id="terminal" class="terminal-box"><span class="cursor" id="cursor"></span></div>
<div class="row">
<button id="clear-btn" class="btn ghost">Clear log</button>
</div>
<div class="log" id="log"></div>
</section>
<footer>
Client-side only: no server, no upload, no GPU, no CDN, no build step. The GGUF codec, the tokeniser
and the forward pass are the same modules the <code>hdc-suite</code> Space ships, vendored here with
their provenance in the file headers.<br>
Method, per-claim verdicts and the suites behind them: <code>reports/dmcra-plan.md</code> and
<code>reports/dmcra-verdicts.md</code>. Part of the AEUPH studio.
</footer>
</div>
<script src="gguf.js"></script>
<script src="weights.js"></script>
<script src="bpe.js"></script>
<script src="quant.js"></script>
<script src="forward.js"></script>
<script src="app.js"></script>
</body>
</html>