mayafree's picture
SEO: meta description/keywords, OG + Twitter cards, JSON-LD Dataset
d0ad0a7 verified
Raw History Blame Contribute Delete
27.2 kB
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Typed-Decision Arena</title>
<meta name="description" content="JEV and open-Jev answer verifiers ranked on one identical 2,018-item test set (zero generation). JEV, Bespoke Nimble, CLM-8B, decider-2b, open-jev, Laya, ZTC compared by weighted AUC and calibration ECE. Typed-decision answer-verifier leaderboard.">
<meta name="keywords" content="JEV, JEV alternative, open-jev, open-jev leaderboard, typed decisions, answer verification, hallucination detection, LLM judge, verifier, System-1, calibrated confidence, ECE, AUC, zero-token, Bespoke Nimble, CLM-8B, decider-2b, Laya, ZTC, factuality, uncertainty estimation, benchmark">
<meta name="author" content="MAYAFREE">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Typed Decision Leaderboard">
<meta property="og:title" content="Typed-Decision Arena โ€” answer verifiers on one test set">
<meta property="og:description" content="Independent leaderboard of answer verifiers scored on the same 2,018 items by weighted AUC and ECE.">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Typed-Decision Arena">
<meta name="twitter:description" content="JEV, Bespoke Nimble, CLM-8B, decider-2b, open-jev, Laya, ZTC ranked on one identical test set.">
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Dataset","name":"Typed Decision Leaderboard","description":"Independent benchmark of answer verifiers / typed-decision / System-1 scorers on the same 2,018-item labeled test set by weighted AUC and calibration ECE. Covers JEV, Bespoke Nimble, CLM-8B, decider-2b, open-jev, Laya, Patronus Lynx, ZTC and 40+ open-Jev families.","keywords":["JEV","open-jev","typed decisions","answer verification","hallucination detection","LLM judge","calibration","ECE","AUC","zero-token verifier","Bespoke Nimble","CLM-8B","decider-2b","Laya","ZTC"],"creator":{"@type":"Organization","name":"MAYAFREE"},"license":"https://www.apache.org/licenses/LICENSE-2.0","isAccessibleForFree":true,"inLanguage":["en","ko"]}
</script>
<style>
:root{
--bg:#f6f7f9; --panel:#ffffff; --panel2:#f0f2f5; --ink:#12151c; --ink2:#4a5262;
--line:#e2e6ec; --line2:#d2d8e0;
--accent:#0e7c7b; /* ZTC signal teal */
--accent-ink:#0a5a59;
--api:#b45309; /* API/closed amber */
--good:#127a3e; --bad:#c0392b; --warn:#b7791f;
--rk:#8a93a3;
--mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
--sans:'IBM Plex Sans','Malgun Gothic','Apple SD Gothic Neo',system-ui,-apple-system,sans-serif;
color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
--bg:#0c0f14; --panel:#141922; --panel2:#1b212c; --ink:#e8ecf2; --ink2:#9aa4b4;
--line:#242c38; --line2:#323b49; --accent:#2dd4bf; --accent-ink:#5eead4;
--api:#f0b45e; --good:#4ade80; --bad:#f87171; --warn:#fbbf24; --rk:#6b7484;
color-scheme:dark;
}}
:root[data-theme="dark"]{
--bg:#0c0f14; --panel:#141922; --panel2:#1b212c; --ink:#e8ecf2; --ink2:#9aa4b4;
--line:#242c38; --line2:#323b49; --accent:#2dd4bf; --accent-ink:#5eead4;
--api:#f0b45e; --good:#4ade80; --bad:#f87171; --warn:#fbbf24; --rk:#6b7484;
color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding-inline:20px}
h1,h2,h3{text-wrap:balance;margin:0}
a{color:var(--accent-ink);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:var(--mono)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* hero */
header.hero{border-bottom:1px solid var(--line);background:
radial-gradient(1200px 300px at 15% -40%, color-mix(in srgb,var(--accent) 14%,transparent), transparent 70%),
var(--panel)}
.hero .wrap{padding-block:34px 26px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
color:var(--accent-ink);display:flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--accent);display:inline-block}
h1{font-size:clamp(30px,5vw,46px);font-weight:600;letter-spacing:-.02em;margin:14px 0 8px;line-height:1.02}
h1 .b{color:var(--accent-ink)}
.tag{color:var(--ink2);max-width:64ch;font-size:15.5px}
.stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.stat{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:11px 15px;min-width:118px}
.stat .k{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-.02em}
.stat .l{font-size:11.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.stat.acc .k{color:var(--accent-ink)}
/* controls row */
.controls{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
padding-block:16px;position:sticky;top:env(safe-area-inset-top,0px);z-index:20;
background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.tabs{display:inline-flex;background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:4px;gap:3px}
.tabs button{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink2);
background:none;border:0;padding:8px 16px;border-radius:9px;cursor:pointer;display:flex;gap:8px;align-items:center}
.tabs button .c{font-family:var(--mono);font-size:11px;background:var(--line);color:var(--ink2);
border-radius:20px;padding:1px 7px}
.tabs button[aria-selected="true"]{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.10)}
.tabs button[aria-selected="true"] .c{background:var(--accent);color:#fff}
.tabs.mini button[aria-selected="true"] .c{background:var(--api)}
.right{display:flex;gap:8px;align-items:center}
.lang button,.thm{font-family:var(--mono);font-size:12px;color:var(--ink2);background:var(--panel2);
border:1px solid var(--line2);border-radius:8px;padding:6px 10px;cursor:pointer}
.lang button[aria-pressed="true"]{color:var(--ink);border-color:var(--accent);background:var(--panel)}
section{padding-block:30px}
section .wrap>h2{font-size:20px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:baseline;gap:10px}
section .wrap>h2 .n{font-family:var(--mono);font-size:13px;color:var(--rk)}
.sub{color:var(--ink2);margin:6px 0 18px;font-size:14px}
/* ranking table */
.board{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tblwrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
thead th{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;
color:var(--ink2);text-align:left;padding:12px 14px;border-bottom:1px solid var(--line2);white-space:nowrap;font-weight:500}
thead th.r{text-align:right}
tbody td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr.top{background:color-mix(in srgb,var(--accent) 6%,transparent)}
tbody tr.us td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.rk{font-family:var(--mono);color:var(--rk);font-weight:600;width:34px}
.rk.m{color:var(--accent-ink)}
.nm{font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.org{color:var(--ink2);font-size:12.5px}
.chip{font-family:var(--mono);font-size:10.5px;padding:1px 7px;border-radius:20px;border:1px solid var(--line2);color:var(--ink2)}
.chip.us{border-color:var(--accent);color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.chip.zero{border-color:color-mix(in srgb,var(--good) 40%,var(--line2));color:var(--good)}
.bar{height:6px;border-radius:4px;background:var(--panel2);overflow:hidden;margin-top:6px;max-width:230px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-ink))}
tr.us .bar i{background:linear-gradient(90deg,var(--accent),var(--accent-ink))}
.auc{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600;text-align:right}
.delta{font-family:var(--mono);font-size:11px}
.delta.p{color:var(--good)} .delta.n{color:var(--bad)}
td.r{text-align:right}
.pill{font-family:var(--mono);font-size:11px;color:var(--ink2)}
.note-r{color:var(--ink2);font-size:12px;max-width:34ch}
.baserow td{background:var(--panel2)}
.baserow .nm{font-weight:500;color:var(--ink2)}
/* registry cards */
.reg-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 15px;display:flex;flex-direction:column;gap:7px}
.card .top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.card .cn{font-weight:600;font-size:14.5px;line-height:1.2}
.card .co{color:var(--ink2);font-size:12px;font-family:var(--mono)}
.card .meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.m2{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line2);color:var(--ink2);border-radius:6px;padding:1px 6px}
.card .cnote{color:var(--ink2);font-size:12px;line-height:1.4}
.card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}
.waiting{font-family:var(--mono);font-size:10.5px;color:var(--warn);border:1px dashed color-mix(in srgb,var(--warn) 55%,var(--line2));border-radius:20px;padding:2px 9px}
.likes{font-family:var(--mono);font-size:11px;color:var(--ink2)}
/* method / notes */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.mcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 17px}
.mcard h3{font-size:14px;font-weight:600;margin-bottom:6px}
.mcard p{margin:0;color:var(--ink2);font-size:13px}
.banner{background:color-mix(in srgb,var(--accent) 7%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--ink)}
.banner b{color:var(--accent-ink)}
footer{border-top:1px solid var(--line);padding-block:24px;color:var(--ink2);font-size:12.5px}
.hide-narrow{}
@media (max-width:720px){ .hide-narrow{display:none} .auc{font-size:15px} h1{font-size:30px} }
</style>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap">
<header class="hero"><div class="wrap">
<div class="eyebrow" id="eyebrow">Answer-Verification ยท Typed-Decision Arena</div>
<h1 id="h1">ํƒ€์ž…๋“œ ๋””์‹œ์ „ <span class="b">๋ถ€๋ฌธ ๋ฆฌ๋”๋ณด๋“œ</span></h1>
<p class="tag" id="tag"></p>
<div class="stats" id="stats"></div>
</div></header>
<div class="controls"><div class="wrap" style="display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;width:100%">
<div class="tabs" id="divtabs" role="tablist"></div>
<div class="right">
<div class="lang" id="lang"><button data-l="ko" aria-pressed="true">KO</button><button data-l="en" aria-pressed="false">EN</button></div>
<button class="thm" id="thm" title="theme">โ—</button>
</div>
</div></div>
<section><div class="wrap">
<h2><span id="rankH">์ธก์ • ์™„๋ฃŒ ์ˆœ์œ„</span> <span class="n" id="rankAxis"></span></h2>
<p class="sub" id="rankSub"></p>
<div class="board"><div class="tblwrap"><table>
<thead><tr>
<th style="width:34px">#</th><th id="thModel">๋ชจ๋ธ</th>
<th class="hide-narrow" id="thBase">๊ณ„๋ณด</th>
<th class="hide-narrow" id="thSize">ํฌ๊ธฐ</th>
<th class="hide-narrow" id="thGen">์ƒ์„ฑํ† ํฐ</th>
<th class="r" id="thAuc">๊ฐ€์ค‘ AUC</th>
</tr></thead>
<tbody id="rank"></tbody>
</table></div></div>
<p class="sub" style="margin-top:10px" id="tieNote"></p>
<div id="judgesBox" hidden style="margin-top:18px">
<h3 style="font-size:15px;font-weight:600;margin-bottom:4px" id="judgesH"></h3>
<p class="sub" id="judgesSub" style="margin-bottom:10px"></p>
<div class="board"><div class="tblwrap"><table>
<thead><tr><th id="jM">์‹ฌํŒ</th><th class="hide-narrow" id="jC">๋น„์šฉ</th><th class="r" id="jA">AUC</th></tr></thead>
<tbody id="judges"></tbody></table></div></div>
</div>
</div></section>
<section id="unseenSec"><div class="wrap">
<h2><span id="unseenH"></span> <span class="n" id="unseenN"></span></h2>
<p class="sub" id="unseenSub"></p>
<div class="board"><div class="tblwrap"><table>
<thead><tr><th style="width:34px">#</th><th id="uM">๋ชจ๋ธ</th><th class="r" id="uA">AUC</th></tr></thead>
<tbody id="unseen"></tbody></table></div></div>
<p class="banner" id="unseenCi" style="margin-top:14px"></p>
</div></section>
<section style="background:var(--panel2)"><div class="wrap">
<div class="reg-head">
<div><h2 style="display:block"><span id="regH">์ฐธ๊ฐ€ ํ›„๋ณด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ</span> <span class="n" id="regCount"></span></h2>
<p class="sub" id="regSub" style="margin-bottom:0"></p></div>
</div>
<div class="banner" id="regBanner" style="margin-bottom:16px"></div>
<div class="grid" id="registry"></div>
</div></section>
<section><div class="wrap">
<h2 id="methH">์ถ•๊ณผ ๋ฐฉ๋ฒ•</h2>
<p class="sub" id="methSub"></p>
<div class="cols" id="method"></div>
</div></section>
<footer><div class="wrap" id="foot"></div></footer>
<script>
/*__DATA__*/
const T={
ko:{tag:"ใ€Œ์ด ๋‹ต์ด ๋งž๋Š”๊ฐ€ใ€๋ฅผ ์ƒ์„ฑ ์—†์ด ํŒ์ •ํ•˜๋Š” ๋ชจ๋ธ๋“ค์˜ ๊ฒฝ๊ธฐ์žฅ. ์ถ•์€ ์ƒ์„ฑ ํ† ํฐ 0๊ฐœ, ๋ถ€๋ฌธ์€ APIยท๋กœ์ปฌ๋กœ ๋‚˜๋ˆˆ๋‹ค. ์ •๋ณธ ์‹œํ—˜์ง€ 2,018๋ฌธํ•ญยท5๋ถ„์•ผ ๊ฐ€์ค‘ AUC.",
rankH:"์ธก์ • ์™„๋ฃŒ ์ˆœ์œ„",rankSub:"์ •๋ณธ ์‹œํ—˜์ง€์—์„œ ์‹ค์ œ๋กœ ์žฐ ๊ฐ’๋งŒ ์ˆœ์œ„์— ์˜ฌ๋ฆฐ๋‹ค. ์•„์ง ์•ˆ ์žฐ ๋ชจ๋ธ์€ ์•„๋ž˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—.",
model:"๋ชจ๋ธ",base:"์ ‘๊ทผ",size:"ํฌ๊ธฐ",gen:"์ƒ์„ฑํ† ํฐ",auc:"๊ฐ€์ค‘ AUC",
regH:"์ฐธ๊ฐ€ ํ›„๋ณด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ",regSub:"๊ณต๊ฐœ๋œ ํƒ€์ž…๋“œ ๋””์‹œ์ „/์˜คํ”ˆ-Jev ๊ณ„์—ด. ์ •๋ณธ ์‹œํ—˜์ง€ ์ธก์ • ์ „๊นŒ์ง€ ์ ์ˆ˜๋Š” ๋น„์šด๋‹ค.",
methH:"์ถ•๊ณผ ๋ฐฉ๋ฒ•",methSub:"์™œ ์ด ํ‘œ๊ฐ€ ๊ณต์ •ํ•œ๊ฐ€.",waiting:"์ธก์ • ๋Œ€๊ธฐ",
axis:"ยท ์ƒ์„ฑ ํ† ํฐ 0๊ฐœ ์ถ• ยท 2,018๋ฌธํ•ญ"},
en:{tag:"An arena for models that judge \"is this answer correct\" with zero generation. The axis is zero output tokens; divisions split API vs local. Reference set: 2,018 items, 5-domain weighted AUC.",
rankH:"Measured ranking",rankSub:"Only values actually measured on the reference set are ranked. Un-measured models sit in the registry below.",
model:"Model",base:"Access",size:"Size",gen:"Gen tok",auc:"Weighted AUC",
regH:"Entrant registry",regSub:"Open typed-decision / open-Jev families. Scores stay blank until measured on the reference set.",
methH:"Axis & method",methSub:"Why this table is fair.",waiting:"awaiting eval",
axis:"ยท zero-generation axis ยท 2,018 items"}
};
let B=null,L="ko",DIV="local";
const $=s=>document.querySelector(s), val=v=>v==null?"":String(v);
const nm=x=>x;
async function load(){try{const r=await fetch("/data");if(r.ok)B=await r.json();}catch(e){}
if(!B||!B.candidates){B=(typeof DATA!=="undefined")?DATA:null;}
if(!B){$("#rank").innerHTML="<tr><td>data unavailable</td></tr>";return;}
buildTabs();paint();}
function t(){return T[L];}
function divsOf(){return B.divisions||{local:{title:"๋กœ์ปฌ ๋ถ€๋ฌธ",sub:""},api:{title:"API ๋ถ€๋ฌธ",sub:""}};}
function buildTabs(){
const dv=divsOf();const order=["local","api"];
$("#divtabs").innerHTML=order.map(k=>{
const cnt=(B.entries.filter(e=>e.division===k&&e.kind!=="baseline"&&e.kind!=="judge").length)
+(B.candidates.filter(c=>c.division===k).length);
return `<button role="tab" data-d="${k}" aria-selected="${k===DIV}">${dv[k].title}<span class="c">${cnt}</span></button>`;
}).join("");
$("#divtabs").className="tabs"+(DIV==="api"?" mini":"");
document.querySelectorAll('#divtabs button').forEach(b=>b.onclick=()=>{DIV=b.dataset.d;buildTabs();paint();});
}
function scale(a){const lo=0.45,hi=0.75;return Math.max(2,Math.min(100,(a-lo)/(hi-lo)*100));}
function paint(){
const dv=divsOf();
$("#eyebrow").textContent=L==="ko"?"๋‹ต๋ณ€ ๊ฒ€์ฆ ยท ํƒ€์ž…๋“œ ๋””์‹œ์ „ ์•„๋ ˆ๋‚˜":"Answer-Verification ยท Typed-Decision Arena";
$("#h1").innerHTML=L==="ko"?'ํƒ€์ž…๋“œ ๋””์‹œ์ „ <span class="b">๋ถ€๋ฌธ ๋ฆฌ๋”๋ณด๋“œ</span>':'Typed-Decision <span class="b">Division Board</span>';
$("#tag").textContent=t().tag;
// stats
const nLocalMeas=B.entries.filter(e=>e.division==="local"&&e.kind!=="baseline"&&e.kind!=="judge").length;
const survey=(B.field_survey&&B.field_survey.counted)||"40+";
$("#stats").innerHTML=[
["k","2,018",L==="ko"?"์ •๋ณธ ๋ฌธํ•ญ":"ref items"],
["k acc",survey,L==="ko"?"์กฐ์‚ฌ๋œ ๊ณ„์—ด":"families found"],
["k",String(B.candidates.length),L==="ko"?"์ฐธ๊ฐ€ ํ›„๋ณด":"entrants"],
["k","0",L==="ko"?"์ƒ์„ฑ ํ† ํฐ":"gen tokens"],
].map(([c,k,l])=>`<div class="stat ${c.includes('acc')?'acc':''}"><div class="k">${k}</div><div class="l">${l}</div></div>`).join("");
// labels
$("#rankH").textContent=t().rankH;$("#rankAxis").textContent=t().axis;$("#rankSub").textContent=t().rankSub;
$("#thModel").textContent=t().model;$("#thBase").textContent=t().base;$("#thSize").textContent=t().size;
$("#thGen").textContent=t().gen;$("#thAuc").textContent=t().auc;
$("#regH").textContent=t().regH;$("#regSub").textContent=t().regSub;$("#methH").textContent=t().methH;$("#methSub").textContent=t().methSub;
// ranking (division, verifiers only, measured)
const rows=B.entries.filter(e=>e.division===DIV&&e.kind==="verifier"&&typeof e.auc==="number")
.sort((a,b)=>b.auc-a.auc);
const base=B.entries.find(e=>e.kind==="baseline"&&e.name.includes("๊ธธ์ด"));
const bAuc=base?base.auc:0.6223;
const isUs=e=>/ZTC/.test(e.name)||e.org==="VIDRAFT"||e.org==="FINAL-Bench";
$("#rank").innerHTML=rows.map((e,i)=>{
const d=e.auc-bAuc, dc=d>=0?"p":"n", ds=(d>=0?"+":"")+d.toFixed(4);
const gen=e.gen===undefined?"โ€”":(e.gen===0?`<span class="chip zero">0</span>`:val(e.gen));
return `<tr class="${i===0?'top':''} ${isUs(e)?'us':''}">
<td class="rk ${isUs(e)?'m':''}">${i+1}</td>
<td><div class="nm">${e.url?`<a href="${e.url}" target="_blank" rel="noopener">${nm(e.name)}</a>`:nm(e.name)}
${isUs(e)?'<span class="chip us">OURS</span>':''}</div>
<div class="org">${val(e.org)}</div>
<div class="bar"><i style="width:${scale(e.auc).toFixed(1)}%"></i></div></td>
<td class="hide-narrow pill">${val(e.access||e.size)}</td>
<td class="hide-narrow pill">${val(e.size)}</td>
<td class="hide-narrow">${gen}</td>
<td class="r"><div class="auc">${e.auc.toFixed(4)}</div><div class="delta ${dc}">${ds} vs base</div></td>
</tr>`;
}).join("")
+ (base&&DIV==="local"?`<tr class="baserow"><td class="rk">ยท</td>
<td><div class="nm">${nm(base.name)}</div><div class="org">${L==="ko"?"๋‚ด์šฉ์„ ์•ˆ ๋ณด๋Š” ๊ธฐ์ค€์„  (๋‹ต ๊ธธ์ดยท์„œ์‹๋งŒ)":"content-blind baseline (length/format only)"}</div></td>
<td class="hide-narrow pill">โ€”</td><td class="hide-narrow pill">โ€”</td><td class="hide-narrow">โ€”</td>
<td class="r"><div class="auc" style="color:var(--ink2)">${base.auc.toFixed(4)}</div></td></tr>`:"");
if(!rows.length)$("#rank").innerHTML=`<tr><td colspan="6" style="padding:22px;color:var(--ink2)">${L==="ko"?"์ด ๋ถ€๋ฌธ์˜ ์ธก์ • ์™„๋ฃŒ ํ•ญ๋ชฉ์€ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค โ€” ์•„๋ž˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋ณด์„ธ์š”.":"No measured entries in this division yet โ€” see the registry below."}</td></tr>`;
// tie note
if(B.tie&&rows.length>1){const th=B.tie.threshold;const tied=rows.filter(e=>rows[0].auc-e.auc<=th);
$("#tieNote").textContent=tied.length>1?(L==="ko"?`๊ณต๋™ ์„ ๋‘ ${tied.length}์ข…: ์„ ๋‘์™€์˜ ์ฐจ์ด๊ฐ€ ์žก์Œ ํญ(${th.toFixed(4)}) ์•ˆ์ด๋ผ ์ˆœ์œ„๋ฅผ ๋งค๊ธฐ์ง€ ์•Š๋Š”๋‹ค โ€” ${tied.map(e=>e.name).join(" ยท ")}.`:`Co-leaders: ${tied.map(e=>e.name).join(" ยท ")} โ€” within noise (${th.toFixed(4)}).`):"";}
else $("#tieNote").textContent="";
// judges (API division only, off-axis reference)
const jb=$("#judgesBox");
const judges=B.entries.filter(e=>e.kind==="judge").sort((a,b)=>b.auc-a.auc);
if(DIV==="api"&&judges.length){jb.hidden=false;
$("#judgesH").textContent=L==="ko"?"LLM ์‹ฌํŒ (์ฐธ๊ณ  โ€” ์ถ• ๋ฐ–)":"LLM judges (reference โ€” off-axis)";
$("#judgesSub").textContent=L==="ko"?"ํ† ํฐ์„ ์จ์„œ ใ€Œ๋งž์„ ํ™•๋ฅ  0~100ใ€์„ ๋งํ•˜๋Š” ์ƒ์„ฑํ˜• ์‹ฌํŒ. ์ถ•(์ƒ์„ฑ 0)์ด ๋‹ฌ๋ผ ์ˆœ์œ„ ๋ฐ– ์ฐธ๊ณ .":"Generative judges that spend tokens to state a 0โ€“100 probability โ€” off the zero-generation axis.";
$("#jM").textContent=t().model;$("#jC").textContent=L==="ko"?"๋น„์šฉ":"Cost";
$("#judges").innerHTML=judges.map(e=>`<tr><td><div class="nm">${e.url?`<a href="${e.url}" target="_blank" rel="noopener">${nm(e.name)}</a>`:nm(e.name)}</div><div class="org">${val(e.org)}</div></td><td class="hide-narrow pill">${val(e.cost)}</td><td class="r"><div class="auc">${e.auc.toFixed(4)}</div></td></tr>`).join("");
}else jb.hidden=true;
// unseen (held-out answers from a never-used model)
const U=B.unseen;
if(U&&U.rows){$("#unseenSec").hidden=false;
$("#unseenH").textContent=L==="ko"?(U.title||"์ฒ˜์Œ ๋ณด๋Š” ๋‹ต์—์„œ"):"On answers from an unseen model";
$("#unseenN").textContent="n="+U.items;
$("#unseenSub").textContent=L==="ko"?`ํ•™์Šตยท์ฑ„์ ์— ํ•œ ๋ฒˆ๋„ ์•ˆ ์“ด ${U.generator}์˜ ๋‹ต ${U.items}๊ฑด์œผ๋กœ ๋‹ค์‹œ ์žฐ ๊ฐ’ โ€” ์‹ค์ „์— ๋” ๊ฐ€๊น๋‹ค.`:`Re-measured on ${U.items} answers from ${U.generator}, never used in training or scoring.`;
const ur=U.rows.slice().sort((a,b)=>b.auc-a.auc);
const usU=e=>/ZTC/.test(e.name)||e.org==="FINAL-Bench";
$("#unseen").innerHTML=ur.map((e,i)=>`<tr class="${i===0?'top':''} ${usU(e)?'us':''}"><td class="rk ${usU(e)?'m':''}">${e.kind==="baseline"?"ยท":i+1}</td><td><div class="nm">${e.url?`<a href="${e.url}" target="_blank" rel="noopener">${nm(e.name)}</a>`:nm(e.name)}${usU(e)?' <span class="chip us">OURS</span>':''}</div><div class="org">${val(e.org)}</div></td><td class="r"><div class="auc">${e.auc.toFixed(4)}</div></td></tr>`).join("");
const win=(U.ci||[]).find(c=>/JEV/i.test(c.pair)&&/v2/i.test(c.pair));
$("#unseenCi").innerHTML=win?(L==="ko"?`<b>ZTC v2 ๊ฐ€ JEV ๋ฅผ ์ด๊ฒผ๋‹ค</b> โ€” ์ฐจ์ด +${win.diff} ยท ์‹ ๋ขฐ๊ตฌ๊ฐ„ [${win.lo}, ${win.hi}] (0 ์„ ์•ˆ ๋ฌผ์–ด ์œ ์˜). ์•ˆ๋ฐฉ(์œ„)์—์„  ๋ฌด์Šน๋ถ€์ง€๋งŒ ์ฒ˜์Œ ๋ณด๋Š” ๋‹ต์—์„  ์šฐ๋ฆฌ๊ฐ€ ์•ž์„ ๋‹ค.`:`<b>ZTC v2 beats JEV</b> โ€” ฮ” +${win.diff}, CI [${win.lo}, ${win.hi}] (excludes 0). A tie on home turf, a win on unseen answers.`):"";
}else $("#unseenSec").hidden=true;
// registry
const cs=B.candidates.filter(c=>c.division===DIV);
$("#regCount").textContent=`(${cs.length})`;
$("#regBanner").innerHTML=L==="ko"
? `์กฐ์‚ฌ ${B.field_survey?B.field_survey.date:"2026-09-25"} ยท HF ์‹ค์‚ฌ์—์„œ <b>${(B.field_survey&&B.field_survey.counted)||"40+"} ๋…๋ฆฝ ๊ณ„์—ด</b>์ด ํ™•์ธ๋๋‹ค. ์•„๋ž˜๋Š” ๋Œ€ํ‘œ repo๋งŒ(ํฌํŠธยท์–‘์žํ™”ยทRLํ™˜๊ฒฝยท์ˆœ์ˆ˜ ๋ผ์šฐํ„ฐ ์ œ์™ธ). <b>์ ์ˆ˜๋Š” ์ •๋ณธ ์‹œํ—˜์ง€ ์‹ค์ธก ์ „๊นŒ์ง€ ๋น„์›Œ ๋‘”๋‹ค</b> โ€” ๋‚จ์˜ ์ž๊ฐ€๋ณด๊ณ ๋ฅผ ์šฐ๋ฆฌ ์ถ•์— ์˜ฎ๊ฒจ ์ ์ง€ ์•Š๋Š”๋‹ค.`
: `Survey ${B.field_survey?B.field_survey.date:"2026-09-25"}: HF shows <b>${(B.field_survey&&B.field_survey.counted)||"40+"} distinct families</b>. Only representative repos here (ports/quant/RL-env/pure routers excluded). <b>Scores stay blank until measured on the reference set</b> โ€” we never copy a maker's self-report onto our axis.`;
$("#registry").innerHTML=cs.map(c=>`<div class="card">
<div class="top"><div><div class="cn">${c.url?`<a href="${c.url}" target="_blank" rel="noopener">${nm(c.name)}</a>`:nm(c.name)}</div>
<div class="co">${val(c.org)}</div></div>
<span class="likes">โ™ฅ ${val(c.likes)}</span></div>
<div class="meta"><span class="m2">${val(c.size)}</span><span class="m2">${val(c.base)}</span><span class="m2">${val(c.license)}</span>${c.downloads&&c.downloads!=="โ€”"?`<span class="m2">โ†“ ${c.downloads}</span>`:""}</div>
<div class="cnote">${val(c.note)}</div>
<div class="foot"><span class="waiting">${t().waiting}</span><span class="pill">${val(c.created)}</span></div>
</div>`).join("");
// method
const M=L==="ko"?[
["์ƒ์„ฑ ํ† ํฐ 0๊ฐœ","๋‹ต์„ ์ƒˆ๋กœ ์“ฐ์ง€ ์•Š๊ณ  ใ€Œ๋งž์„ ํ™•๋ฅ ใ€๋งŒ ๋‚ธ๋‹ค. ํ† ํฐ์„ ์“ฐ๋Š” LLM ์‹ฌํŒ์€ ์ˆœ์œ„ ๋ฐ– ์ฐธ๊ณ ์นธ์œผ๋กœ ๋‚ด๋ฆฐ๋‹ค โ€” ์ถ•์ด ๋‹ค๋ฅด๋ฉด ํŽธ์˜๊ฐ€ ๋œ๋‹ค."],
["๊ธฐ์ค€์„  ๋™๋ด‰","๋‹ต ๊ธธ์ดยท์„œ์‹ 10์ข…๋งŒ ์“ฐ๋Š” ๊ธฐ์ค€์„ (0.6223)์„ ๊ฐ™์€ ํŒ์— ๋‚˜๋ž€ํžˆ ๋‘”๋‹ค. ์ด๋ณด๋‹ค ๋ชปํ•˜๋ฉด ๋‚ด์šฉ์„ ๋ชป ๋ณธ ๊ฒƒ์ด๋‹ค."],
["๋ถ€๋ฌธ ๋ถ„๋ฆฌ","์˜คํ”ˆ ์›จ์ดํŠธ(๋กœ์ปฌ)์™€ ์ƒ์šฉ API๋ฅผ ์„ž์ง€ ์•Š๋Š”๋‹ค โ€” ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€๋Šฅ ์—ฌ๋ถ€๊ฐ€ ์‹ค๋ฌด ์„ ํƒ์„ ๊ฐ€๋ฅธ๋‹ค."],
["๋‚จ์˜ ์ ์ˆ˜๋Š” ๋‚จ์˜ ์ฝ”๋“œ๋กœ","๊ฒฝ์Ÿ ๋ชจ๋ธ์€ ์ œ์ž‘์ž ๊ตฌํ˜„ยท๊ณต๊ฐœ ํ—ค๋“œ ๊ทธ๋Œ€๋กœ ์žฐ๋‹ค. ์šฐ๋ฆฌ ์žฌํ˜„ ์ฝ”๋“œ๋กœ ๊นŽ์ง€ ์•Š๋Š”๋‹ค."],
["๋ณด์ •(ECE)๋„ ํ•จ๊ป˜","ใ€Œ0.8์ด๋ผ ๋งํ•˜๋ฉด 80%๊ฐ€ ๋งž๋Š”๊ฐ€ใ€. ๊ฐ™์€ LODO ๋ณด์ •์„ ์ „์›์— ๊ฑธ์–ด ์‹ ํ˜ธ์˜ ๋ณด์ • ๊ฐ€๋Šฅ์„ฑ์„ ๋ณธ๋‹ค."],
["์‹œํ—˜์ง€ ๋น„๊ณต๊ฐœยท์ฑ„์  ๊ณต๊ฐœ","๋ฌธํ•ญ ์›๋ฌธ์€ ๋ผ์ด์„ ์Šค์ƒ ๋น„๊ณต๊ฐœ, ์ ์ˆ˜ยท๋ผ๋ฒจยท์ฑ„์  ์ฝ”๋“œ๋Š” ์ „๋ถ€ ๊ณต๊ฐœํ•œ๋‹ค."]
]:[
["Zero generation","Outputs a probability, writes no new answer. Token-spending LLM judges drop to an off-ranking reference."],
["Baseline included","A content-blind baseline (length/format, 0.6223) sits on the same board. Below it means the model didn't read the content."],
["Divisions split","Open weights (local) never mixed with commercial API โ€” self-hostability decides real-world choice."],
["Their score, their code","Competitors are run on the maker's own implementation / public head, never marked down by our reimplementation."],
["Calibration too","Does \"0.8\" mean 80%? Same LODO calibration on everyone, to see each signal's calibratability."],
["Set private, scoring open","Item text stays private per license; scores, labels and scoring code are fully open."]
];
$("#method").innerHTML=M.map(([h,p])=>`<div class="mcard"><h3>${h}</h3><p>${p}</p></div>`).join("");
$("#foot").innerHTML=(L==="ko"?"๋ฒ„์ „ ":"Version ")+`<span class="mono">${val(B.version)}</span> ยท ${L==="ko"?"์šด์˜ MAYAFREE ยท ์ถ•: ์‚ฌ์‹ค ๊ฒ€์ฆ(๊ทผ๊ฑฐ ๋ฌธ์„œ ์—†์Œ)":"Operated by MAYAFREE ยท axis: factual verification (no source doc)"}`;
document.querySelectorAll('#lang button').forEach(b=>b.setAttribute('aria-pressed',b.dataset.l===L));
}
document.querySelectorAll('#lang button').forEach(b=>b.onclick=()=>{L=b.dataset.l;buildTabs();paint();});
(function(){const r=document.documentElement;let cur=null;
$("#thm").onclick=()=>{cur=(cur==="dark")?"light":(cur==="light"?null:"dark");
if(cur)r.setAttribute("data-theme",cur);else r.removeAttribute("data-theme");};})();
load();
</script>