alphabell-research commited on
Commit
394e701
·
verified ·
1 Parent(s): cc68717

Publish alphaBell Qwen Open research release

Browse files
Files changed (6) hide show
  1. README.md +19 -6
  2. app.js +75 -0
  3. assets/benchmark-comparison.svg +325 -0
  4. data/results.json +0 -0
  5. index.html +26 -17
  6. style.css +1 -28
README.md CHANGED
@@ -1,10 +1,23 @@
1
  ---
2
- title: Qwen Open Explorer
3
- emoji: 🦀
4
- colorFrom: indigo
5
- colorTo: pink
6
  sdk: static
7
- pinned: false
 
 
 
 
 
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
1
  ---
2
+ title: alphaBell Qwen Open Evaluation Explorer
3
+ emoji: 🔎
4
+ colorFrom: blue
5
+ colorTo: green
6
  sdk: static
7
+ app_file: index.html
8
+ models:
9
+ - alphabell/alphaBell-Qwen3.8-27B-Open-FP8
10
+ pinned: true
11
+ short_description: Historical BF16 coding scores and task-level comparisons.
12
+ license: other
13
+ license_name: alphabell-research-noncommercial
14
+ license_link: https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8/blob/main/LICENSE
15
  ---
16
 
17
+ # alphaBell Qwen Open Evaluation Explorer
18
+
19
+ Explore the recorded HumanEval and MBPP results for the Qwen parent and alphaBell's final BF16 checkpoint. Choose original or extended tests, filter improvements and regressions, and search task IDs.
20
+
21
+ The scores describe historical BF16 runs. Full FP8 benchmark parity has not been evaluated. The greeting is a recorded CPU smoke-test output, not live inference.
22
+
23
+ [Model](https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8) · [alphaBell](https://alphabell.com) · [Research license](https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8/blob/main/LICENSE)
app.js ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "use strict";
2
+ let records = null;
3
+ let outcomeFilter = "all";
4
+ const $ = id => document.getElementById(id);
5
+ const percent = (passed, total) => `${(100 * passed / total).toFixed(2)}%`;
6
+
7
+ function render() {
8
+ if (!records) return;
9
+ const dataset = $("dataset").value;
10
+ const field = $("suite").value;
11
+ const runs = records.results.filter(run => run.dataset === dataset);
12
+ const parent = runs.find(run => run.model.startsWith("Qwen/"));
13
+ const final = runs.find(run => run.model.includes("alphaBell"));
14
+ if (!parent || !final) throw new Error("Missing evaluation comparison");
15
+ const parentTasks = new Map(parent.tasks.map(task => [task.task_id, task]));
16
+ const rows = final.tasks.map(task => {
17
+ const original = parentTasks.get(task.task_id);
18
+ if (!original) throw new Error("Missing paired task");
19
+ const before = original[field] === "pass";
20
+ const after = task[field] === "pass";
21
+ return { id: task.task_id, before, after, outcome: before === after ? "unchanged" : after ? "improvement" : "regression" };
22
+ }).sort((a, b) => a.id.localeCompare(b.id, undefined, { numeric: true }));
23
+ const total = rows.length;
24
+ const basePassed = rows.filter(row => row.before).length;
25
+ const finalPassed = rows.filter(row => row.after).length;
26
+ const improvements = rows.filter(row => row.outcome === "improvement").length;
27
+ const regressions = rows.filter(row => row.outcome === "regression").length;
28
+ const delta = 100 * (finalPassed - basePassed) / total;
29
+ $("base-score").textContent = percent(basePassed, total);
30
+ $("final-score").textContent = percent(finalPassed, total);
31
+ $("base-count").textContent = `${basePassed} / ${total} tasks passed`;
32
+ $("final-count").textContent = `${finalPassed} / ${total} tasks passed`;
33
+ $("delta").textContent = `${delta > 0 ? "+" : ""}${delta.toFixed(2)} pp`;
34
+ $("change-count").textContent = `${improvements} improved · ${regressions} regressed`;
35
+ const query = $("search").value.trim().toLowerCase();
36
+ const visible = rows.filter(row => (outcomeFilter === "all" || row.outcome === outcomeFilter) && row.id.toLowerCase().includes(query));
37
+ const fragment = document.createDocumentFragment();
38
+ for (const row of visible) {
39
+ const tr = document.createElement("tr");
40
+ const id = document.createElement("th");
41
+ id.scope = "row";
42
+ id.textContent = row.id;
43
+ tr.append(id);
44
+ for (const passed of [row.before, row.after]) {
45
+ const td = document.createElement("td");
46
+ td.className = `status ${passed ? "pass" : "fail"}`;
47
+ td.textContent = passed ? "Pass" : "Fail";
48
+ tr.append(td);
49
+ }
50
+ const td = document.createElement("td");
51
+ const badge = document.createElement("span");
52
+ badge.className = `outcome ${row.outcome}`;
53
+ badge.textContent = { improvement: "Improved", regression: "Regressed", unchanged: "Unchanged" }[row.outcome];
54
+ td.append(badge);
55
+ tr.append(td);
56
+ fragment.append(tr);
57
+ }
58
+ $("tasks").replaceChildren(fragment);
59
+ $("row-count").textContent = `${visible.length} of ${total} tasks`;
60
+ $("empty").hidden = visible.length !== 0;
61
+ }
62
+
63
+ for (const id of ["dataset", "suite"]) $(id).addEventListener("change", render);
64
+ $("search").addEventListener("input", render);
65
+ for (const button of document.querySelectorAll("[data-filter]")) {
66
+ button.addEventListener("click", () => {
67
+ outcomeFilter = button.dataset.filter;
68
+ for (const filter of document.querySelectorAll("[data-filter]")) filter.setAttribute("aria-pressed", String(filter === button));
69
+ render();
70
+ });
71
+ }
72
+ fetch("data/results.json")
73
+ .then(response => { if (!response.ok) throw new Error("Evaluation request failed"); return response.json(); })
74
+ .then(data => { records = data; render(); })
75
+ .catch(() => { $("error").hidden = false; $("row-count").textContent = "Evaluation unavailable"; });
assets/benchmark-comparison.svg ADDED
data/results.json ADDED
The diff for this file is too large to render. See raw diff
 
index.html CHANGED
@@ -1,19 +1,28 @@
1
  <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
  <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <meta name="description" content="Explore alphaBell Qwen Open's historical BF16 coding evaluations, including task-level improvements and regressions.">
7
+ <title>alphaBell Qwen Open Evaluation Explorer</title>
8
+ <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 32 32%27%3E%3Ccircle cx=%2716%27 cy=%2716%27 r=%2714%27 fill=%27%23087f73%27/%3E%3C/svg%3E">
9
+ <link rel="stylesheet" href="style.css">
10
+ <script src="app.js" defer></script>
11
+ </head>
12
+ <body>
13
+ <header class="header"><div class="wrap header-inner"><a class="brand" href="https://alphabell.com" target="_blank" rel="noopener">alphaBell<span class="brand-dot">.</span></a><span class="header-label">Research / Evaluation explorer</span><a class="source-link" href="https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8/tree/main/evaluation" target="_blank" rel="noopener">Evaluation code ↗</a></div></header>
14
+ <main class="wrap">
15
+ <section class="intro"><p class="eyebrow">Qwen Open / 27B</p><h1>See the tradeoffs.<br><span>Down to each task.</span></h1><p class="lede">Compare the Qwen parent with alphaBell's final BF16 checkpoint on HumanEval and MBPP. Explore the original tests, the extended tests, and the tasks whose outcomes changed.</p><div class="actions"><a class="button" href="https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8" target="_blank" rel="noopener">Model on Hugging Face ↗</a><a class="button secondary" href="https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8" target="_blank" rel="noopener">Download FP8 ↗</a></div></section>
16
+ <section class="explorer" aria-labelledby="explorer-title"><div class="section-heading"><h2 id="explorer-title">Historical BF16 results</h2><span class="date">13-14 October 2026</span></div>
17
+ <div class="controls"><label>Benchmark<select id="dataset"><option value="humaneval">HumanEval</option><option value="mbpp">MBPP</option></select></label><label>Test suite<select id="suite"><option value="base_status">Original tests</option><option value="plus_status">Extended tests (+)</option></select></label><div class="protocol"><span>One solution per task</span><span>Temperature 0 · Thinking enabled</span></div></div>
18
+ <div class="scores" aria-live="polite"><article class="score-card"><p class="eyebrow">Qwen parent</p><p class="score" id="base-score">Loading</p><p class="score-count" id="base-count"></p></article><article class="score-card final"><p class="eyebrow">alphaBell final BF16</p><p class="score" id="final-score">Loading</p><p class="score-count" id="final-count"></p></article><article class="score-card"><p class="eyebrow">Change</p><p class="score delta" id="delta">Loading</p><p class="score-count" id="change-count"></p></article></div>
19
+ <p class="scope">These are recorded BF16 scores. Complete FP8 benchmark parity remains untested. More answers do not establish better task performance.</p>
20
+ <div class="task-toolbar"><div class="filters" role="group" aria-label="Task outcome filter"><button type="button" data-filter="all" aria-pressed="true">All tasks</button><button type="button" data-filter="regression" aria-pressed="false">Regressions</button><button type="button" data-filter="improvement" aria-pressed="false">Improvements</button></div><label class="search"><span class="sr-only">Search task IDs</span><input id="search" type="search" placeholder="Search task ID" autocomplete="off"></label></div>
21
+ <div class="table-heading"><p id="row-count" aria-live="polite">Loading evaluation records</p><a href="data/results.json" download>Download results JSON ↓</a></div>
22
+ <div class="table-scroll"><table><thead><tr><th scope="col">Task</th><th scope="col">Qwen parent</th><th scope="col">alphaBell BF16</th><th scope="col">Outcome</th></tr></thead><tbody id="tasks"></tbody></table></div><p class="empty" id="empty" hidden>No tasks match these filters.</p><p class="error" id="error" role="alert" hidden>Evaluation records could not load. Reload this page to try again.</p></section>
23
+ <section class="details-grid"><details class="detail-card"><summary>All four benchmark comparisons</summary><figure><img src="assets/benchmark-comparison.svg" width="1100" height="630" alt="Qwen parent and alphaBell final BF16 scores across HumanEval, HumanEval+, MBPP and MBPP+."><figcaption>BF16 measurements, one generated solution per task.</figcaption></figure><a href="assets/benchmark-comparison.svg" target="_blank" rel="noopener">Open full figure ↗</a></details><article class="detail-card"><p class="eyebrow">Recorded CPU check</p><h2>A basic functional check</h2><p class="recorded-prompt">“Reply with one short sentence: hello, and what is 2 + 3?”</p><p class="recorded-output">Hello, 2 + 3 is 5.</p><p class="small">Recorded BF16 CPU output, 12 tokens, thinking disabled. This explorer does not run a chat model.</p></article></section>
24
+ <section class="method"><h2>Read the comparison</h2><p>Original and extended tests score the same generated solution. An improvement means the final BF16 model passed a task the parent failed; a regression means the reverse. Unchanged tasks can be passes or failures for both models.</p><p>The runs used a maximum of 16,384 generated tokens with EvalPlus sanitization and scoring. Two final HumanEval generations reached the token limit; MBPP had none. The model combines abliteration and supervised fine-tuning. Its training includes Alpaca replay data, and the derivative is for noncommercial research.</p></section>
25
+ </main>
26
+ <footer class="wrap"><p>Research by <a href="https://alphabell.com" target="_blank" rel="noopener">alphaBell</a>. Built on Qwen.</p><a href="https://huggingface.co/alphabell/alphaBell-Qwen3.8-27B-Open-FP8/blob/main/LICENSE" target="_blank" rel="noopener">Noncommercial research license ↗</a></footer>
27
+ </body>
28
  </html>
style.css CHANGED
@@ -1,28 +1 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
- }
5
-
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
- }
10
-
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
- }
17
-
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
- }
25
-
26
- .card p:last-child {
27
- margin-bottom: 0;
28
- }
 
1
+ :root{--ink:#152a3b;--muted:#5c6b75;--line:#dce4e7;--teal:#087f73;--pale:#eef8f5;--paper:#fbfcfc;--white:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.55;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #2b9184;outline-offset:3px}.wrap{max-width:1120px;margin:auto;padding-inline:28px}.header{border-bottom:1px solid var(--line);background:var(--white)}.header-inner{display:flex;align-items:center;gap:24px;min-height:72px}.brand{font-size:1.5rem;font-weight:750;letter-spacing:-.06em;color:var(--ink)}.brand-dot{color:var(--teal)}.header-label{color:var(--muted);font-size:.8rem}.source-link{margin-left:auto;font-size:.85rem;font-weight:600}.intro{padding:62px 0 38px;max-width:800px}.eyebrow{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:0 0 12px}h1{font-size:clamp(2.25rem,5vw,3.9rem);line-height:1.08;letter-spacing:-.05em;margin:0 0 24px;font-weight:720}h1 span{color:var(--teal)}.lede{font-size:1.07rem;color:var(--muted);max-width:690px;margin:0 0 24px}.actions{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:white;font-size:.85rem;font-weight:650}.button:hover{background:var(--teal);border-color:var(--teal);text-decoration:none}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.secondary:hover{border-color:var(--teal);color:var(--teal)}.explorer{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:26px;margin-bottom:24px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:22px}h2{font-size:1.15rem;letter-spacing:-.025em;line-height:1.3;margin:0 0 12px}.section-heading h2{margin:0}.date{font-size:.75rem;color:var(--muted)}.controls{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin-bottom:22px}.controls label{display:grid;gap:6px;font-size:.75rem;font-weight:650;min-width:180px}select,input{background:var(--white);color:var(--ink);border:1px solid #cbd7db;border-radius:6px;padding:9px 11px}select{min-width:180px}.protocol{display:grid;margin-left:auto;color:var(--muted);font-size:.75rem;padding-bottom:5px}.scores{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.score-card{border:1px solid var(--line);border-radius:8px;padding:20px}.score-card.final{background:var(--pale);border-color:#b9ded3}.score-card.final .eyebrow,.score-card.final .score{color:var(--teal)}.score-card .eyebrow{margin-bottom:9px}.score{font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.1;letter-spacing:-.05em;font-weight:700;margin:0 0 10px}.score-count{font-size:.78rem;color:var(--muted);margin:0}.scope{font-size:.78rem;color:var(--muted);margin:15px 0 26px;max-width:800px}.task-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.filters{display:flex;gap:5px;flex-wrap:wrap}.filters button{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:7px 11px;font-size:.78rem;color:var(--muted);cursor:pointer}.filters button[aria-pressed=true]{background:var(--ink);color:var(--white);border-color:var(--ink)}.search input{width:200px;font-size:.8rem}.table-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;font-size:.73rem;color:var(--muted);margin-top:15px}.table-heading p{margin:0 0 9px}.table-heading a{margin-bottom:9px}.table-scroll{max-height:470px;overflow:auto;border:1px solid var(--line);border-radius:7px}table{border-collapse:collapse;width:100%;font-size:.8rem}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);white-space:nowrap}thead th{background:#f3f6f7;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;position:sticky;top:0;z-index:1}tbody th{font-weight:600;font-variant-numeric:tabular-nums}tbody tr:last-child>*{border-bottom:0}tbody tr:hover{background:#f7faf9}.status{font-size:.76rem}.pass{color:var(--teal)}.fail{color:#806157}.outcome{font-size:.72rem;padding:3px 7px;border-radius:4px;background:#f1f4f5;color:var(--muted)}.outcome.improvement{background:#e4f4ed;color:#23614c}.outcome.regression{background:#fcf0e9;color:#92532e}.empty,.error{font-size:.85rem;padding:18px 0;text-align:center}.error{color:#92532e}.details-grid{display:grid;align-items:start;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0 36px}.detail-card{border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--white);min-width:0}.detail-card summary{font-size:1rem;font-weight:650;cursor:pointer;letter-spacing:-.02em}.detail-card figure{margin:20px 0 10px}.detail-card img{width:100%;height:auto;display:block}.detail-card figcaption,.detail-card>a,.small{font-size:.77rem;color:var(--muted)}.recorded-prompt{font-size:.85rem;color:var(--muted)}.recorded-output{font-size:1.1rem;color:var(--teal);font-weight:600}.method{max-width:820px;margin-bottom:45px}.method p{font-size:.87rem;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-block:22px!important;font-size:.76rem;color:var(--muted)}footer p{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(max-width:700px){.wrap{padding-inline:20px}.header-inner{gap:12px;min-height:62px}.header-label{font-size:.65rem;max-width:130px}.intro{padding-top:38px}.explorer{padding:18px}.scores{gap:8px}.score-card{padding:14px 10px}.score-card .eyebrow{font-size:.58rem;letter-spacing:.06em;min-height:24px}.score-count{font-size:.69rem}.protocol{margin-left:0;flex-basis:100%}.controls{gap:12px}.controls label{min-width:0;flex:1}select{width:100%;min-width:0}.details-grid{grid-template-columns:1fr}.search{width:100%}.search input{width:100%}.table-scroll{max-height:430px}.score.delta{font-size:1.3rem;white-space:nowrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}