% Prepared from the arxiv-paper-reader Beamer template.
% Reading presentation; no paper author is the author of this deck.
\documentclass[aspectratio=169,11pt]{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb,graphicx,booktabs}
\definecolor{AcademicBlue}{RGB}{26,57,86}
\definecolor{AcademicTeal}{RGB}{0,105,112}
\setbeamercolor{structure}{fg=AcademicBlue}
\setbeamercolor{frametitle}{fg=AcademicBlue,bg=white}
\setbeamercolor{title}{fg=AcademicBlue}
\setbeamercolor{alerted text}{fg=AcademicTeal}
\setbeamercolor{block title}{fg=white,bg=AcademicBlue}
\setbeamercolor{block body}{fg=black,bg=AcademicBlue!5}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{itemize items}[circle]
\setbeamertemplate{footline}{\hfill\usebeamerfont{page number in head/foot}\insertframenumber\,/\,\inserttotalframenumber\hspace{4mm}\vspace{3mm}}
\setbeamersize{text margin left=8mm,text margin right=8mm}
\setbeamerfont{frametitle}{size=\Large,series=\bfseries}
\setbeamerfont{title}{size=\LARGE,series=\bfseries}
\newcommand{\papersource}[1]{\par\smallskip{\scriptsize\color{gray}#1\par}}
\newcommand{\kv}{\mathrm{KV}}
\newcommand{\sre}{\operatorname{SRE}}
\newcommand{\R}{\mathbb R}
\newcommand{\fig}[2]{\includegraphics[width=#1\linewidth,height=#2\textheight,keepaspectratio]}
\title[LoLA reading]{LoLA: Low-Rank Linear Attention\\with Sparse Caching}
\subtitle{Selective memory for a fixed-state language model}
\author{Paper by Luke McDermott, Robert W. Heath Jr., and Rahul Parhi\\[2mm]\small Independent paper-reading presentation}
\date{arXiv:2505.23666v3 \quad June 13, 2026\\Reading date: September 24, 2026}
\begin{document}

% Main presentation: frames 1--22, approximately 25 minutes.
\begin{frame}
\titlepage
\vspace{-4mm}
\begin{center}\color{AcademicTeal}\small Keep hard-to-reconstruct associations explicit; compress the rest.\end{center}
\end{frame}

\begin{frame}{Memory allocation changes recall at fixed weights}
\begin{block}{4K single-needle retrieval, same nominal 512 KV slots}
\centering\Large Extended sliding window: 8.8\%\quad$\longrightarrow$\quad LoLA: 97.4\%
\end{block}
\begin{itemize}
\item LoLCATs+: $(\eta,\lambda)=(512,0)$; LoLA: $(256,256)$.
\item \alert{+88.6 percentage points} with a different allocation of historical KV pairs.
\item The headline 0.6\% baseline uses only a 64-token window, so that comparison also changes capacity.
\end{itemize}
\papersource{Sec. 4.1, Table 1, PDF p. 7. All models here use the same distilled 8B base weights.}
\end{frame}

\begin{frame}{A fixed matrix can mix incompatible associations}
\[
H_t=H_{t-1}+\phi(k_t)v_t^\top,\qquad s_t=s_{t-1}+\phi(k_t)
\]
\[
m_t(q)=\frac{H_t^\top\phi(q)}{\phi(q)^\top s_t}
\]
\begin{itemize}
\item $H_t\in\R^{D\times d_v}$; $s_t\in\R^D$; $\phi:\R^{d_k}\to\R^D$.
\item Non-orthogonal feature keys can interfere: a new write changes the readout for an old key.
\item A sliding window preserves recent detail; old associations still enter the compressed state.
\end{itemize}
\papersource{Secs. 2.2--2.4, Eqs. (3)--(5), PDF pp. 3--4. Equations transposed to column-vector outputs.}
\end{frame}

\begin{frame}{LoLA assigns each past KV pair to one memory}
\centering
\fig{0.97}{0.58}{figures/fig-01-memory.pdf}
\begin{columns}[T,onlytextwidth]
\column{0.32\textwidth}\textbf{Local window}\\Recent exact KV\\Capacity $\eta$
\column{0.33\textwidth}\textbf{Sparse global cache}\\Hard associations\\Capacity $\lambda$
\column{0.32\textwidth}\textbf{Linear state}\\Compressed history\\Fixed dimensions
\end{columns}
\papersource{Sec. 3, Fig. 1, PDF p. 5. ``Infinite capacity'' in the original schematic means unbounded input count, not exact recall.}
\end{frame}

\begin{frame}{SRE asks whether a key retrieves its own value}
\begin{block}{Self-recall error}
\[
\sre(k,v\mid H,s)=\left\|\frac{H^\top\phi(k)}{\phi(k)^\top s}-v\right\|_2
\]
\end{block}
\begin{itemize}
\item Large error: the pair does not fit the current associative map well.
\item Selection is query-agnostic; reading the selected KV is query-dependent.
\item SRE measures present reconstruction difficulty, not proven future importance.
\end{itemize}
\papersource{Sec. 3, Eq. (10), PDF p. 4. L2 distance, not squared loss; no accuracy units.}
\end{frame}

\begin{frame}{Re-score explicit candidates; compress the easiest}
\[
\mathcal E_t=G_{t-1}\cup\{\text{KV leaving the local window}\}
\]
\begin{enumerate}
\item Score candidates against the \alert{current, pre-update} state.
\item Keep the $\lambda$ highest errors in $G_t$.
\item Add the remaining outer products to $H$ and their feature keys to $s$.
\end{enumerate}
\begin{block}{A greedy, one-way decision}
Cached pairs are re-scored as the state changes. Pairs already compressed into $H$ cannot re-enter the candidate set as raw KV.
\end{block}
\papersource{Sec. 3, Eqs. (11)--(13), PDF p. 5; Appendix H, pp. 27--28 clarifies score-before-write order.}
\end{frame}

\begin{frame}{All three branches share one normalizer}
Let $a_{ti}=\exp(q_t^\top k_i/\sqrt{d_k})$ and $W_t$ be the local window.
\[
y_t=\frac{H_t^\top\phi(q_t)+\sum_{i\in G_t}a_{ti}v_i+\sum_{j\in W_t}a_{tj}v_j}
{\phi(q_t)^\top s_t+\sum_{i\in G_t}a_{ti}+\sum_{j\in W_t}a_{tj}}
\]
\begin{itemize}
\item The state contains only KV assigned to compressed memory.
\item Each historical pair contributes through its assigned branch.
\item This is a joint normalized mixture, not a sum of three independently normalized outputs.
\end{itemize}
\papersource{Sec. 3, Eq. (14), PDF pp. 5--6. Column-vector convention used throughout this deck.}
\end{frame}

\begin{frame}{Chunking reduces the number of serial cache updates}
\centering\fig{0.91}{0.55}{figures/fig-02-routing.pdf}
\begin{itemize}
\item Queries in a chunk share a state; local and sparse KV use one explicit attention pass.
\item Re-score after a chunk: fewer updates, more local parallel work.
\item Cache selection remains state-dependent across chunks.
\end{itemize}
\papersource{Sec. 3, Fig. 2 and Eq. (15), PDF p. 6. The paper mixes chunk/window notation; implementation must resolve it.}
\end{frame}

\begin{frame}{Training-free augmentation still needs a trained base}
\begin{columns}[T,onlytextwidth]
\column{0.51\textwidth}
\begin{block}{LoLCATs base}
Llama-3.1-8B or Llama-3.2-1B\\[2mm]
Window + linear attention, $D=2d_k$\\[2mm]
Feature-map distillation, then LoRA\\[2mm]
40M Alpaca tokens; length 1024
\end{block}
\column{0.46\textwidth}
\begin{block}{LoLA at inference}
Reuse the base weights\\[2mm]
Route KV using SRE\\[2mm]
Choose window and sparse budgets\\[2mm]
No additional LoLA training
\end{block}
\end{columns}
\smallskip
The 40M-token figure excludes the teacher's original pretraining.
\papersource{Secs. 2.3 and 4, PDF pp. 3--4, 6--7. Base training window: $\eta=64$; two epochs for each stage.}
\end{frame}

\begin{frame}{Harder needles require more sparse capacity}
\centering
\begin{tabular}{lrrr}
\toprule
Model $(\eta,\lambda)$ & SN-1 / 4K & SN-2 / 2K & SN-3 / 2K\\
\midrule
LoLCATs+ $(128,0)$ & 1.4 & 7.2 & 3.2\\
LoLA $(64,64)$ & 69.4 & 3.0 & 1.6\\
\midrule
LoLCATs+ $(512,0)$ & 8.8 & 21.6 & 10.6\\
LoLA $(256,256)$ & \alert{97.4} & 85.4 & 27.2\\
\midrule
LoLCATs+ $(1024,0)$ & 30.4 & 60.0 & 27.6\\
LoLA $(512,512)$ & 100 & 100 & 100\\
\bottomrule
\end{tabular}
\begin{itemize}
\item Accuracy in percent; pairs of rows match nominal explicit KV slots.
\item SN-3 uses a 32-digit UUID. At a small budget, LoLA can lose to a larger local window.
\end{itemize}
\papersource{Table 1, PDF p. 7; needle definitions: Appendix C, p. 20. Llama scores 100 throughout this table.}
\end{frame}

\begin{frame}{Hard RULER tasks improve, but the gap remains large}
\centering
\begin{tabular}{lrrrr}
\toprule
4K task & LoLCATs+ & LoLA & Mamba2 & Llama\\
\midrule
Multi-query & 3.3 & 67.6 & 49.1 & 90.5\\
Multi-value & 3.6 & 65.0 & 35.0 & 98.5\\
Variable tracking & 0.7 & 85.2 & 76.5 & 99.6\\
Frequent words & 13.6 & 51.3 & 76.6 & 91.7\\
HotpotQA & 14.2 & 24.2 & 31.8 & 62.0\\
\midrule
\textbf{All 10 tasks: average} & 6.7 & \alert{45.2} & 39.7 & 91.7\\
\bottomrule
\end{tabular}\par
\medskip
LoLA: $(128,768)$; LoLCATs+: $(896,0)$.\\
Average gain over the matched base: 38.5 points. Gap to Llama: 46.5 points.
\papersource{Table 2, PDF p. 7. Selected task rows; average uses all 10. Other architectures have different training histories.}
\end{frame}

\begin{frame}{Lambada gains are clearer than broad superiority}
\centering
\begin{tabular}{llrrr}
\toprule
Scale & Metric & LoLCATs & LoLA & Teacher\\
\midrule
8B & Lambada accuracy & 67.6 & \alert{74.9} & 73.0\\
8B & MMLU, 5-shot & 54.9 & 57.6 & 68.0\\
8B & WinoGrande & 73.6 & 73.6 & 73.9\\
\midrule
1B & Lambada accuracy & 53.4 & \alert{61.9} & 60.1\\
1B & Lambada perplexity $\downarrow$ & 9.3 & 5.3 & --\\
1B & WinoGrande & 61.5 & 60.9 & 60.5\\
\bottomrule
\end{tabular}
\begin{itemize}
\item 8B uses $(64,64)$; the 1B table does not separately state cache settings.
\item MMLU is an explicit exception to the ``zero-shot'' description.
\end{itemize}
\papersource{Tables 3 and 5, PDF pp. 8, 16. 1B WinoGrande base uses a cited score; authors' reproduced base was also 60.9.}
\end{frame}

\begin{frame}{SRE outperforms the tested selection rules}
\centering
\begin{tabular}{lr}
\toprule
Selection rule & SN-1 / 512 tokens\\
\midrule
\textbf{Self-recall error} & \alert{99.0\%}\\
Squared kernel approximation error & 11.4\%\\
Absolute kernel approximation error & 20.0\%\\
Linear/exponential kernel ratio & 52.0\%\\
Accumulated exponential query--key similarity & 10.6\%\\
Extended local window, no sparse cache & 29.4\%\\
\bottomrule
\end{tabular}\par
\medskip
All scoring variants use $(64,64)$; the local-only baseline uses 128 slots.\\
Query-dependent alternatives accumulate scores during the local window.
\papersource{Table 4, PDF p. 10; Appendix F, p. 26. Evidence is from one synthetic task and one context length.}
\end{frame}

\begin{frame}{The visualizations support reduced memory interference}
\centering\fig{0.97}{0.58}{figures/fig-03-sre.pdf}
\begin{itemize}
\item Horizontal: KV position. Vertical: state time. Brighter: larger SRE.
\item A local window delays interference; LoLA reduces it in this example.
\item Zero columns for cached pairs are not proof of zero reconstruction error inside the linear state.
\end{itemize}
\papersource{Sec. 4.3, Fig. 3, PDF p. 9. Appendix G uses an error difference from initial insertion, not a ratio.}
\end{frame}

\begin{frame}{Sparse and compressed memories work together}
\centering
\begin{tabular}{lrrrr}
\toprule
Readable branches & SN-1 & SN-1 & SN-2 & SN-3\\
 & 2K & 4K & 2K & 2K\\
\midrule
State + sparse + window & 100 & 100 & 100 & 100\\
Sparse + window & 14 & 6 & 2 & 0\\
State + window & 26 & 14 & 24 & 10\\
Window only & 18 & 8 & 0 & 0\\
\bottomrule
\end{tabular}
\begin{block}{What this ablation actually changes}
All caches are still updated normally at $(512,512)$. Only query access is restricted; hidden KV are not re-routed into another branch.
\end{block}
\papersource{Appendix I, Table 12, PDF pp. 28--29. Ablation runs: 50 samples each. This does not test removing the window.}
\end{frame}

\begin{frame}{Natural long text improves without closing the gap}
\centering
\begin{tabular}{lrrr}
\toprule
LongBench task & LoLCATs+ & LoLA & Mamba2\\
\midrule
MultiFieldQA & 6.1 & 30.8 & 29.3\\
HotpotQA & 4.4 & 11.8 & 30.0\\
MuSiQue & 1.5 & 3.4 & 11.1\\
TREC & 37.5 & 57.5 & 54.0\\
TriviaQA & 5.8 & 50.2 & 77.77\\
\midrule
\textbf{All 7 tasks: average} & 9.0 & \alert{27.8} & 36.1\\
\bottomrule
\end{tabular}\par
\medskip
LoLA $(512,1024)$ and LoLCATs+ $(1536,0)$: same nominal slot count.\\
+18.8 average points over the base; still 8.3 points behind Mamba2.
\papersource{Appendix C, Table 11, PDF p. 21. Task-specific benchmark scores, not uniformly accuracy. Full evaluation settings are not reported.}
\end{frame}

\begin{frame}{Bounded state does not ensure long-range accuracy}
\centering
\begin{tabular}{lrrrr}
\toprule
Large-cache LoLA (``4+'') & 2K & 4K & 8K & 16K\\
\midrule
SN-1 accuracy & 100\% & 99.0\% & 92.2\% & \alert{13.6\%}\\
Reported compression & $1.2\times$ & $2.4\times$ & $4.9\times$ & $9.8\times$\\
\bottomrule
\end{tabular}
\begin{itemize}
\item Distillation sequences were length 1024; 8K performance is useful extrapolation.
\item Compression improves with length while recall can collapse.
\item The paper proposes a direction toward lifelong context, not a demonstration of lifelong reliable memory.
\end{itemize}
\papersource{Appendix C, Table 10, PDF p. 21. 500 samples per length, except 16K: 250. Main Table 1 reports 100 at 4K for its largest cache.}
\end{frame}

\begin{frame}{Prefill overhead is visible; decode changes little}
\centering
\begin{tabular}{lrrr}
\toprule
Comparison: $\lambda=0\to512$ & Base & Sparse & Ratio\\
\midrule
TTFT, $\eta=512$ & 0.57 s & 0.63 s & $1.11\times$\\
TTFT, $\eta=64$ & 0.99 s & 1.46 s & $1.47\times$\\
Layer forward, $\eta=512$ & 4.2 ms & 9.7 ms & $2.31\times$\\
Layer forward, $\eta=64$ & 18.3 ms & 35.5 ms & $1.94\times$\\
\bottomrule
\end{tabular}
\begin{itemize}
\item RTX 4090; 4K prefill. TTFT excludes input loading; 100 trials.
\item Layer: batch 2, width 4096, 32 heads; 250 trials.
\item Decode after 1K prefill: 27.9--28.2 tok/s across tested settings.
\end{itemize}
\papersource{Appendix B, Fig. 4 and Tables 7--8, PDF pp. 16--18. Ratios recalculated here; these are not speedups over Llama.}
\end{frame}

\begin{frame}{Window and sparse budgets trade speed for recall}
\centering
\begin{tabular}{rrrrr}
\toprule
Window $\eta$ & Sparse $\lambda$ & TTFT $\downarrow$ & VRAM $\downarrow$ & VT accuracy $\uparrow$\\
\midrule
64 & 0 & 0.99 s & 18.1 GB & 0.0\%\\
64 & 512 & 1.46 s & 18.6 GB & 78.3\%\\
256 & 512 & 0.71 s & 18.7 GB & \alert{86.9\%}\\
512 & 0 & \alert{0.57 s} & 18.5 GB & 0.0\%\\
512 & 512 & 0.63 s & 19.0 GB & 72.2\%\\
\bottomrule
\end{tabular}\par
\medskip
Larger local windows reduce cache-update frequency.\\
Accuracy need not increase monotonically with the window size.
\begin{block}{Budget selection depends on the workload}
Sparse capacity helps recall; local capacity enables faster prefill. Both contribute to memory use.
\end{block}
\papersource{Selected cells transcribed from Appendix B, Figs. 4--6, PDF pp. 17, 19. LoLA-8B, RTX 4090, 4K context.}
\end{frame}

\begin{frame}{Persistent attention state is bounded by the budget}
\[
M_{\rm full}(t)=t(d_k+d_v)
\]
\[
M_{\rm LoLA}(t)=\min\{t(d_k+d_v),\ (\eta+\lambda)(d_k+d_v)+Dd_v+D\}
\]
\begin{itemize}
\item Counts \alert{elements per head}: explicit KV, hidden matrix, normalization vector.
\item With fixed budgets, the state saturates; total model VRAM is a different quantity.
\item Reported 4K total VRAM: about 18.1--19.0 GB across tested settings.
\end{itemize}
\papersource{Appendix B, Figs. 5 and 7, PDF pp. 19--20. The headline 4.6$\times$ ratio is author-reported; counting ambiguity is discussed in backup.}
\end{frame}

\begin{frame}{The strongest conclusion is narrower than a universal fix}
\begin{enumerate}
\item \textbf{Architecture scope:} only two LoLCATs-derived bases are tested. Extension to nonlinear test-time memory remains future work.
\item \textbf{Capacity scope:} cached pairs can be reconsidered; already compressed pairs cannot be recovered as raw KV.
\item \textbf{Evidence scope:} limited statistical reporting, mixed-source baselines, and missing details for some evaluations.
\end{enumerate}
\begin{block}{Practical reading}
Use the same-weight, matched-budget comparisons to assess the mechanism. Treat cross-model rankings and precise compression claims more cautiously.
\end{block}
\papersource{Sec. 5, PDF p. 10; Appendices A--C and H--I. Scope assessment by this presentation.}
\end{frame}

\begin{frame}{A useful rule: reserve exact memory for poor fits}
\begin{block}{Take-home message}
LoLA improves recall by protecting a compressed associative map from difficult KV pairs while keeping those pairs explicitly accessible.
\end{block}
\begin{itemize}
\item The allocation rule matters beyond the number of KV slots.
\item Sparse and compressed branches jointly support retrieval.
\item Bounded storage does not remove accuracy and latency trade-offs.
\end{itemize}
\medskip
\small Luke McDermott, Robert W. Heath Jr., and Rahul Parhi.\\
\emph{LoLA: Low-Rank Linear Attention With Sparse Caching.}\\
TMLR, June 2026. \href{https://arxiv.org/abs/2505.23666v3}{arXiv:2505.23666v3}.\\
\papersource{Main presentation: approximately 25 minutes. Backup: theory, metrics, interpretation, and reproducibility.}
\end{frame}

\appendix
\begin{frame}{Backup: low-rank error is about the kernel matrix}
\[
G_{ij}=e^{x_i^\top x_j},\quad \operatorname{rank}(\widehat G)\leq D
\quad\Longrightarrow\quad
\|G-\widehat G\|_F^2\geq\sum_{i>D}\sigma_i^2.
\]
\begin{columns}[T,onlytextwidth]
\column{0.49\textwidth}\centering\fig{0.97}{0.44}{figures/sv_d64_n2048.pdf}
\column{0.49\textwidth}\centering\fig{0.97}{0.44}{figures/err_d64_n2048.pdf}
\end{columns}
\smallskip
Scaled Gaussian inputs; $d_k=64,n=2048$. An algebraic SVD bound plus an empirical spectrum, not a universal task-accuracy lower bound.
\papersource{Appendix E, Eq. (21), PDF p. 24; Fig. 8(c,f), p. 25. Unnormalized kernel; vertical axes are logarithmic.}
\end{frame}

\begin{frame}{Backup: the full 4K RULER breakdown}
\centering
\small
\begin{tabular}{lrrrr}
\toprule
Task & LoLCATs+ & LoLA & Mamba2 & Llama\\
\midrule
MK1 & 12.8 & 39.4 & 40.3 & 100\\
MK2 & 1.4 & 11.6 & 13.8 & 100\\
MK3 & 0.4 & 7.6 & 5.5 & 98\\
MQ & 3.3 & 67.6 & 49.1 & 90.5\\
MV & 3.6 & 65.0 & 35.0 & 98.5\\
VT & 0.7 & 85.2 & 76.5 & 99.6\\
CWE & 3.0 & 45.9 & 32.9 & 95.2\\
FWE & 13.6 & 51.3 & 76.6 & 91.7\\
HotpotQA & 14.2 & 24.2 & 31.8 & 62.0\\
SQuAD QA & 14.0 & 53.9 & 35.5 & 81.5\\
\midrule
Average & 6.7 & 45.2 & 39.7 & 91.7\\
\bottomrule
\end{tabular}
\papersource{Table 2, PDF p. 7. LoLA $(128,768)$; LoLCATs+ $(896,0)$. Llama: 50 samples/task.}
\end{frame}

\begin{frame}{Backup: 8B language scores and metric definitions}
\centering
\begin{tabular}{lrrr}
\toprule
Metric & LoLCATs & LoLA & Llama\\
\midrule
PIQA accuracy & 81.0 & 81.6 & 81.1\\
ARC-e accuracy & 82.4 & 82.5 & 81.7\\
ARC-c normalized accuracy & 54.4 & 55.4 & 55.1\\
HellaSwag normalized accuracy & 79.1 & 79.8 & 79.3\\
WinoGrande accuracy & 73.6 & 73.6 & 73.9\\
MMLU, 5-shot & 54.9 & 57.6 & 68.0\\
Lambada accuracy & 67.6 & 74.9 & 73.0\\
\bottomrule
\end{tabular}\par
\medskip
Table 6's six-task average excludes MMLU. Its teacher-relative score does not establish parity across all seven metrics.
\papersource{Table 3, PDF p. 8; Table 6, p. 17. LoLA uses $(64,64)$. No uncertainty intervals are reported.}
\end{frame}

\begin{frame}{Backup: some v3 reporting details need qualification}
\begin{itemize}
\item \textbf{4K, large cache:} Table 1 gives 100; Tables 9--10 give 99.0. The reason is not stated.
\item \textbf{Table 6:} several 1B models are labeled 1.3B, unlike the main text and Table 5.
\item \textbf{Cross-teacher comparison:} Mamba2-Llama3's 43.2 is MMLU in Table 3 but appears under Lambada in Table 6.
\item \textbf{Window versus chunk:} $\eta$ and $C$ are used inconsistently across the method and efficiency discussion.
\end{itemize}
\medskip
These issues do not erase the matched-budget recall gain; they limit exact reproduction and broader comparisons.
\papersource{Tables 1, 3, 5, 6, 9--10, PDF pp. 7--8, 16--17, 21; Sec. 3 and Appendix B. Reading audit, not author claims.}
\end{frame}

\begin{frame}{Backup: the 4.6$\times$ ratio is not independently resolved}
\begin{itemize}
\item Authors report 4.6$\times$ smaller cache at 4K for $(\eta,\lambda)=(256,256)$.
\item Using their per-head formula, $d_k=128,D=256$, and \emph{assuming} $d_v=128$ gives:
\end{itemize}
\[
\frac{4096(128+128)}{512(128+128)+256\cdot128+256}=6.39.
\]
\begin{block}{How to report this responsibly}
Retain 4.6$\times$ as an author-reported number. Resolve physical window length and head-sharing conventions before claiming an exact implementation-level ratio.
\end{block}
\papersource{Abstract; Sec. 4.1, pp. 7--8; Appendix B, pp. 19--20; head dimensions: Appendix E, p. 24. Conditional calculation by this deck.}
\end{frame}

\begin{frame}{Backup: implementation and evidence checklist}
\begin{columns}[T,onlytextwidth]
\column{0.49\textwidth}
\textbf{For an implementation}
\begin{itemize}
\item Score before writing to $H$.
\item Handle empty state and zero denominator.
\item Enforce exact Top-$\lambda$ capacity, including ties.
\item Preserve causal masks and shared normalization.
\end{itemize}
\column{0.48\textwidth}
\textbf{For this reading}
\begin{itemize}
\item Same-version PDF and author TeX.
\item Main text and Appendices A--I covered.
\item Original figures, with page locators.
\item No model experiments reproduced or repository audited.
\end{itemize}
\end{columns}
\medskip
\small Author's minimal code link, cited in Appendix H:\\
\href{https://github.com/lukemcdermotttt/LoLA-release}{github.com/lukemcdermotttt/LoLA-release}
\papersource{Appendix H, PDF pp. 27--28. Complete Chinese notes and a portable build helper accompany this deck.}
\end{frame}

\end{document}
