import%20marimo%0A%0A__generated_with%20%3D%20%220.23.16%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20METADATA%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%22id%22%3A%20%22transformer%22%2C%0A%20%20%20%20%20%20%20%20%22name%22%3A%20%22Transformer%22%2C%0A%20%20%20%20%20%20%20%20%22types%22%3A%20%5B%22architecture%22%5D%2C%0A%20%20%20%20%20%20%20%20%22families%22%3A%20%5B%22neural_networks%22%2C%20%22attention%22%2C%20%22sequential%22%5D%2C%0A%20%20%20%20%20%20%20%20%22tasks%22%3A%20%5B%22classification%22%2C%20%22regression%22%2C%20%22forecasting%22%2C%20%22generation%22%2C%20%22representation%22%5D%2C%0A%20%20%20%20%20%20%20%20%22data%22%3A%20%5B%22text%22%2C%20%22image%22%2C%20%22audio%22%2C%20%22time_series%22%2C%20%22sequences%22%2C%20%22multimodal%22%5D%2C%0A%20%20%20%20%20%20%20%20%22learning%22%3A%20%5B%22supervised%22%2C%20%22self_supervised%22%5D%2C%0A%20%20%20%20%20%20%20%20%22capacity%22%3A%20%22parametric%22%2C%0A%20%20%20%20%20%20%20%20%22mechanisms%22%3A%20%5B%22attention%22%2C%20%22embeddings%22%2C%20%22backpropagation%22%5D%2C%0A%20%20%20%20%20%20%20%20%22properties%22%3A%20%5B%22generative%22%2C%20%22nonlinear%22%2C%20%22pretrained_ecosystem%22%2C%20%22representation_learning%22%5D%2C%0A%20%20%20%20%20%20%20%20%22constraints%22%3A%20%5B%22high_compute%22%2C%20%22high_memory%22%2C%20%22requires_large_data%22%5D%2C%0A%20%20%20%20%20%20%20%20%22difficulty%22%3A%20%22intermediate%22%2C%0A%20%20%20%20%20%20%20%20%22status%22%3A%20%22complete%22%2C%0A%20%20%20%20%20%20%20%20%22explainability%22%3A%20%22low%22%2C%0A%20%20%20%20%20%20%20%20%22training_cost%22%3A%20%22high%22%2C%0A%20%20%20%20%20%20%20%20%22inference_cost%22%3A%20%22high%22%2C%0A%20%20%20%20%20%20%20%20%22data_appetite%22%3A%20%22high%22%2C%0A%20%20%20%20%7D%0A%0A%20%20%20%20mo.md(f%22%23%20%7BMETADATA%5B'name'%5D%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20In%20one%20sentence%0A%0A%20%20%20%20A%20Transformer%20builds%20context-aware%20representations%20by%20letting%20positions%20assign%20attention%20to%20other%20positions.%0A%0A%20%20%20%20%23%23%20Mental%20model%0A%0A%20%20%20%20Every%20token%20or%20patch%20creates%20a%20query%3A%20%22What%20information%20do%20I%20need%3F%22%20Other%20positions%20expose%20keys%20describing%20what%20they%20contain%20and%20values%20carrying%20the%20information.%20Query-key%20compatibility%20controls%20how%20values%20are%20mixed.%0A%0A%20%20%20%20The%20metaphor%20is%20useful%2C%20but%20attention%20weights%20are%20not%20guaranteed%20human%20explanations.%20They%20are%20internal%20routing%20coefficients%20inside%20a%20larger%20nonlinear%20computation.%0A%0A%20%20%20%20%23%23%20Input%20and%20output%0A%0A%20%20%20%20-%20**Input%3A**%20tokens%2C%20image%20patches%2C%20audio%20frames%2C%20events%2C%20or%20other%20position-indexed%20vectors.%0A%20%20%20%20-%20**Output%3A**%20contextual%20representations%2C%20labels%2C%20numeric%20values%2C%20or%20generated%20sequence%20elements.%0A%20%20%20%20-%20**Learns%3A**%20projections%20for%20attention%2C%20feed-forward%20transformations%2C%20embeddings%2C%20and%20normalization%20parameters.%0A%0A%20%20%20%20%23%23%20Core%20mechanism%0A%0A%20%20%20%20Scaled%20dot-product%20attention%20is%3A%0A%0A%20%20%20%20%24%24%5Cmathrm%7BAttention%7D(Q%2CK%2CV)%20%3D%20%5Cmathrm%7Bsoftmax%7D%5Cleft(%5Cfrac%7BQK%5ET%7D%7B%5Csqrt%7Bd_k%7D%7D%5Cright)V%24%24%0A%0A%20%20%20%20Multiple%20heads%20learn%20different%20projections%20and%20interaction%20patterns.%20Position%20information%20must%20be%20added%20because%20attention%20alone%20does%20not%20know%20order.%20Feed-forward%20blocks%20transform%20each%20position%2C%20while%20residual%20connections%20and%20normalization%20stabilize%20deep%20networks.%0A%0A%20%20%20%20%23%23%20Common%20structural%20variants%0A%0A%20%20%20%20-%20**Encoder-only%3A**%20reads%20full%20context%3B%20strong%20for%20representation%20and%20classification.%0A%20%20%20%20-%20**Decoder-only%3A**%20uses%20causal%20masking%3B%20strong%20for%20autoregressive%20generation.%0A%20%20%20%20-%20**Encoder-decoder%3A**%20encodes%20an%20input%20and%20generates%20a%20related%20output.%0A%0A%20%20%20%20%22Transformer%22%20names%20a%20broad%20architecture%20family%2C%20not%20one%20model%20size%2C%20training%20objective%2C%20or%20product.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20A%20practical%20example%0A%0A%20%20%20%20In%20document%20classification%2C%20the%20word%20%22charge%22%20may%20refer%20to%20billing%2C%20a%20legal%20accusation%2C%20or%20a%20battery.%20Attention%20lets%20its%20representation%20combine%20evidence%20from%20relevant%20surrounding%20words.%20Pretraining%20supplies%20broad%20language%20patterns%20before%20task-specific%20fitting.%0A%0A%20%20%20%20%23%23%20When%20to%20use%20it%0A%0A%20%20%20%20-%20Flexible%20interactions%20across%20positions%20matter.%0A%20%20%20%20-%20Strong%20pretrained%20models%20exist%20for%20the%20modality.%0A%20%20%20%20-%20The%20task%20benefits%20from%20shared%20representations%20or%20generation.%0A%20%20%20%20-%20Data%20and%20compute%20justify%20training%20or%20adaptation.%0A%20%20%20%20-%20Context%20length%20and%20serving%20cost%20fit%20the%20system%20budget.%0A%0A%20%20%20%20%23%23%20When%20to%20avoid%20it%0A%0A%20%20%20%20-%20A%20simple%20sparse%20linear%20model%20already%20solves%20the%20text%20task.%0A%20%20%20%20-%20Local%20structure%20dominates%20and%20a%20convolution%20is%20more%20efficient.%0A%20%20%20%20-%20Sequence%20length%20makes%20standard%20attention%20memory%20prohibitive.%0A%20%20%20%20-%20The%20system%20needs%20deterministic%20factual%20behavior%20without%20retrieval%2C%20verification%2C%20or%20constraints.%0A%20%20%20%20-%20Available%20data%20is%20small%20and%20no%20suitable%20pretraining%20exists.%0A%0A%20%20%20%20%23%23%20Data%20preparation%0A%0A%20%20%20%20Tokenization%20or%20patch%20construction%20is%20part%20of%20the%20model%20interface.%20Track%20truncation%2C%20padding%2C%20masks%2C%20context%20boundaries%2C%20and%20position%20handling.%20Deduplicate%20train%20and%20evaluation%20data.%20For%20time%20series%2C%20preserve%20causal%20splits%20and%20normalize%20without%20future%20statistics.%0A%0A%20%20%20%20%23%23%20Important%20controls%0A%0A%20%20%20%20%7C%20Control%20%7C%20Role%20%7C%0A%20%20%20%20%7C---------%7C------%7C%0A%20%20%20%20%7C%20Depth%2C%20width%2C%20head%20count%20%7C%20Capacity%20and%20cost%20%7C%0A%20%20%20%20%7C%20Context%20length%20%7C%20Accessible%20positions%20and%20memory%20use%20%7C%0A%20%20%20%20%7C%20Attention%20pattern%20%7C%20Full%2C%20causal%2C%20local%2C%20sparse%2C%20or%20cross-attention%20%7C%0A%20%20%20%20%7C%20Learning%20rate%20and%20schedule%20%7C%20Optimization%20sensitivity%20%7C%0A%20%20%20%20%7C%20Pretraining%20objective%20%7C%20Strongly%20shapes%20representation%20behavior%20%7C%0A%20%20%20%20%7C%20Decoding%20settings%20%7C%20Temperature%2C%20top-p%2C%20beams%20affect%20generation%20%7C%0A%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20Notebook%20%E2%80%94%20attention%20in%20miniature%0A%0A%20%20%20%20**Question%3A**%20how%20do%20queries%2C%20keys%2C%20values%2C%20and%20masks%20change%20information%20flow%3F%0A%0A%20%20%20%20This%20is%20a%20numerical%20microscope%2C%20not%20a%20trainable%20language%20model.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20def%20softmax(x%2C%20axis%3D-1)%3A%0A%20%20%20%20%20%20%20%20shifted%20%3D%20x%20-%20np.max(x%2C%20axis%3Daxis%2C%20keepdims%3DTrue)%0A%20%20%20%20%20%20%20%20exp%20%3D%20np.exp(shifted)%0A%20%20%20%20%20%20%20%20return%20exp%20%2F%20exp.sum(axis%3Daxis%2C%20keepdims%3DTrue)%0A%0A%20%20%20%20def%20attention(query%2C%20key%2C%20value%2C%20mask%3DNone)%3A%0A%20%20%20%20%20%20%20%20scores%20%3D%20query%20%40%20key.T%20%2F%20np.sqrt(query.shape%5B-1%5D)%0A%20%20%20%20%20%20%20%20if%20mask%20is%20not%20None%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20scores%20%3D%20np.where(mask%2C%20scores%2C%20-1e9)%0A%20%20%20%20%20%20%20%20weights%20%3D%20softmax(scores)%0A%20%20%20%20%20%20%20%20return%20weights%20%40%20value%2C%20weights%0A%0A%20%20%20%20return%20attention%2C%20np%2C%20plt%0A%0A%0A%40app.cell%0Adef%20_(attention%2C%20np%2C%20plt)%3A%0A%20%20%20%20tokens%20%3D%20%5B%22the%22%2C%20%22bank%22%2C%20%22approved%22%2C%20%22the%22%2C%20%22loan%22%5D%0A%20%20%20%20%23%20Hand-crafted%20vectors%20make%20the%20mechanics%20visible.%20Real%20projections%20are%20learned.%0A%20%20%20%20Q%20%3D%20np.array(%5B%5B1%2C%200%5D%2C%20%5B0%2C%201%5D%2C%20%5B1%2C%201%5D%2C%20%5B1%2C%200%5D%2C%20%5B0%2C%201%5D%5D%2C%20dtype%3Dfloat)%0A%20%20%20%20K%20%3D%20np.array(%5B%5B1%2C%200%5D%2C%20%5B0%2C%201%5D%2C%20%5B1%2C%201%5D%2C%20%5B1%2C%200%5D%2C%20%5B0%2C%201%5D%5D%2C%20dtype%3Dfloat)%0A%20%20%20%20V%20%3D%20np.array(%5B%5B1%2C%200%5D%2C%20%5B0%2C%202%5D%2C%20%5B2%2C%202%5D%2C%20%5B1%2C%200%5D%2C%20%5B0%2C%203%5D%5D%2C%20dtype%3Dfloat)%0A%20%20%20%20context%2C%20weights%20%3D%20attention(Q%2C%20K%2C%20V)%0A%0A%20%20%20%20plt.imshow(weights%2C%20cmap%3D%22Blues%22%2C%20vmin%3D0%2C%20vmax%3D1)%0A%20%20%20%20plt.xticks(range(len(tokens))%2C%20tokens%2C%20rotation%3D45)%0A%20%20%20%20plt.yticks(range(len(tokens))%2C%20tokens)%0A%20%20%20%20plt.colorbar(label%3D%22attention%20weight%22)%0A%20%20%20%20plt.title(%22Each%20row%20mixes%20information%20from%20columns%22)%0A%20%20%20%20return%20K%2C%20Q%2C%20V%2C%20tokens%2C%20weights%0A%0A%0A%40app.cell%0Adef%20_(K%2C%20Q%2C%20V%2C%20attention%2C%20np%2C%20plt%2C%20tokens%2C%20weights)%3A%0A%20%20%20%20causal_mask%20%3D%20np.tril(np.ones((len(tokens)%2C%20len(tokens))%2C%20dtype%3Dbool))%0A%20%20%20%20_%2C%20causal_weights%20%3D%20attention(Q%2C%20K%2C%20V%2C%20mask%3Dcausal_mask)%0A%20%20%20%20fig%2C%20axes%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(9%2C%203.5))%0A%20%20%20%20axes%5B0%5D.imshow(weights%2C%20cmap%3D%22Blues%22%2C%20vmin%3D0%2C%20vmax%3D1)%0A%20%20%20%20axes%5B0%5D.set_title(%22full%20attention%22)%0A%20%20%20%20axes%5B1%5D.imshow(causal_weights%2C%20cmap%3D%22Blues%22%2C%20vmin%3D0%2C%20vmax%3D1)%0A%20%20%20%20axes%5B1%5D.set_title(%22causal%20attention%22)%0A%20%20%20%20for%20ax%20in%20axes%3A%0A%20%20%20%20%20%20%20%20ax.set_xticks(range(len(tokens))%2C%20tokens%2C%20rotation%3D45)%0A%20%20%20%20%20%20%20%20ax.set_yticks(range(len(tokens))%2C%20tokens)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20Evaluation%20and%20diagnosis%0A%0A%20%20%20%20Match%20evaluation%20to%20the%20use%20case%3A%20classification%20metrics%2C%20retrieval%20quality%2C%20generation%20rubrics%2C%20calibration%2C%20factuality%2C%20latency%2C%20and%20robustness.%20Slice%20by%20length%2C%20language%2C%20topic%2C%20and%20recency.%0A%0A%20%20%20%20For%20generative%20systems%2C%20separate%20model%20capability%20from%20system%20behavior.%20Retrieval%20quality%2C%20prompt%20construction%2C%20tool%20execution%2C%20and%20output%20validation%20may%20dominate%20end-to-end%20failure.%0A%0A%20%20%20%20%23%23%20Cost%20profile%0A%0A%20%20%20%20Standard%20full%20attention%20creates%20a%20sequence-by-sequence%20interaction%20matrix%2C%20making%20memory%20and%20compute%20grow%20roughly%20quadratically%20with%20length.%20Many%20variants%20reduce%20this%20cost%20through%20locality%2C%20sparsity%2C%20recurrence%2C%20or%20kernel%20approximations.%20Parameter%20count%20also%20affects%20memory%20independently%20of%20context%20length.%0A%0A%20%20%20%20%23%23%20Related%20models%0A%0A%20%20%20%20-%20**TCN**%20uses%20causal%20dilated%20convolution%20with%20explicit%20receptive%20fields.%0A%20%20%20%20-%20RNN%2FLSTM%2FGRU%20process%20sequentially%20through%20recurrent%20state.%0A%20%20%20%20-%20Vision%20Transformer%20applies%20the%20architecture%20to%20image%20patches.%0A%20%20%20%20-%20Mixture%20of%20Experts%20increases%20parameter%20capacity%20while%20activating%20only%20subsets%20per%20token.%0A%0A%20%20%20%20%23%23%20Practical%20takeaway%0A%0A%20%20%20%20Use%20a%20Transformer%20because%20flexible%20context%20and%20transfer%20learning%20solve%20a%20real%20constraint%20%E2%80%94%20not%20because%20the%20name%20has%20become%20synonymous%20with%20modern%20AI.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
c6ca5213aa8ad60a56101654990430e1