File size: 15,624 Bytes
1334bc0 3c3356c 427dd4e 3c3356c 427dd4e 3c3356c 427dd4e 3c3356c 1334bc0 3c3356c 1334bc0 427dd4e 3c3356c | 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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 960" width="1200" height="960" font-size="14">
<style>
:root {
--bg: #ffffff; --fg: #1b1f24; --muted: #6b7280; --panel: #f6f8fa; --grid: #e5e7eb;
--embed: #dbeafe; --embed-s: #3b82f6;
--attn: #cffafe; --attn-s: #06b6d4;
--mamba: #dcfce7; --mamba-s: #22c55e;
--linattn: #fce7f3; --linattn-s: #ec4899;
--recur: #ede9fe; --recur-s: #8b5cf6;
--moe: #ffedd5; --moe-s: #f97316;
--mlp: #ede9fe; --mlp-s: #8b5cf6;
--norm: #e5e7eb; --norm-s: #9ca3af;
--head: #fee2e2; --head-s: #ef4444;
--config: #f1f5f9; --config-s: #64748b;
--rope: #fef9c3; --rope-s: #eab308;
--layer: #f8fafc; --layer-s: #cbd5e1;
--io: #f1f5f9; --io-s: #94a3b8;
--soft: #fae8ff; --soft-s: #c026d3;
--add: #ffffff; --add-s: #475569;
--block-s: #94a3b8;
--residual: #f59e0b;
--added: #16a34a; --over: #d97706; --deleted: #dc2626;
--lt-full: #06b6d4; --lt-sliding: #3b82f6; --lt-chunked: #8b5cf6;
--lt-compressed: #f97316; --lt-heavy: #dc2626; --lt-linear: #ec4899; --lt-mamba: #22c55e;
--cell-on: #0ea5e9; --cell-off: #e5e7eb;
--vision: #dcfce7; --vision-s: #16a34a; --audio: #fae8ff; --audio-s: #c026d3;
--proj: #fef3c7; --proj-s: #d97706; --xattn: #db2777;
--conv: #d1fae5; --conv-s: #10b981; --act: #ecfccb; --act-s: #65a30d;
--pool: #e0f2fe; --pool-s: #0284c7; --quant: #fae8ff; --quant-s: #c026d3;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #0d1117; --fg: #e6edf3; --muted: #8b949e; --panel: #161b22; --grid: #30363d;
--embed: #172554; --attn: #083344; --mamba: #052e16; --linattn: #500724;
--recur: #2e1065; --moe: #431407; --mlp: #2e1065; --norm: #21262d; --head: #450a0a;
--config: #1e293b; --rope: #422006; --layer: #161b22;
--conv: #022c22; --act: #1a2e05; --pool: #082f49; --quant: #3b0764; --proj: #422006;
--io: #1e293b; --soft: #3b0764; --add: #0d1117; --cell-off: #21262d;
}
}
.bg { fill: var(--bg); }
text { font-family: ui-sans-serif, -apple-system, "Segoe UI", Roboto, sans-serif; fill: var(--fg); }
.title { font-size: 22px; font-weight: 700; }
.subtitle { font-size: 13px; fill: var(--muted); }
.box-label { font-size: 14px; font-weight: 600; }
.box-label.sm { font-size: 12.5px; }
.box-sub { font-size: 11px; fill: var(--muted); }
.glyph { font-size: 18px; font-weight: 700; fill: var(--add-s); }
.badge { font-size: 12px; font-weight: 700; fill: var(--fg); }
.facts-k { font-size: 11.5px; fill: var(--muted); }
.facts-v { font-size: 11.5px; font-weight: 600; }
.legend-t { font-size: 11.5px; fill: var(--fg); }
.panel { fill: var(--panel); stroke: var(--grid); }
rect.b { rx: 9; stroke-width: 1.6; }
.c-embed { fill: var(--embed); stroke: var(--embed-s); }
.c-attn { fill: var(--attn); stroke: var(--attn-s); }
.c-mamba { fill: var(--mamba); stroke: var(--mamba-s); }
.c-linattn { fill: var(--linattn); stroke: var(--linattn-s); }
.c-recur { fill: var(--recur); stroke: var(--recur-s); }
.c-moe { fill: var(--moe); stroke: var(--moe-s); }
.c-mlp { fill: var(--mlp); stroke: var(--mlp-s); }
.c-norm { fill: var(--norm); stroke: var(--norm-s); }
.c-head { fill: var(--head); stroke: var(--head-s); }
.c-config{ fill: var(--config);stroke: var(--config-s); }
.c-rope { fill: var(--rope); stroke: var(--rope-s); }
.c-proj { fill: var(--proj); stroke: var(--proj-s); }
.c-conv { fill: var(--conv); stroke: var(--conv-s); }
.c-act { fill: var(--act); stroke: var(--act-s); }
.c-pool { fill: var(--pool); stroke: var(--pool-s); }
.c-quant { fill: var(--quant); stroke: var(--quant-s); }
.c-layer { fill: var(--layer); stroke: var(--layer-s); }
.c-io { fill: var(--io); stroke: var(--io-s); }
.c-soft { fill: var(--soft); stroke: var(--soft-s); }
.c-add { fill: var(--add); stroke: var(--add-s); }
.c-block { fill: none; stroke: var(--block-s); stroke-width: 1.6; stroke-dasharray: 7 5; }
.c-lt-full { fill: var(--lt-full); stroke: var(--lt-full); }
.c-lt-sliding { fill: var(--lt-sliding); stroke: var(--lt-sliding); }
.c-lt-chunked { fill: var(--lt-chunked); stroke: var(--lt-chunked); }
.c-lt-compressed { fill: var(--lt-compressed); stroke: var(--lt-compressed); }
.c-lt-heavy { fill: var(--lt-heavy); stroke: var(--lt-heavy); }
.c-lt-linear { fill: var(--lt-linear); stroke: var(--lt-linear); }
.c-lt-mamba { fill: var(--lt-mamba); stroke: var(--lt-mamba); }
.cell-on { fill: var(--cell-on); }
.cell-off { fill: var(--cell-off); }
.grid-frame { fill: none; stroke: var(--grid); stroke-width: 1; }
.mask-bg { fill: var(--cell-off); }
.mask-on { fill: #22c55e; }
.mask-div { stroke: var(--fg); stroke-width: 1.5; stroke-dasharray: 3 2; }
.c-vision { fill: var(--vision); stroke: var(--vision-s); }
.c-audio { fill: var(--audio); stroke: var(--audio-s); }
.c-proj { fill: var(--proj); stroke: var(--proj-s); }
.c-sub { fill: var(--bg); stroke: var(--block-s); stroke-width: 1.2; }
.sec-h { font-size: 12px; font-weight: 700; }
.sec-hbar { fill: var(--bg); opacity: 0.82; }
.residual.xattn { stroke: var(--xattn); stroke-width: 2.4; }
.ghost { opacity: 0.32; stroke-dasharray: 4 3; }
.ch-added rect.b, rect.b.ch-added { stroke: var(--added); stroke-width: 3.2; }
.ch-over rect.b, rect.b.ch-over { stroke: var(--over); stroke-width: 3.2; }
.ch-deleted rect.b, rect.b.ch-deleted { stroke: var(--deleted); stroke-width: 3.2; }
.edge { stroke: var(--grid); stroke-width: 2; }
.flow { stroke: var(--grid); stroke-width: 2; fill: none; }
.residual { stroke: var(--residual); stroke-width: 2; fill: none; }
.rope { stroke: var(--rope-s); stroke-width: 2.2; fill: none; }
.xattn { stroke: var(--xattn); stroke-width: 2.4; fill: none; }
.cell-idx { font-size: 9px; fill: #ffffff; font-weight: 600; }
.sky { fill: #bae6fd; } .sun { fill: #fde047; } .hill { fill: #4ade80; }
</style>
<defs><marker id="ah-flow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="var(--grid)"/></marker><marker id="ah-residual" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="var(--residual)"/></marker><marker id="ah-rope" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="var(--rope-s)"/></marker><marker id="ah-xattn" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="var(--xattn)"/></marker></defs>
<rect class="bg" x="0" y="0" width="1200" height="960"/>
<text class="title" x="24" y="34">bit</text>
<text class="subtitle" x="24" y="54">BitModel Β· forward data flow (shapes from a dummy input pass)</text>
<g class=""><rect class="b c-sub " x="300" y="349" width="580" height="409" rx="11"/><rect class="sec-hbar" x="305" y="353" width="570" height="18" rx="5"/><text class="sec-h" x="312" y="366">encoder Β· Encoder β [1Γ2048Γ2Γ2]</text></g>
<g class=""><rect class="b c-sub " x="310" y="377" width="560" height="368" rx="11"/><rect class="sec-hbar" x="315" y="381" width="550" height="18" rx="5"/><text class="sec-h" x="322" y="394">stages Β· 4Γ BitStage</text></g>
<g class=""><rect class="b c-act " x="318" y="402" width="544" height="330" rx="11"/><rect class="sec-hbar" x="323" y="406" width="534" height="18" rx="5"/><text class="sec-h" x="330" y="419">layers Β· 3Γ BitPreActivationBottleneckLayer</text></g>
<g class=""><rect class="b c-embed " x="300" y="166" width="580" height="159" rx="11"/><rect class="sec-hbar" x="305" y="170" width="570" height="18" rx="5"/><text class="sec-h" x="312" y="183">embedder Β· Embeddings β [1Γ64Γ16Γ16]</text></g>
<g class=""><rect class="b c-conv " x="326" y="427" width="528" height="89" rx="11"/><rect class="sec-hbar" x="331" y="431" width="518" height="18" rx="5"/><text class="sec-h" x="338" y="444">downsample Β· BitDownsampleConv</text></g>
<g class=""><rect class="b c-pool " x="310" y="223" width="560" height="60" rx="11"/><rect class="sec-hbar" x="315" y="227" width="550" height="18" rx="5"/><text class="sec-h" x="322" y="240">pooler Β· BitMaxPool2d</text></g>
<polyline class="flow" points="590.0,142 590.0,166" marker-end="url(#ah-flow)"/>
<polyline class="flow" points="590.0,325 590.0,349" marker-end="url(#ah-flow)"/>
<polyline class="flow" points="590.0,758 590.0,782" marker-end="url(#ah-flow)"/>
<polyline class="flow" points="590.0,816 590.0,840" marker-end="url(#ah-flow)"/>
<polyline class="flow" points="590.0,874 590.0,898" marker-end="url(#ah-flow)"/>
<g class=""><rect class="b c-io" x="300" y="108" width="580" height="34" rx="17"/><text class="box-label sm" x="590.0" y="129.5" text-anchor="middle">pixel_values [1, 3, 64, 64]</text></g>
<g class=""><title>convolution: WeightStandardizedConv2d 3β64 k7Γ7</title><rect class="b c-conv" x="310" y="194" width="560" height="22" rx="9"/><text class="box-label sm" x="590.0" y="209.5" text-anchor="middle">convolution WeightStandardizedConv2d 3β64 k7Γ7</text></g>
<g class=""><title>pad: Identity</title><rect class="b c-sub" x="318" y="248" width="544" height="22" rx="9"/><text class="box-label sm" x="590.0" y="263.5" text-anchor="middle">pad Identity</text></g>
<g class=""><title>pad: ConstantPad2d</title><rect class="b c-sub" x="310" y="290" width="276" height="22" rx="9"/><text class="box-label sm" x="448.0" y="305.5" text-anchor="middle">pad ConstantPad2d</text></g>
<g class=""><title>norm: Identity</title><rect class="b c-sub" x="593" y="290" width="276" height="22" rx="9"/><text class="box-label sm" x="731.0" y="305.5" text-anchor="middle">norm Identity</text></g>
<g class=""><title>conv: WeightStandardizedConv2d 64β256 k1Γ1</title><rect class="b c-conv" x="334" y="452" width="512" height="22" rx="9"/><text class="box-label sm" x="590.0" y="467.5" text-anchor="middle">conv WeightStandardizedConv2d 64β256 k1Γ1</text></g>
<g class=""><title>norm: Identity</title><rect class="b c-sub" x="334" y="481" width="512" height="22" rx="9"/><text class="box-label sm" x="590.0" y="496.5" text-anchor="middle">norm Identity</text></g>
<g class=""><title>norm1: BitGroupNormActivation 64</title><rect class="b c-norm" x="326" y="523" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="538.5" text-anchor="middle">norm1 GroupNorm 64</text></g>
<g class=""><title>conv1: WeightStandardizedConv2d 64β64 k1Γ1</title><rect class="b c-conv" x="326" y="552" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="567.5" text-anchor="middle">conv1 WeightStandardizedConv2d 64β64 k1Γ1</text></g>
<g class=""><title>norm2: BitGroupNormActivation 64</title><rect class="b c-norm" x="326" y="581" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="596.5" text-anchor="middle">norm2 GroupNorm 64</text></g>
<g class=""><title>conv2: WeightStandardizedConv2d 64β64 k3Γ3</title><rect class="b c-conv" x="326" y="610" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="625.5" text-anchor="middle">conv2 WeightStandardizedConv2d 64β64 k3Γ3</text></g>
<g class=""><title>norm3: BitGroupNormActivation 64</title><rect class="b c-norm" x="326" y="639" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="654.5" text-anchor="middle">norm3 GroupNorm 64</text></g>
<g class=""><title>conv3: WeightStandardizedConv2d 64β256 k1Γ1</title><rect class="b c-conv" x="326" y="668" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="683.5" text-anchor="middle">conv3 WeightStandardizedConv2d 64β256 k1Γ1</text></g>
<g class=""><title>drop_path: Identity</title><rect class="b c-sub" x="326" y="697" width="528" height="22" rx="9"/><text class="box-label sm" x="590.0" y="712.5" text-anchor="middle">drop_path Identity</text></g>
<g class=""><rect class="b c-norm" x="300" y="782" width="580" height="34" rx="9"/><text class="box-label sm" x="590.0" y="803.5" text-anchor="middle">norm Β· GroupNorm β [1Γ2048Γ2Γ2]</text></g>
<g class=""><rect class="b c-pool" x="300" y="840" width="580" height="34" rx="9"/><text class="box-label sm" x="590.0" y="861.5" text-anchor="middle">pooler Β· AdaptiveAvgPool2d β [1Γ2048Γ1Γ1]</text></g>
<g class=""><rect class="b c-io" x="300" y="898" width="580" height="34" rx="17"/><text class="box-label sm" x="590.0" y="919.5" text-anchor="middle">output [1Γ2048Γ2Γ2]</text></g>
<rect class="panel" x="912" y="88" width="264" height="328" rx="8"/>
<text class="facts-k" x="926" y="112">model id</text>
<text class="facts-v" x="1162" y="112" text-anchor="end">google/bit-50</text>
<text class="facts-k" x="926" y="134">model_type</text>
<text class="facts-v" x="1162" y="134" text-anchor="end">bit</text>
<text class="facts-k" x="926" y="156">config</text>
<text class="facts-v" x="1162" y="156" text-anchor="end">BitConfig</text>
<text class="facts-k" x="926" y="178">decoder</text>
<text class="facts-v" x="1162" y="178" text-anchor="end">dense</text>
<text class="facts-k" x="926" y="200">layers</text>
<text class="facts-v" x="1162" y="200" text-anchor="end">4</text>
<text class="facts-k" x="926" y="222">hidden</text>
<text class="facts-v" x="1162" y="222" text-anchor="end">β</text>
<text class="facts-k" x="926" y="244">intermediate</text>
<text class="facts-v" x="1162" y="244" text-anchor="end">β</text>
<text class="facts-k" x="926" y="266">heads / kv</text>
<text class="facts-v" x="1162" y="266" text-anchor="end">None / None</text>
<text class="facts-k" x="926" y="288">attention</text>
<text class="facts-v" x="1162" y="288" text-anchor="end">β</text>
<text class="facts-k" x="926" y="310">norm</text>
<text class="facts-v" x="1162" y="310" text-anchor="end">BitGroupNormActivation</text>
<text class="facts-k" x="926" y="332">positional</text>
<text class="facts-v" x="1162" y="332" text-anchor="end">n/a</text>
<text class="facts-k" x="926" y="354">vocab</text>
<text class="facts-v" x="1162" y="354" text-anchor="end">β</text>
<text class="facts-k" x="926" y="376">max_pos</text>
<text class="facts-v" x="1162" y="376" text-anchor="end">β</text>
<text class="facts-k" x="926" y="398">tie_embeddings</text>
<text class="facts-v" x="1162" y="398" text-anchor="end">None</text>
<text class="legend-t" x="914" y="436" font-weight="700">legend</text>
<rect x="916" y="447" width="16" height="12" rx="2" fill="var(--embed-s)"/>
<text class="legend-t" x="940" y="457">embedding</text>
<rect x="916" y="465" width="16" height="12" rx="2" fill="var(--attn-s)"/>
<text class="legend-t" x="940" y="475">attention</text>
<rect x="916" y="483" width="16" height="12" rx="2" fill="var(--mamba-s)"/>
<text class="legend-t" x="940" y="493">Mamba / SSM</text>
<rect x="916" y="501" width="16" height="12" rx="2" fill="var(--moe-s)"/>
<text class="legend-t" x="940" y="511">MoE / experts</text>
<rect x="916" y="519" width="16" height="12" rx="2" fill="var(--proj-s)"/>
<text class="legend-t" x="940" y="529">linear / proj</text>
<rect x="916" y="537" width="16" height="12" rx="2" fill="var(--grid)"/>
<text class="legend-t" x="940" y="547">convolution</text>
<rect x="916" y="555" width="16" height="12" rx="2" fill="var(--norm-s)"/>
<text class="legend-t" x="940" y="565">normalization</text>
<rect x="916" y="573" width="16" height="12" rx="2" fill="var(--grid)"/>
<text class="legend-t" x="940" y="583">activation</text>
<rect x="916" y="591" width="16" height="12" rx="2" fill="var(--grid)"/>
<text class="legend-t" x="940" y="601">pooling</text>
<rect x="916" y="609" width="16" height="12" rx="2" fill="var(--head-s)"/>
<text class="legend-t" x="940" y="619">head</text>
</svg> |