-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodejepa.html
More file actions
63 lines (63 loc) · 12.9 KB
/
Copy pathcodejepa.html
File metadata and controls
63 lines (63 loc) · 12.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Code-JEPA model map</title>
<style>
:root{--bg:#09101f;--panel:#111a34;--text:#edf3ff;--muted:#91a2ca;--line:#43547f;--green:#48dc9b;--blue:#72aaff;--purple:#b68cff;--orange:#ffba63;--red:#ff806d}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#18264e,var(--bg));color:var(--text);font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{padding:22px 26px 8px}h1{margin:0 0 6px;font-size:28px}.sub{color:var(--muted);max-width:1100px}.wrap{padding:0 22px 30px}.summary,.map{border:1px solid #2a3865;background:rgba(12,20,44,.82);border-radius:16px;box-shadow:0 18px 60px #0006}.summary{padding:13px 15px;margin:14px 0 18px;max-width:1480px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid #91a2ca28;vertical-align:top}th{color:#cad7ff}tr:last-child td{border:0}.warning{color:#ffd166;margin-top:8px}.map{position:relative;width:1480px;height:1030px;overflow:hidden}.edges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.node{position:absolute;width:220px;min-height:72px;padding:10px 12px;border:1px solid #4b5d91;border-radius:13px;background:#172244;box-shadow:0 9px 26px #0006;transition:.13s;cursor:default}.node:hover{transform:translateY(-2px);border-color:#b5c8ff;box-shadow:0 12px 34px #397aff44}.label{font-size:15px;font-weight:750}.run{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.badge{display:inline-block;padding:2px 7px;border-radius:20px;background:#2b3866;color:#dce6ff;font-size:10px;margin-top:6px}.control{border-color:#5686dc;background:#142848}.jepa{border-color:var(--purple);background:#241a4d}.winner{border-color:var(--green);background:#103b35}.latest{border-color:var(--blue);background:#133052}.post{border-color:var(--orange);background:#3b2a13}.diag{border-color:var(--red);background:#3b1d1b}.bench{border-color:#d5ddf5;background:#252b45}.data{background:#152131}.legend{position:absolute;bottom:16px;left:20px;color:var(--muted);font-size:12px;max-width:1000px}#tip{display:none;position:fixed;z-index:9;min-width:430px;max-width:760px;max-height:82vh;overflow:auto;padding:14px;border:1px solid #6074ac;border-radius:14px;background:#0c142c;box-shadow:0 25px 85px #000b}#tip h3{font-size:18px;margin:0 0 4px}.meta{font-size:12px;color:var(--muted)}.note{margin:8px 0 10px;color:#dce7ff}#tip table{font-size:12px}#tip th,#tip td{padding:5px 6px}.best{color:var(--green);font-weight:800}.delta{color:#a8b7df}.hint{color:#b9c8ed}
</style>
</head>
<body>
<header><h1>Code-JEPA objective and model map</h1><div class="sub">Hover a model for every ablation table in which it was tested. Click to pin. Scores combine the repository experiment reports and S3 evaluation artifacts available on 2026-07-09. Times are UTC; Sofia is +3h.</div></header>
<div class="wrap">
<section class="summary"><table><thead><tr><th>Benchmark</th><th>Current best row</th><th>Score</th></tr></thead><tbody id="leaders"></tbody></table><div class="warning">Code-JEPA's clear current win is behavior sensitivity. Classic retrieval is led by the UniXcoder/GraphCodeBERT controls; pure LeJEPA 178580 is the best Code-JEPA-family frozen POJ model.</div></section>
<section class="map" id="map"><svg class="edges" id="edges" viewBox="0 0 1480 1030"></svg><div class="legend"><b>Flow:</b> shared data → training-objective branches → benchmark families. Green is the behavior winner; blue is the newest LeJEPA line; orange/red marks post-training or diagnostic branches. Connections indicate lineage or relevant evaluation, not causal proof.</div></section>
</div><div id="tip"></div>
<script>
const B={
behavior:{label:'Behavior sensitivity',metric:'mutation AUROC',note:'Hard-negative mutation vs behavior-preserving transform.',rows:[
['Code-JEPA + MLM z','mlm',91.53,'separation 91.90'],['Code-JEPA + MLM h','mlm',91.12,'separation 91.56'],['Latent-JEPA z','latent',74.33,'separation 74.52'],['Latent-JEPA h','latent',73.17,'separation 73.25'],['No-MLM Code-JEPA z','nomlm',69.20,'separation 68.61'],['No-MLM Code-JEPA h','nomlm',68.27,'separation 67.83'],['Two-head semantic','heads',67.23,'separation 67.09'],['Phase-3 LeJEPA behavior z','behavior',66.06,'separation 65.53'],['Two-head lexical','heads',64.46,'separation 64.31'],['Phase-3 LeJEPA behavior h','behavior',63.19,'separation 62.52'],['GraphCodeBERT-lite h','graph',26.20,'separation 22.35'],['UniXcoder-lite h','unix',26.20,'separation 22.36'],['Pure LeJEPA h','pure',20.25,'separation 16.95']]},
coir:{label:'CoIR CodeSearchNet-CCR',metric:'average NDCG@10',note:'Frozen six-language code-to-code retrieval.',rows:[
['UniXcoder-lite h','unix',45.38,'MAP@10 41.15'],['GraphCodeBERT-lite h','graph',28.51,'MAP@10 25.57'],['Code-JEPA + MLM h','mlm',7.93,'MAP@10 6.77'],['Pure LeJEPA h','pure',4.87,'MAP@10 4.21'],['Phase-3 behavior h','behavior',3.51,'MAP@10 3.02'],['Latent-JEPA h','latent',1.91,'MAP@10 1.57'],['Code-JEPA + MLM z','mlm',1.39,'MAP@10 1.06'],['No-MLM Code-JEPA h','nomlm',0.83,'MAP@10 0.67'],['Two-head lexical','heads',0.66,'MAP@10 0.51']]},
poj:{label:'POJ-104 frozen',metric:'test MAP@R',note:'Frozen same-problem accepted-solution retrieval.',rows:[
['GraphCodeBERT-lite h','graph',19.43,'valid 22.67'],['UniXcoder-lite h','unix',19.18,'valid 22.61'],['Pure LeJEPA 178580 h','pure',14.98,'valid 12.51'],['LeJEPA sig0p05 h','sig05',9.77,'valid 6.94'],['Phase-3 behavior h','behavior',7.24,'valid 7.59'],['Latent-JEPA h','latent',6.46,'valid 10.91'],['Code-JEPA + MLM h','mlm',6.41,'valid 9.10'],['Two-head lexical','heads',5.80,'valid 9.14'],['No-MLM Code-JEPA h','nomlm',5.30,'valid 9.59'],['Two-head semantic','heads',3.88,'valid 7.39'],['LeJEPA sig1p0 h','sig1',0.24,'valid 0.44']]},
bcb:{label:'BigCloneBench frozen',metric:'ROC-AUC',note:'Frozen cosine clone detection; rows come from matching frozen protocols.',rows:[
['Latent-JEPA h','latent',62.36,'best F1 28.26'],['UniXcoder-lite h','unix',61.52,'best F1 27.45'],['GraphCodeBERT-lite h','graph',59.36,'best F1 26.14'],['Code-JEPA + MLM h','mlm',57.19,'best F1 25.41'],['Phase-3 behavior h','behavior',56.16,'best F1 24.49'],['Pure LeJEPA h','pure',55.93,'best F1 24.57'],['LeJEPA sig0p05 h','sig05',53.10,'best F1 24.07'],['Two-head h','heads',52.29,'best F1 24.06'],['LeJEPA sig1p0 h','sig1',50.42,'best F1 24.07']]},
pojft:{label:'POJ-104 fine-tuned',metric:'test MAP@R',note:'Task-specific fine-tuning, not frozen embedding evaluation.',rows:[
['GraphCodeBERT-lite FT','graph',47.85,'valid 46.60'],['UniXcoder-lite FT','unix',46.86,'valid 46.83'],['Code-JEPA + MLM FT','mlm',30.98,'valid 35.28']]},
bcbft:{label:'BigCloneBench fine-tuned',metric:'ROC-AUC',note:'Task-specific fine-tuning; F1 winner differs from ROC-AUC winner.',rows:[
['UniXcoder-lite FT','unix',98.53,'F1 90.01'],['Code-JEPA + MLM FT','mlm',98.34,'F1 89.76'],['GraphCodeBERT-lite FT','graph',97.92,'F1 91.01']]}
};
const N={
data:{label:'CodeSearchNet bpe16k triplets',cls:'data',x:45,y:330,run:'tokenized/codesearchnet/bpe16k',note:'Six-language anchor / behavior-preserving transform / behavior-changing mutation cache.'},
unix:{label:'UniXcoder-lite control',cls:'control',x:315,y:70,run:'pretrain-unixcoder-views-177962',time:'2026-07-03 09:22–11:34',note:'Current CoIR winner and near-top POJ/BCB control.'},
graph:{label:'GraphCodeBERT-lite control',cls:'control',x:315,y:185,run:'pretrain-graphcodebert-views-177963',time:'2026-07-03 11:36–13:49',note:'Current frozen and fine-tuned POJ winner.'},
nomlm:{label:'No-MLM Siamese Code-JEPA',cls:'jepa',x:315,y:330,run:'pretrain-jax-siamese-177664',time:'2026-07-01 18:19–2026-07-02 00:16',note:'Transform positives + hard negatives + in-batch/SIGReg; no dense token objective.'},
mlm:{label:'Code-JEPA + MLM',cls:'winner',x:590,y:330,run:'pretrain-jax-mlm-177849',time:'2026-07-02 11:08–23:02',note:'Behavior-sensitivity winner. Strong result, although token reconstruction is now off-thesis.'},
latent:{label:'Latent-JEPA hybrid',cls:'jepa',x:590,y:470,run:'pretrain-latent-jepa-178214',time:'2026-07-05 00:50–17:22',note:'Moderate behavior and best recorded frozen BCB; pooled h collapse was diagnosed.'},
heads:{label:'Two-head posttrain',cls:'post',x:590,y:610,run:'posttrain-two-heads-178233',time:'2026-07-05 07:01–07:45',note:'Frozen-base semantic and lexical heads; semantic head did not improve POJ.'},
pure:{label:'Pure LeJEPA code',cls:'latest',x:590,y:750,run:'pretrain-lejepa-code-178580',time:'2026-07-06 11:02–2026-07-07 03:10',note:'Best Code-JEPA-family frozen POJ row; weak behavior sensitivity.'},
behavior:{label:'Phase-3 LeJEPA + behavior',cls:'latest',x:870,y:750,run:'pretrain-lejepa-behavior-178784',time:'2026-07-07 08:34–16:24; eval 22:06',note:'Adds behavior terms. Improves behavior versus pure LeJEPA but hurts POJ and CoIR.'},
sig1:{label:'LeJEPA sig1p0 rerun',cls:'diag',x:590,y:890,run:'lejepa-code-sig1p0',time:'2026-07-08 03:26–07:53',note:'High-SIGReg diagnostic; frozen POJ collapsed near zero.'},
sig05:{label:'LeJEPA sig0p05 rerun',cls:'diag',x:870,y:890,run:'lejepa-code-sig0p05',time:'2026-07-08 16:42–2026-07-09 00:32',note:'Incomplete epoch; mediocre POJ and BCB.'},
behaviorBench:{label:'Behavior hard negatives',cls:'bench',x:1215,y:160,bench:'behavior'},
coirBench:{label:'CoIR retrieval',cls:'bench',x:1215,y:300,bench:'coir'},
pojBench:{label:'POJ frozen retrieval',cls:'bench',x:1215,y:440,bench:'poj'},
bcbBench:{label:'BCB frozen clone',cls:'bench',x:1215,y:580,bench:'bcb'},
ftBench:{label:'Fine-tuned task evals',cls:'bench',x:1215,y:730,bench:'pojft'}
};
const E=[['data','unix'],['data','graph'],['data','nomlm'],['nomlm','mlm'],['nomlm','latent'],['nomlm','heads'],['latent','pure'],['pure','behavior'],['pure','sig1'],['pure','sig05'],['unix','coirBench'],['graph','pojBench'],['graph','ftBench'],['mlm','behaviorBench'],['mlm','coirBench'],['mlm','ftBench'],['latent','bcbBench'],['pure','pojBench'],['behavior','behaviorBench'],['behavior','pojBench']];
for(const b of Object.values(B)) b.rows.sort((a,c)=>c[2]-a[2]);
const owners={};for(const [bid,b] of Object.entries(B))b.rows.forEach((r,i)=>(owners[r[1]]??=[]).push({bid,row:r,rank:i+1,best:b.rows[0]}));
const leaders=document.getElementById('leaders');for(const b of Object.values(B)){const r=b.rows[0];leaders.insertAdjacentHTML('beforeend',`<tr><td>${b.label}</td><td><b>${r[0]}</b></td><td>${r[2].toFixed(2)}% ${b.metric} · ${r[3]}</td></tr>`)}
const map=document.getElementById('map'),svg=document.getElementById('edges'),tip=document.getElementById('tip');
for(const [id,n] of Object.entries(N))map.insertAdjacentHTML('beforeend',`<div class="node ${n.cls}" data-id="${id}" style="left:${n.x}px;top:${n.y}px"><div class="label">${n.label}</div><div class="run">${n.run||n.bench}</div><span class="badge">${n.cls==='bench'?'benchmark':n.cls}</span></div>`);
for(const [a,b] of E){const A=N[a],C=N[b],x1=A.x+220,y1=A.y+36,x2=C.x,y2=C.y+36,m=(x1+x2)/2,p=document.createElementNS('http://www.w3.org/2000/svg','path');p.setAttribute('d',`M${x1} ${y1} C${m} ${y1},${m} ${y2},${x2} ${y2}`);p.setAttribute('fill','none');p.setAttribute('stroke','#465a89');p.setAttribute('stroke-width','2');p.setAttribute('opacity','.72');svg.appendChild(p)}
function benchmark(id){const b=B[id];return `<h3>${b.label}</h3><div class="meta">${b.metric} · ${b.note}</div><table><thead><tr><th>#</th><th>Model row</th><th>Score</th><th>Extra</th></tr></thead><tbody>${b.rows.map((r,i)=>`<tr><td>${i+1}</td><td>${r[0]}</td><td class="${i?'':'best'}">${r[2].toFixed(2)}%</td><td>${r[3]}</td></tr>`).join('')}</tbody></table>`}
function model(id){const n=N[id],rs=owners[id]||[];if(n.bench)return benchmark(n.bench);return `<h3>${n.label}</h3><div class="meta">${n.run||''}${n.time?' · '+n.time+' UTC':''}</div><div class="note">${n.note||''}</div>${rs.length?`<table><thead><tr><th>Benchmark</th><th>Row</th><th>Score</th><th>Rank</th><th>vs best</th></tr></thead><tbody>${rs.map(x=>{const b=B[x.bid],r=x.row,d=r[2]-x.best[2];return `<tr><td>${b.label}</td><td>${r[0]}</td><td class="${x.rank===1?'best':''}">${r[2].toFixed(2)}%</td><td>${x.rank}/${b.rows.length}</td><td>${x.best[0]} <span class="delta">(${d.toFixed(2)} pts)</span></td></tr>`}).join('')}</tbody></table>`:'<span class="hint">No benchmark row recorded.</span>'}`}
let pinned=false;function place(e){tip.style.display='block';let x=e.clientX+16,y=e.clientY+16;const r=tip.getBoundingClientRect();if(x+r.width>innerWidth-8)x=e.clientX-r.width-16;if(y+r.height>innerHeight-8)y=Math.max(8,innerHeight-r.height-8);tip.style.left=x+'px';tip.style.top=y+'px'}
document.querySelectorAll('.node').forEach(el=>{el.onmouseenter=e=>{if(!pinned){tip.innerHTML=model(el.dataset.id);place(e)}};el.onmousemove=e=>{if(!pinned)place(e)};el.onmouseleave=()=>{if(!pinned)tip.style.display='none'};el.onclick=e=>{pinned=!pinned;tip.innerHTML=model(el.dataset.id);place(e);e.stopPropagation()}});document.body.onclick=()=>{if(pinned){pinned=false;tip.style.display='none'}};
</script>
</body></html>