Decision-1.0-Nox-4B / assets /architecture.svg
Xunzhuo's picture
Release measured Decision 1.0 decoder
43d6004 verified
|
Raw
History Blame Contribute Delete
14.7 kB
<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="1810" viewBox="0 0 1500 1810" role="img"><title>Decision decoder family — actual causal backbone and candidate readout</title><desc>One shared architecture, two independently trained Qwen3.5 text checkpoints. Numerical candidate readout, with no generated explanation tokens.</desc>
<defs><marker id="arrow" markerWidth="12" markerHeight="10" refX="11" refY="5" orient="auto" markerUnits="userSpaceOnUse"><path d="M0 0 L12 5 L0 10 L3 5 Z" fill="#202C36"/></marker></defs>
<style>text{font-family:Arial,Helvetica,sans-serif;fill:#202C36;font-weight:400}.math{font-family:Georgia,'Times New Roman',serif;font-style:italic}.serif{font-family:Georgia,'Times New Roman',serif}</style>
<text x="355" y="52.0" font-size="31" text-anchor="middle" class="serif">(a) Causal decision backbone</text>
<path d="M112,75 L635,75" fill="none" stroke="#A36A47" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
<text x="355" y="110.0" font-size="27" text-anchor="middle" class="">K probabilities · no token generation</text>
<g data-box="110.0 155 490 62">
<rect x="110.0" y="155" width="490" height="62" rx="7" fill="#DFE9DE" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="195.18" font-size="27" text-anchor="middle" class="">Softmax over valid candidates</text>
</g>
<path d="M355,154 L355,125" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="145.0 265 420 82">
<rect x="145.0" y="265" width="420" height="82" rx="7" fill="#E5E0EA" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="299.385" font-size="27" text-anchor="middle" class="">Shared candidate scorer</text>
<text x="355" y="330.97499999999997" font-size="27" text-anchor="middle" class="">expanded in (b)</text>
</g>
<path d="M355,264 L355,218" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="120.0 405 470 90">
<rect x="120.0" y="405" width="470" height="90" rx="7" fill="#EBEEE8" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="443.385" font-size="27" text-anchor="middle" class="">Gather K candidate endpoints</text>
<text x="355" y="474.97499999999997" font-size="27" text-anchor="middle" class="">and the final query token</text>
</g>
<path d="M355,404 L355,348" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<text x="355" y="550.0" font-size="30" text-anchor="middle" class="math">H ∈ Rᴸˣᵈ</text>
<path d="M355,526 L355,496" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="180.0 595 350 60">
<rect x="180.0" y="595" width="350" height="60" rx="7" fill="#F4EDD7" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="634.18" font-size="27" text-anchor="middle" class="">Final RMSNorm</text>
</g>
<path d="M355,594 L355,563" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<rect x="100" y="725" width="555" height="645" rx="23" fill="#F7F5EF" stroke="#202C36" stroke-width="2.2"/>
<text x="76" y="1056.5" font-size="30" text-anchor="end" class="math">N×</text>
<circle cx="355" cy="785" r="18" fill="#FFFFFF" stroke="#202C36" stroke-width="2.1"/>
<text x="355" y="793.99" font-size="29" text-anchor="middle" class="">+</text>
<path d="M355,766 L355,656" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="145.0 837 420 130">
<rect x="145.0" y="837" width="420" height="130" rx="7" fill="#DCE8E8" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="879.5899999999999" font-size="27" text-anchor="middle" class="">SwiGLU FFN</text>
<text x="355" y="911.18" font-size="27" text-anchor="middle" class="">u = Wᵤ x; g = SiLU(Wg x)</text>
<text x="355" y="942.7699999999999" font-size="27" text-anchor="middle" class="">Wdown (g ⊙ u)</text>
</g>
<path d="M355,836 L355,804" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="180.0 1008 350 58">
<rect x="180.0" y="1008" width="350" height="58" rx="7" fill="#F4EDD7" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="1046.18" font-size="27" text-anchor="middle" class="">RMSNorm</text>
</g>
<path d="M355,1007 L355,968" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<circle cx="355" cy="1117" r="18" fill="#FFFFFF" stroke="#202C36" stroke-width="2.1"/>
<text x="355" y="1125.99" font-size="29" text-anchor="middle" class="">+</text>
<path d="M355,1098 L355,1067" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="110.0 1161 490 98">
<rect x="110.0" y="1161" width="490" height="98" rx="7" fill="#F0DDC2" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="1190.0800000000002" font-size="24" text-anchor="middle" class="">Gated DeltaNet · 3 of 4 layers</text>
<text x="355" y="1218.16" font-size="24" text-anchor="middle" class="">Gated causal GQA · 1 of 4</text>
<text x="355" y="1246.2400000000002" font-size="24" text-anchor="middle" class="">Q/K RoPE in GQA only</text>
</g>
<path d="M355,1160 L355,1136" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="180.0 1284 350 58">
<rect x="180.0" y="1284" width="350" height="58" rx="7" fill="#F4EDD7" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="1322.18" font-size="27" text-anchor="middle" class="">RMSNorm</text>
</g>
<path d="M355,1283 L355,1260" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M355,1356 L610,1356 L610,1117 L374,1117" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M355,1082 L610,1082 L610,785 L374,785" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<circle cx="355" cy="1356" r="3.5" fill="#202C36"/>
<circle cx="355" cy="1082" r="3.5" fill="#202C36"/>
<g data-box="180.0 1410 350 58">
<rect x="180.0" y="1410" width="350" height="58" rx="7" fill="#F0DDD4" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="1448.18" font-size="27" text-anchor="middle" class="">Token embeddings</text>
</g>
<path d="M355,1409 L355,1343" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="110.0 1510 490 84">
<rect x="110.0" y="1510" width="490" height="84" rx="7" fill="#EBEEE8" stroke="#202C36" stroke-width="2.2"/>
<text x="355" y="1545.385" font-size="27" text-anchor="middle" class="">State · question · K candidates</text>
<text x="355" y="1576.975" font-size="27" text-anchor="middle" class="">global query suffix</text>
</g>
<path d="M355,1509 L355,1469" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<text x="1100" y="52.0" font-size="31" text-anchor="middle" class="serif">(b) Dynamic candidate scorer</text>
<path d="M790,75 L1410,75" fill="none" stroke="#A36A47" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
<text x="1100" y="110.0" font-size="31" text-anchor="middle" class="math">pᵢ = softmaxᵢ(sᵢ / T)</text>
<g data-box="850.0 155 500 82">
<rect x="850.0" y="155" width="500" height="82" rx="7" fill="#DFE9DE" stroke="#202C36" stroke-width="2.2"/>
<text x="1100" y="189.38500000000002" font-size="27" text-anchor="middle" class="">Mask padded candidates</text>
<text x="1100" y="220.97500000000002" font-size="27" text-anchor="middle" class="">softmax over K valid scores</text>
</g>
<path d="M1100,154 L1100,125" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<circle cx="1100" cy="315" r="18" fill="#FFFFFF" stroke="#202C36" stroke-width="2.1"/>
<text x="1100" y="323.99" font-size="29" text-anchor="middle" class="">+</text>
<path d="M1100,296 L1100,238" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<text x="1142" y="285.0" font-size="29" text-anchor="start" class="math">sᵢ</text>
<g data-box="742.5 490 325 90">
<rect x="742.5" y="490" width="325" height="90" rx="7" fill="#EBEEE8" stroke="#202C36" stroke-width="2.2"/>
<text x="905" y="528.385" font-size="27" text-anchor="middle" class="">Scaled dot product</text>
<text x="905" y="559.975" font-size="27" text-anchor="middle" class="">kᵢᵀ v / √256</text>
</g>
<g data-box="1142.5 490 305 90">
<rect x="1142.5" y="490" width="305" height="90" rx="7" fill="#E5E0EA" stroke="#202C36" stroke-width="2.2"/>
<text x="1295" y="544.18" font-size="27" text-anchor="middle" class="">Linear → scalar</text>
</g>
<path d="M905,489 L905,315 L1081,315" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M1295,489 L1295,315 L1119,315" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="1165.0 640 260 58">
<rect x="1165.0" y="640" width="260" height="58" rx="7" fill="#E5DCE6" stroke="#202C36" stroke-width="2.2"/>
<text x="1295" y="678.18" font-size="27" text-anchor="middle" class="">GELU</text>
</g>
<path d="M1295,639 L1295,581" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="742.5 790 325 90">
<rect x="742.5" y="790" width="325" height="90" rx="7" fill="#E5E0EA" stroke="#202C36" stroke-width="2.2"/>
<text x="905" y="828.385" font-size="27" text-anchor="middle" class="">kᵢ = Wk cᵢ</text>
<text x="905" y="859.975" font-size="27" text-anchor="middle" class="">v = Wq q</text>
</g>
<path d="M905,789 L905,581" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="1122.5 790 345 90">
<rect x="1122.5" y="790" width="345" height="90" rx="7" fill="#E5E0EA" stroke="#202C36" stroke-width="2.2"/>
<text x="1295" y="828.385" font-size="27" text-anchor="middle" class="">Ac cᵢ + Aq q + b</text>
<text x="1295" y="859.975" font-size="27" text-anchor="middle" class="">256-dimensional</text>
</g>
<path d="M1295,789 L1295,699" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M1100,990 L905,990 L905,881" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M1100,990 L1295,990 L1295,881" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<circle cx="1100" cy="990" r="3.5" fill="#202C36"/>
<g data-box="847.5 1040 505 88">
<rect x="847.5" y="1040" width="505" height="88" rx="7" fill="#EBEEE8" stroke="#202C36" stroke-width="2.2"/>
<text x="1100" y="1077.385" font-size="27" text-anchor="middle" class="">Normalized pair (cᵢ, q)</text>
<text x="1100" y="1108.975" font-size="27" text-anchor="middle" class="">broadcast q to every candidate</text>
</g>
<path d="M1100,1039 L1100,991" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="755.0 1230 300 62">
<rect x="755.0" y="1230" width="300" height="62" rx="7" fill="#F4EDD7" stroke="#202C36" stroke-width="2.2"/>
<text x="905" y="1270.18" font-size="27" text-anchor="middle" class="">LayerNorm c</text>
</g>
<g data-box="1145.0 1230 300 62">
<rect x="1145.0" y="1230" width="300" height="62" rx="7" fill="#F4EDD7" stroke="#202C36" stroke-width="2.2"/>
<text x="1295" y="1270.18" font-size="27" text-anchor="middle" class="">LayerNorm q</text>
</g>
<path d="M905,1229 L905,1180 L995,1180 L995,1129" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M1295,1229 L1295,1180 L1205,1180 L1205,1129" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<g data-box="742.5 1400 325 90">
<rect x="742.5" y="1400" width="325" height="90" rx="7" fill="#EBEEE8" stroke="#202C36" stroke-width="2.2"/>
<text x="905" y="1438.385" font-size="27" text-anchor="middle" class="">hᵢ</text>
<text x="905" y="1469.975" font-size="27" text-anchor="middle" class="">candidate endpoint</text>
</g>
<g data-box="1142.5 1400 305 90">
<rect x="1142.5" y="1400" width="305" height="90" rx="7" fill="#EBEEE8" stroke="#202C36" stroke-width="2.2"/>
<text x="1295" y="1438.385" font-size="27" text-anchor="middle" class="">hq</text>
<text x="1295" y="1469.975" font-size="27" text-anchor="middle" class="">final query token</text>
</g>
<path d="M905,1399 L905,1293" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<path d="M1295,1399 L1295,1293" fill="none" stroke="#202C36" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow)"/>
<text x="1100" y="1560.0" font-size="27" text-anchor="middle" class="">Same weights for all K candidates</text>
<text x="1100" y="1591.59" font-size="27" text-anchor="middle" class="">Head and softmax computed in FP32</text>
<path d="M110,1626 L1438,1626" fill="none" stroke="#A36A47" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
<text x="395" y="1668.0" font-size="29" text-anchor="middle" class="serif">Decision-1.0-Sol (2B)</text>
<text x="395" y="1704.0" font-size="25" text-anchor="middle" class="">N = 24 · d = 2048 · FFN = 6144</text>
<text x="395" y="1738.0" font-size="23" text-anchor="middle" class="">18 DeltaNet + 6 GQA layers · Q/KV heads 8/2</text>
<text x="1112" y="1668.0" font-size="29" text-anchor="middle" class="serif">Decision-1.0-Nox (4B)</text>
<text x="1112" y="1704.0" font-size="25" text-anchor="middle" class="">N = 32 · d = 2560 · FFN = 9216</text>
<text x="1112" y="1738.0" font-size="23" text-anchor="middle" class="">24 DeltaNet + 8 GQA layers · Q/KV heads 16/4</text>
<text x="750" y="1784.0" font-size="25" text-anchor="middle" class="">Same computation; independently trained weights · K = 2…255</text>
</svg>