Invictus-AI/self-evolving-nn
03
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.0">6<title>📈 Theoretical Model Growth — Self-Evolving Neural Network</title>7<style>8 :root { --bg:#0d1117; --surface:#161b22; --border:#30363d; --text:#e6edf3;9 --dim:#8b949e; --accent:#58a6ff; --green:#3fb950; --red:#f85149; --yellow:#d29922; }10 * { margin:0; padding:0; box-sizing:border-box; }11 body { background:var(--bg); color:var(--text); font-family:'SF Mono','Fira Code',monospace;12 padding:24px; min-height:100vh; }13 .wrap { max-width:1060px; margin:0 auto; }14 h1 { color:var(--green); font-size:1.5em; margin-bottom:6px; }15 .sub { color:var(--dim); font-size:.85em; margin-bottom:20px; }16 .card { background:var(--surface); border:1px solid var(--border); border-radius:10px;17 padding:20px; margin-bottom:20px; }18 .svgbox { width:100%; overflow-x:auto; }19 .svgbox svg { width:100%; height:auto; min-width:760px; }20 table { width:100%; border-collapse:collapse; font-size:.85em; }21 th, td { padding:7px 12px; text-align:right; border-bottom:1px solid var(--border); }22 th { color:var(--accent); }23 th:first-child, td:first-child { text-align:center; }24 td:nth-child(2) { color:var(--green); font-weight:bold; }25 td:nth-child(3) { color:var(--dim); }26 .capnote { margin-top:14px; color:var(--dim); font-size:.8em; line-height:1.7; }27 .capnote b { color:var(--red); }28 .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }29 .stat { background:var(--bg); border:1px solid var(--border); border-radius:8px; padding:14px; }30 .stat .k { color:var(--dim); font-size:.75em; text-transform:uppercase; letter-spacing:1px; }31 .stat .v { font-size:1.35em; font-weight:bold; margin-top:6px; }32 .stat .v.green { color:var(--green); } .stat .v.red { color:var(--red); }33 @media (max-width:700px) { .grid2 { grid-template-columns:1fr; } }34</style>35</head>36<body>37<div class="wrap">38 <h1>📈 How far can the model grow? (theoretical)</h1>39 <div class="sub">Gated architecture · input 10 features · top-3 gate on layer 1 · remaining 7 join every layer after · log-scaled parameter axis · counts measured from real model builds</div>40 41 <div class="card">42 <div class="svgbox"><svg xmlns="http://www.w3.org/2000/svg" width="1000" height="640" viewBox="0 0 1000 640">43<line x1="90.0" y1="550.0" x2="970.0" y2="550.0" stroke="#21262d" stroke-width="1"/>44<text x="78.0" y="554.0" fill="#8b949e" font-size="12" font-family="monospace" font-weight="normal" text-anchor="end">100</text>45<line x1="90.0" y1="430.0" x2="970.0" y2="430.0" stroke="#21262d" stroke-width="1"/>46<text x="78.0" y="434.0" fill="#8b949e" font-size="12" font-family="monospace" font-weight="normal" text-anchor="end">1K</text>47<line x1="90.0" y1="310.0" x2="970.0" y2="310.0" stroke="#21262d" stroke-width="1"/>48<text x="78.0" y="314.0" fill="#8b949e" font-size="12" font-family="monospace" font-weight="normal" text-anchor="end">10K</text>49<line x1="90.0" y1="190.0" x2="970.0" y2="190.0" stroke="#21262d" stroke-width="1"/>50<text x="78.0" y="194.0" fill="#8b949e" font-size="12" font-family="monospace" font-weight="normal" text-anchor="end">100K</text>51<line x1="90.0" y1="70.0" x2="970.0" y2="70.0" stroke="#21262d" stroke-width="1"/>52<text x="78.0" y="74.0" fill="#8b949e" font-size="12" font-family="monospace" font-weight="normal" text-anchor="end">1M</text>53<line x1="90.0" y1="550.0" x2="90.0" y2="556.0" stroke="#8b949e" stroke-width="1"/>54<text x="90.0" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">1</text>55<line x1="187.8" y1="550.0" x2="187.8" y2="556.0" stroke="#8b949e" stroke-width="1"/>56<text x="187.8" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">2</text>57<line x1="285.6" y1="550.0" x2="285.6" y2="556.0" stroke="#8b949e" stroke-width="1"/>58<text x="285.6" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">3</text>59<line x1="383.3" y1="550.0" x2="383.3" y2="556.0" stroke="#8b949e" stroke-width="1"/>60<text x="383.3" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">4</text>61<line x1="481.1" y1="550.0" x2="481.1" y2="556.0" stroke="#8b949e" stroke-width="1"/>62<text x="481.1" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">5</text>63<line x1="578.9" y1="550.0" x2="578.9" y2="556.0" stroke="#f85149" stroke-width="2"/>64<text x="578.9" y="572.0" fill="#f85149" font-size="14" font-family="monospace" font-weight="bold" text-anchor="middle">6</text>65<line x1="676.7" y1="550.0" x2="676.7" y2="556.0" stroke="#8b949e" stroke-width="1"/>66<text x="676.7" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">7</text>67<line x1="774.4" y1="550.0" x2="774.4" y2="556.0" stroke="#8b949e" stroke-width="1"/>68<text x="774.4" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">8</text>69<line x1="872.2" y1="550.0" x2="872.2" y2="556.0" stroke="#8b949e" stroke-width="1"/>70<text x="872.2" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">9</text>71<line x1="970.0" y1="550.0" x2="970.0" y2="556.0" stroke="#8b949e" stroke-width="1"/>72<text x="970.0" y="572.0" fill="#e6edf3" font-size="12" font-family="monospace" font-weight="normal" text-anchor="middle">10</text>73<line x1="578.9" y1="70.0" x2="578.9" y2="550.0" stroke="#f85149" stroke-width="1.5" stroke-dasharray="6 5" opacity="0.55"/>74<polyline points="90.0,386.3 187.8,207.9 285.6,172.6 383.3,151.8 481.1,137.0 578.9,125.4" fill="none" stroke="#3fb950" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" opacity="1.0"/>75<polyline points="90.0,550.0 187.8,469.1 285.6,438.1 383.3,418.8 481.1,404.7 578.9,393.7" fill="none" stroke="#8b949e" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="4 4" opacity="1.0"/>76<polyline points="676.7,116.0 774.4,108.0 872.2,101.0 970.0,94.9" fill="none" stroke="#58a6ff" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="7 5" opacity="0.8"/>77<circle cx="90.0" cy="386.3" r="5" fill="#3fb950" stroke="#0d1117" stroke-width="2"/>78<circle cx="187.8" cy="207.9" r="5" fill="#3fb950" stroke="#0d1117" stroke-width="2"/>79<circle cx="285.6" cy="172.6" r="5" fill="#3fb950" stroke="#0d1117" stroke-width="2"/>80<circle cx="383.3" cy="151.8" r="5" fill="#3fb950" stroke="#0d1117" stroke-width="2"/>81<circle cx="481.1" cy="137.0" r="5" fill="#3fb950" stroke="#0d1117" stroke-width="2"/>82<circle cx="578.9" cy="125.4" r="5" fill="#3fb950" stroke="#0d1117" stroke-width="2"/>83<circle cx="676.7" cy="116.0" r="3.5" fill="#58a6ff" stroke="#0d1117" stroke-width="1.5"/>84<circle cx="774.4" cy="108.0" r="3.5" fill="#58a6ff" stroke="#0d1117" stroke-width="1.5"/>85<circle cx="872.2" cy="101.0" r="3.5" fill="#58a6ff" stroke="#0d1117" stroke-width="1.5"/>86<circle cx="970.0" cy="94.9" r="3.5" fill="#58a6ff" stroke="#0d1117" stroke-width="1.5"/>87<circle cx="187.8" cy="355.0" r="7" fill="#d29922" stroke="#0d1117" stroke-width="2.5"/>88<text x="201.8" y="347.0" fill="#d29922" font-size="13" font-family="monospace" font-weight="bold" text-anchor="start">current best: 4,216 params (2 layers)</text>89<circle cx="578.9" cy="125.4" r="8" fill="#f85149" stroke="#0d1117" stroke-width="3"/>90<text x="564.9" y="109.4" fill="#f85149" font-size="13" font-family="monospace" font-weight="bold" text-anchor="end">theoretical ceiling: 345,352 params</text>91<text x="530.0" y="610.0" fill="#8b949e" font-size="13" font-family="monospace" font-weight="normal" text-anchor="middle">layers in genome (current cap: 6 — dashed line beyond is extrapolated)</text>92<text x="18.0" y="310.0" fill="#8b949e" font-size="13" font-family="monospace" font-weight="normal" text-anchor="middle">parameters (log scale)</text>93<rect x="700" y="76" width="256" height="86" rx="6" fill="#161b22" stroke="#30363d"/>94<line x1="712" y1="92" x2="740" y2="92" stroke="#3fb950" stroke-width="3"/>95<text x="748.0" y="96.0" fill="#e6edf3" font-size="11" font-family="monospace" font-weight="normal" text-anchor="start">MAX growth: 256 units/lyr + BN</text>96<line x1="712" y1="116" x2="740" y2="116" stroke="#8b949e" stroke-width="2.5" stroke-dasharray="5 4"/>97<text x="748.0" y="120.0" fill="#e6edf3" font-size="11" font-family="monospace" font-weight="normal" text-anchor="start">MIN growth: 16 units/lyr, no BN</text>98<line x1="712" y1="140" x2="740" y2="140" stroke="#58a6ff" stroke-width="2.5" stroke-dasharray="5 4"/>99<text x="748.0" y="144.0" fill="#e6edf3" font-size="11" font-family="monospace" font-weight="normal" text-anchor="start">extrapolated beyond cap</text>100</svg></div>101 </div>102 103 <div class="card">104 <table>105 <thead><tr><th>Layers</th><th>MAX params (256u + BN)</th><th>MIN params (16u, no BN)</th><th>Note</th></tr></thead>106 <tbody><tr><td>1</td><td>2,312</td><td>88</td><td></td></tr><tr><td>2</td><td>70,920</td><td>472</td><td></td></tr><tr><td>3</td><td>139,528</td><td>856</td><td></td></tr><tr><td>4</td><td>208,136</td><td>1,240</td><td></td></tr><tr><td>5</td><td>276,744</td><td>1,624</td><td></td></tr><tr><td>6</td><td>345,352</td><td>2,008</td><td>current cap</td></tr><tr style='opacity:.55'><td>7*</td><td>413,960</td><td>—</td><td>if cap lifted</td></tr><tr style='opacity:.55'><td>8*</td><td>482,568</td><td>—</td><td>if cap lifted</td></tr><tr style='opacity:.55'><td>9*</td><td>551,176</td><td>—</td><td>if cap lifted</td></tr><tr style='opacity:.55'><td>10*</td><td>619,784</td><td>—</td><td>if cap lifted</td></tr></tbody>107 </table>108 <div class="capnote">109 <b>* rows 7–10 are extrapolated:</b> the genome pool currently caps architectures at110 <b>6 layers × 256 units</b> (mutation can only add layers up to that limit). If that cap were111 lifted, the ceiling keeps climbing linearly (~68,608 params per extra 256-unit layer).112 Beyond the data: on <b>CPU</b> (this machine) a ~1M-param model takes ~48s per 10-epoch eval vs113 <1s for the current best — so the cap is a <i>practical</i> guardrail, not a hard limit.114 </div>115 </div>116 117 <div class="grid2">118 <div class="stat"><div class="k">Current best (saved)</div><div class="v green">4,216 params · 2 layers</div></div>119 <div class="stat"><div class="k">Theoretical ceiling @ current cap</div><div class="v red">345,352 params · 6 layers</div></div>120 </div>121</div>122</body>123</html>