<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://active-ai-reading.github.io/feed.xml" rel="self" type="application/atom+xml"/><link href="https://active-ai-reading.github.io/" rel="alternate" type="text/html" hreflang="en"/><updated>2026-10-21T15:51:45+00:00</updated><id>https://active-ai-reading.github.io/feed.xml</id><title type="html">Active AI Reading</title><subtitle>A course where we read AI papers actively: we summarize, critique, redraw, reimplement and share them, written by the students. </subtitle><entry><title type="html">Editing the methods of</title><link href="https://active-ai-reading.github.io/posts/2026/copyedit-matryoshka-lm-suites/" rel="alternate" type="text/html" title="Editing the methods of"/><published>2026-10-21T00:00:00+00:00</published><updated>2026-10-21T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/copyedit-matryoshka-lm-suites</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/copyedit-matryoshka-lm-suites/"><![CDATA[ <h2 id="what-i-changed-and-why">What I changed and why</h2> <p>The original writing had 2 points that I found to be unclear:</p> <ol> <li>What is $e_{\theta_m}$? What’s its dimension? whats its relation to $e_{\theta_{m-1}}$? I found the answers to be that while \theta_m contains \theta_{m-1}, the embedding layers are independent, and their dimension is the difference in dimension between different blocks.</li> <li>The original writing “Each sub-model $T_{\theta_m}$ is a separate Transformer stack with its own hidden dimension (or width)” is I belive confusing; the following formulation from the main text indicates that the difference in dimension between a model and its direct sub-model is only within the new layers. I made this clearer by rewriting this using blocks where dimension is consistent, and those blocks are composed into different sub-models</li> </ol> <h2 id="before-and-after">Before and after</h2> <div class="before-after"> <div class="before"><span class="label">Before</span> <p> **Modeling** A Transformer [Vaswani et al., 2017] language model maps an input sequence $x \in [1, V]^L$ to output representations $o_\theta(x) \in \mathbb{R}^{L \times D}$ via an input embedding $e_\theta$ and a stack of Transformer blocks $T_\theta$ of hidden dimension $D$. A linear LM head $W$ maps each position's representation $o_\theta(x)$ to logits $l \in \mathbb{R}^V$, and the parameters $(\theta, W)$ are trained to minimize the next-token prediction cross-entropy loss. &lt;\p&gt; A conventional suite of $M$ models uses $M$ independent parameter sets $\{(\theta_m, W_m)\}_{m=1}^{M}$. We instead enforce a strict nesting of parameters with the exception of the LM head: $$ \theta_1 \subset \theta_2 \subset \cdots \subset \theta_M = \theta. $$ Each sub-model $T_{\theta_m}$ is a separate Transformer stack with its own hidden dimension (or width) $D_m$, number of layers (or depth) $n_m$, and a LM head $W_m$. We require strictly increasing hidden dimensions $D_1 \le D_2 \le \cdots \le D_M$. Unlike standard early exiting, which assumes a fixed hidden dimension across exits, the Matryoshka design lets each sub-model use a width tailored to its size, giving more flexibility in the architectural design at every sub-model size compared to early-exit methods [Elhoushi et al., 2024]. Moreover, because $\theta_m \subset \theta_{m+1}$, running the full architecture produces all $M$ sub-model logits in a single forward pass while activating fewer parameters and writing less KV cache than $M$ independent forward passes, facilitating distillation during training and multi-model inference methods such as speculative decoding. &lt;/div&gt; <div class="after"><span class="label">After</span> <p> A Transformer [Vaswani et al., 2017] language model maps a token sequence $x \in [1, V]^L$ to output representations $o_\theta(x) \in \mathbb{R}^{L \times D}$: a learned embedding table $e \in \mathbb{R}^{V \times D}$ maps each token to a vector of width $D$, and a stack of Transformer layers $T_\theta$ of hidden dimension $D$ processes the result. A linear LM head $W \in \mathbb{R}^{V \times D}$ maps output representations $o_\theta(x)$ to next-token logits $l \in \mathbb{R}^{V \times L}$. $(e, \theta, W)$ are trained to minimize the next-token prediction cross-entropy loss. A conventional suite trains $M$ such models independently. </p> <p> A Matryoshka suite instead stacks $M$ *blocks* and composes $M$ models of different sizes from them. Block $m$ consists of a stack $T_{\theta_m}$ of $n_m$ Transformer layers of width $D_m$, We require strictly increasing hidden dimensions $D_1 \le D_2 \le \cdots \le D_M$. Each block input is constructed using the previous block's output together with its own residual embedding table $e_m \in \mathbb{R}^{V \times (D_m - D_{m-1})}$ (where $D_0 = 0$) applied to the original token sequence $x$. *Sub-model* $m$ is the composition of blocks $1, \dots, m$, followed by its own LM head $W^m \in \mathbb{R}^{V \times D_m}$. It is therefore $N_m = n_1 + \cdots + n_m$ layers deep, and its layers do not share a single width: the first $n_1$ have width $D_1$, the next $n_2$ have width $D_2$, and so on up to its output width $D_m$. This dynamic width allows more flexibility in the architectural design compared to early-exit methods [Elhoushi et al., 2024], each block can use a width suited to the sub-model it completes. &lt;\p&gt; <p> Using a Matryoshka suite, one forward pass through the largest sub-model passes every exit and yields the logits of all $M$ sub-models, while activating fewer parameters and writing less KV cache than $M$ forward passes through independent models. Additionally, this single-pass design reduces the overhead associated with distillation during training and multi-model inference methods such as speculative decoding. &lt;\p&gt; &lt;/div&gt; &lt;/div&gt; ## The general rule What rule did you apply that others could use in their own writing? (e.g. "Lead with the finding, not the method.") </p></p></div></p></div></div>]]></content><author><name></name></author><summary type="html"><![CDATA[sub-models are made of blocks]]></summary></entry><entry><title type="html">Matryoshka Language Model Suites in a thread</title><link href="https://active-ai-reading.github.io/posts/2026/social-matryoshka-lm-suites/" rel="alternate" type="text/html" title="Matryoshka Language Model Suites in a thread"/><published>2026-10-21T00:00:00+00:00</published><updated>2026-10-21T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/social-matryoshka-lm-suites</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/social-matryoshka-lm-suites/"><![CDATA[<h2 id="x--twitter">X / Twitter</h2> <blockquote> <p>Three language models. One training run. 36% less training compute.</p> <p>Matryoshka nests 500M, 1.5B and 3B LMs together and gets nearly the same benchmark accuracy as training each one separately.</p> </blockquote> <blockquote> <p>2/ Think nesting dolls, but for Transformers.</p> <p>Each larger LM builds on the smaller one. Each size has its own width, depth and output head, so you can deploy the 500M or 1.5B model without loading the full 3B model.</p> </blockquote> <blockquote> <p>3/ The clever part: the 3B LM teaches the smaller ones <em>during the same training run</em>. No separate teacher pass.</p> <p>At inference, shared layers and KV cache give 26% higher greedy speculative-decoding throughput than a separate 500M/3B pair in the reported A100 test.</p> </blockquote> <blockquote> <p>4/ And the accuracy cost? At most 0.5 percentage points on average across 7 zero-shot benchmarks, at each model size.</p> <p>Three deployable models. 38% fewer total parameters to store.</p> <p>Paper: https://arxiv.org/abs/2608.09703</p> </blockquote> <h2 id="bluesky">Bluesky</h2> <blockquote> <p>Why train 3 LMs separately? Matryoshka nests 500M, 1.5B and 3B models in one stack: 36% less training compute, with average zero-shot accuracy within 0.5 points of separate models. Shared KV cache also boosts speculative-decoding throughput by 26% in an A100 test. https://arxiv.org/abs/2608.09703</p> </blockquote> <h2 id="mastodon">Mastodon</h2> <blockquote> <p>Three LMs. One training run.</p> <p>Godey &amp; Artzi’s Matryoshka suite nests 500M, 1.5B and 3B models instead of training each separately.</p> <p>Result: 36% less training compute, average benchmark accuracy within 0.5 points, and 26% higher greedy speculative-decoding throughput than a separate draft/verifier pair in an A100 test.</p> <p>Each model can still be deployed independently.</p> <p>https://arxiv.org/abs/2608.09703 #NLProc #MachineLearning</p> </blockquote> <h2 id="linkedin">LinkedIn</h2> <blockquote> <p>If you train language models in several sizes, why train each one from scratch?</p> <p><em>Matryoshka Language Model Suites</em>, by Nathan Godey and Yoav Artzi, nests 500M, 1.5B and 3B models into one architecture. Train them together, then deploy any size independently, with its own width, depth and KV cache.</p> <p><strong>The payoff:</strong> 36% less total training compute, while average accuracy stays within 0.5 percentage points of separately trained models across seven zero-shot benchmarks. Shared layers also make speculative decoding more efficient: <strong>26% higher greedy throughput</strong> than a separate 500M/3B draft and verifier pair in the reported A100 setup.</p> <p>The bigger idea: optimize the <em>whole model family</em>, not just the largest checkpoint. The results are promising, though so far tested only up to 3B parameters.</p> <p>Paper: https://arxiv.org/abs/2608.09703</p> </blockquote>]]></content><author><name></name></author><summary type="html"><![CDATA[Social media posts for Matryoshka Language Model Suites.]]></summary></entry><entry><title type="html">critique of matryoshka paper (GA26)</title><link href="https://active-ai-reading.github.io/posts/2026/critique-matryoshka-language-model-suites/" rel="alternate" type="text/html" title="critique of matryoshka paper (GA26)"/><published>2026-10-20T00:00:00+00:00</published><updated>2026-10-20T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/critique-matryoshka-language-model-suites</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/critique-matryoshka-language-model-suites/"><![CDATA[ <h2 id="summary-of-the-claims">Summary of the claims</h2> <p>The paper tells a story about training a suite of stand-alone models more efficiently by stacking them and training end-to-end. It then makes a point about distiliation in this setup being cheap.</p> <h2 id="strengths">Strengths</h2> <p>I felt the article was short, concice and readable.</p> <h2 id="weaknesses">Weaknesses</h2> <p>It is not clear if distilation is crucial to performance. The main figure could include less information.</p> <h2 id="how-it-could-have-been-improved">How it could have been improved</h2> <p>Show or talk about results for a vanilla-matryshuka setup(no purple arrows). If that makes sense, show a simpler figure of the architecture and make your main claim about efficiency (3.2B instead of 5.2B. 38%~ less params -&gt; roughly the same in compute. perhaps you don’t need a figure?). Otherwise, in the case the purple arrows are crucial, express that.</p> <h2 id="verdict">Verdict</h2> <p>I liked the paper. The technique was clear even for a novice AI reader (myself). The technique itself is cool.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[The narative about saving on parameters is diluted by a secondary point about cheap distiliation.]]></summary></entry><entry><title type="html">A better Figure 2: the threshold the bar chart hides</title><link href="https://active-ai-reading.github.io/posts/2026/a-better-figure-2/" rel="alternate" type="text/html" title="A better Figure 2: the threshold the bar chart hides"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/a-better-figure-2</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/a-better-figure-2/"><![CDATA[<h2 id="the-original">The original</h2> <figure> <picture> <source class="responsive-img-srcset" srcset="/assets/img/papers/cross-lingual-knowledge-pretraining/figure2-480.webp 480w,/assets/img/papers/cross-lingual-knowledge-pretraining/figure2-800.webp 800w,/assets/img/papers/cross-lingual-knowledge-pretraining/figure2-1400.webp 1400w," type="image/webp" sizes="95vw"/> <img src="/assets/img/papers/cross-lingual-knowledge-pretraining/figure2.png" class="img-fluid rounded z-depth-1" width="100%" height="auto" loading="lazy" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> <figcaption class="caption">Figure 2 of the paper (CC BY 4.0): CLeq for the English₁–English₂ clone setup under different conditions.</figcaption> </figure> <p>Figure 2 mixes two kinds of things in one bar chart: <strong>conditions</strong> (baseline, same data, same initialization) and <strong>points on a dial</strong> (soft-mapping at 20% and 99.9%, where a fraction <em>p</em> of each token pair’s embedding is shared). The text’s main claim about this experiment is a <em>sharp threshold</em>: “At 20% tying, generalization remains weak with CLeq = 8.6%; at 50% tying it jumps to 82.7%”. But the 50% point, the one that shows the jump, is not in the figure.</p> <p>The full sweep is in the appendix (the soft-mapping table), and it covers <strong>two settings</strong>: the clone languages, and English–WWT-Arabic. Plotted together, they tell a better story.</p> <h2 id="the-redesign">The redesign</h2> <p>Each line is normalized by its own value at full sharing (p = 100%), so both fit on one axis: “how much of the achievable transfer do you get when sharing a fraction <em>p</em> of the embedding?” Hover a point for the raw CLeq.</p> <pre><code class="language-chartjs">{
  "type": "line",
  "data": {
    "labels": ["0%", "20%", "50%", "90%", "99%", "99.9%", "100%"],
    "datasets": [
      {
        "label": "English₁–English₂ (clone languages)",
        "data": [-2.6, 8.6, 82.7, 95.8, 99.1, 99.0, 100],
        "borderColor": "#2f6fde",
        "backgroundColor": "#2f6fde",
        "borderWidth": 3,
        "pointRadius": 5,
        "tension": 0
      },
      {
        "label": "English–WWT-Arabic (natural pair)",
        "data": [null, 7.9, 13.5, 76.2, 83.3, 81.0, 100],
        "borderColor": "#e8590c",
        "backgroundColor": "#e8590c",
        "borderWidth": 3,
        "pointRadius": 5,
        "tension": 0
      }
    ]
  },
  "options": {
    "responsive": true,
    "plugins": {
      "title": { "display": true, "text": "Share of the achievable transfer vs. fraction of embedding shared" },
      "legend": { "position": "bottom" }
    },
    "scales": {
      "x": { "title": { "display": true, "text": "Fraction p of each token pair's embedding that is tied (not to scale)" } },
      "y": { "min": -10, "max": 105, "title": { "display": true, "text": "% of CLeq at full sharing" } }
    }
  }
}
</code></pre> <table> <thead> <tr> <th>p (tied)</th> <th>0%</th> <th>20%</th> <th>50%</th> <th>90%</th> <th>99%</th> <th>99.9%</th> <th>100%</th> </tr> </thead> <tbody> <tr> <td>En₁–En₂, raw CLeq</td> <td>−2.6%</td> <td>8.6%</td> <td>82.7%</td> <td>95.8%</td> <td>99.1%</td> <td>99.0%</td> <td>100%</td> </tr> <tr> <td>En–WWT-Ar, raw CLeq</td> <td>—</td> <td>1.0%</td> <td>1.7%</td> <td>9.6%</td> <td>10.5%</td> <td>10.2%</td> <td>12.6%</td> </tr> </tbody> </table> <h2 id="what-the-new-figure-shows-that-the-old-one-didnt">What the new figure shows that the old one didn’t</h2> <ul> <li><strong>The cliff is real, and it’s in a different place for the two settings.</strong> Clone languages jump between 20% and 50% sharing. The natural pair is still at 13% of its ceiling at 50%, and only jumps between 50% and 90%. Natural languages need much more sharing before knowledge flows.</li> <li><strong>Reserving a few language-specific dimensions is cheap.</strong> At p = 90% (96 free dimensions out of 960) the natural pair keeps 76% of the benefit, which supports the paper’s “soft mapping” proposal for restoring language identity.</li> <li><strong>It invites the right next question:</strong> where exactly between 50% and 90% is the WWT cliff, and why is it later?</li> </ul> <h2 id="design-decisions">Design decisions</h2> <ul> <li><strong>A line, not bars</strong>, because <em>p</em> is a dial, not a set of categories.</li> <li><strong>Normalize each series</strong> so a 12.6%-max curve and a 100%-max curve can share an axis. The raw numbers stay in the table and tooltips.</li> <li><strong>Conditions that aren’t on the dial</strong> (same data, same initialization) belong in a separate, small panel or table, not in the same bar list.</li> <li><strong>Honest axis:</strong> the x-axis is evenly spaced but the values are not, so it says “not to scale”. Plotting the number of free dimensions on a log axis would be a scale-true alternative; try it!</li> </ul> <p>Data: the appendix soft-mapping table and Figure 2 of <a class="citation" href="#gaber2026crosslingual">(Gaber et al., 2026)</a>.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[The paper's key soft-mapping result is a curve with a cliff. Drawn as bars, the cliff disappears.]]></summary></entry><entry><title type="html">Critique: a clean diagnosis, a partial cure</title><link href="https://active-ai-reading.github.io/posts/2026/critique/" rel="alternate" type="text/html" title="Critique: a clean diagnosis, a partial cure"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/critique</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/critique/"><![CDATA[<h2 id="the-claims">The claims</h2> <ol> <li>Cross-lingual knowledge compartmentalization <strong>already exists after pretraining</strong> (CLeq 0.9–5.9% across En–Ar, En–Ru, 360M and 7B), and code-switching or activation alignment barely help.</li> <li><strong>Disjoint token spaces are sufficient</strong> to cause it: identical English copies with shifted token IDs show CLeq ≈ 0.</li> <li>Pretraining <strong>drifts apart</strong> tokens that start aligned (same-initialization CLeq 78.6%, below the 100% of tied embeddings).</li> <li><strong>Word-wise translation (WWT)</strong> into a shared token space substantially improves transfer (to 12.5–23.3%), and only when the mapping is semantically faithful.</li> </ol> <h2 id="strengths">Strengths</h2> <ul> <li><strong>The clone-language design isolates one variable.</strong> English₁–English₂ removes script, grammar, culture and data differences at once, which is exactly what you need to make a causal claim about tokens. Combining it with fictive-fact injection at known doses <a class="citation" href="#allenzhu2024physics31">(Allen-Zhu &amp; Li, 2024; Chang et al., 2024)</a> is a genuinely clean methodology.</li> <li><strong>The metric normalizes away competence.</strong> CLeq divides cross-lingual gains by native gains, so a bigger model that learns everything better doesn’t look like it transfers better. This is what lets the paper push back on “alignment emerges with scale” <a class="citation" href="#li2024prealign">(Li et al., 2024)</a>.</li> <li><strong>The controls are the right ones.</strong> Shuffled dictionary and transliteration share tokens without sharing meaning, and both fail. That turns “shared tokens help” into “shared <em>meanings</em> help”, a sharper and more useful claim.</li> <li><strong>Ceiling calibration.</strong> Soft mapping shows that CLeq can actually reach ~100%, so low values reflect real compartmentalization rather than a broken metric.</li> </ul> <h2 id="weaknesses">Weaknesses</h2> <ul> <li><strong>“Sufficient” is shown, “main cause” is argued.</strong> Clones prove disjoint tokens <em>can</em> cause compartmentalization. In natural pairs, merging tokens recovers only 12.6% (Arabic) to 23.3% (Russian), so most of the gap remains. The conclusion says tokenization is “a substantial part of the story”; the title and abstract read stronger than that.</li> <li><strong>The metric’s linearity matters more than the paper admits.</strong> CLeq is a ratio of linear-regression slopes, while acquisition is log-like. A quick simulation (<a href="/posts/2026/reimplementing-cleq/">reimplementation post</a>) suggests the ratio is exact at 0% and 100% but can overstate intermediate transfer. That doesn’t change the paper’s main contrasts (near-zero vs. clearly positive), but it makes “12.6% of native efficiency” hard to interpret literally.</li> <li><strong>Translationese.</strong> The Arabic corpus is machine-translated English. The authors acknowledge it and replicate with native Russian, which helps, but the main 7B result is on translated Arabic.</li> <li><strong>Small differences, single runs.</strong> Each CLeq value is one pretraining run. Differences like 2.2% (code-switching) vs 2.5% (alignment) vs 0.9% (baseline) are within the noise level suggested by simulations of this design; the appendix’s significance tests cover the headline comparisons, not every bar.</li> <li><strong>The WWT cost is real.</strong> About 30% more tokens for Arabic means 23% fewer Arabic documents under a fixed budget and slower inference. The positive perplexity result is encouraging, but a practitioner needs Arabic-side quality too (it’s in an appendix).</li> <li><strong>Simple facts only.</strong> 2,048 single-attribute facts. Whether multi-hop or relational knowledge behaves the same is open.</li> </ul> <h2 id="how-it-could-have-been-improved">How it could have been improved</h2> <ul> <li>Report <strong>seeds or bootstrap intervals</strong> for every CLeq bar, not only headline comparisons.</li> <li>Add a <strong>curve-aware estimator</strong> (e.g. fit the log-like curve and solve for the exposure-equivalent) as a robustness column next to linear CLeq.</li> <li>Test a <strong>byte-level or tokenizer-free model</strong> in the clone setup. The paper raises this question itself; even one small run would tell us whether the barrier is token <em>identity</em> or something deeper.</li> <li>Lead with the <strong>diagnosis</strong> (Sections 4–5) in Figure 1, and present WWT as evidence for the mechanism rather than as the headline fix.</li> </ul> <h2 id="verdict">Verdict</h2> <p><strong>Accept.</strong> The clone-language + fictive-fact methodology is a reusable tool, the sufficiency result is clean and surprising, and the semantic controls make the mechanism precise. The framing should be toned down from “why pretraining fails” to “disjoint tokens are one sufficient cause”.</p> <p><strong>Worth pursuing?</strong> Yes. The most promising direction is the gap the paper exposes: natural languages need far more sharing than clones before knowledge flows (see the <a href="/posts/2026/a-better-figure-2/">redrawn Figure 2</a>). Understanding <em>why</em> is a project in itself.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Strengths, weaknesses, what would have made it stronger, and a verdict.]]></summary></entry><entry><title type="html">Fictive facts: how to know exactly what a model saw</title><link href="https://active-ai-reading.github.io/posts/2026/fictive-facts/" rel="alternate" type="text/html" title="Fictive facts: how to know exactly what a model saw"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/fictive-facts</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/fictive-facts/"><![CDATA[<h2 id="why-this-matters">Why this matters</h2> <p>Suppose you want to know whether reading a fact in Arabic helps a model recall it in English. You need to know <strong>how many times the model saw that fact, in which language</strong>. For real facts (“Paris is the capital of France”) this is hopeless: the pretraining corpus has billions of documents, the fact appears in countless phrasings, and counting is at best an estimate <a class="citation" href="#elazar2024whatsbigdata">(Elazar et al., 2024)</a>.</p> <h2 id="the-idea-invent-the-facts">The idea: invent the facts</h2> <p>Instead of counting real facts, <strong>make up new ones</strong> and insert them into the training data yourself:</p> <ol> <li><strong>Invent entities that cannot exist in the corpus.</strong> “Cultramive is a company that sells silver-plated bicycles.” No document on the web mentions Cultramive, so anything the model knows about it came from you.</li> <li><strong>Write each fact many ways.</strong> Generate many short documents that paraphrase the same fact, so the model learns the <em>fact</em>, not one sentence. Do it in each language you care about.</li> <li><strong>Control the dose.</strong> Decide per fact how many documents to insert in each language. This paper uses every combination of {0, 20, 100, 1000} exposures in language A × the same in language B.</li> <li><strong>Test with held-out questions.</strong> Ask multiple-choice questions written separately from the training documents (“What does Cultramive sell?”), so a correct answer means recall, not copy-paste.</li> </ol> <p>Now every fact has a known recipe (say, 100 exposures in English, 20 in Arabic) and a measured outcome (accuracy on its English questions). That turns “does knowledge transfer?” into a regression you can fit.</p> <h2 id="two-details-that-make-it-work">Two details that make it work</h2> <ul> <li><strong>Check that the facts are learnable at all.</strong> With 0 injections accuracy should sit at chance (25% for four options) and rise with exposures. The paper checks this first, and finds a log-like learning curve.</li> <li><strong>Keep the injected data tiny.</strong> The fictive documents are a sliver of the training tokens, so they don’t change what the model learns about the language itself.</li> </ul> <h2 id="where-this-comes-from">Where this comes from</h2> <p>Controlled injection of synthetic facts was popularized by the <em>Physics of Language Models</em> series <a class="citation" href="#allenzhu2024physics31">(Allen-Zhu &amp; Li, 2024)</a> and by studies of how facts are acquired during pretraining <a class="citation" href="#chang2024factual">(Chang et al., 2024)</a>. This paper’s contribution is to combine it with <strong>two languages</strong> and <strong>cloned vocabularies</strong>, so the dose in each language and the only difference between the languages are both under control.</p> <h2 id="try-it-yourself">Try it yourself</h2> <p>You can run a miniature version on a laptop: train a small GPT on TinyStories, insert 50 invented facts at different rates, and plot accuracy against exposures. The <a href="/posts/2026/reimplementing-cleq/">reimplementation post</a> simulates the analysis side.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[A five-minute lesson on the trick that makes controlled knowledge experiments in pretraining possible.]]></summary></entry><entry><title type="html">Five follow-ups worth doing</title><link href="https://active-ai-reading.github.io/posts/2026/follow-ups-worth-doing/" rel="alternate" type="text/html" title="Five follow-ups worth doing"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/follow-ups-worth-doing</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/follow-ups-worth-doing/"><![CDATA[<p>Good follow-ups do one of three things: <strong>test an assumption</strong> the paper relies on, <strong>explain a gap</strong> it reveals, or <strong>turn the finding into something useful</strong>. Ordered from cheapest to most ambitious:</p> <h2 id="1-is-cleq-linear-enough-a-weekend-no-gpus">1. Is CLeq linear enough? (a weekend, no GPUs)</h2> <p><strong>Question:</strong> how much does the linear-slope ratio distort intermediate transfer values, given the log-like learning curve? <strong>Experiment:</strong> simulate the exact design (16 groups × 128 facts, doses {0, 20, 100, 1000}) under different curve shapes and known true transfer, and compare linear CLeq to a curve-aware estimator. A first pass is in the <a href="/posts/2026/reimplementing-cleq/">reimplementation post</a>. <strong>Why:</strong> every number in the paper goes through this metric. If it’s biased in a predictable way, a correction table makes all future CLeq numbers more interpretable.</p> <h2 id="2-where-is-the-wwt-cliff-a-few-small-runs">2. Where is the WWT cliff? (a few small runs)</h2> <p><strong>Question:</strong> with clone languages, sharing 50% of each embedding already gives 83% of full transfer. For English–WWT-Arabic, 50% gives only 13%, and 90% gives 76% (see the <a href="/posts/2026/a-better-figure-2/">redrawn Figure 2</a>). Why does the natural pair need so much more sharing? <strong>Experiment:</strong> sweep p between 50% and 90% at 360M, and repeat with WWT-Russian. Then vary dictionary quality (e.g. drop 10–50% of entries to transliteration) to see whether the cliff moves. <strong>Why:</strong> this is the gap between “tokens suffice in the lab” and “tokens are the fix in practice”.</p> <h2 id="3-does-a-byte-level-model-escape-one-clean-comparison">3. Does a byte-level model escape? (one clean comparison)</h2> <p><strong>Question:</strong> is the barrier token <em>identity</em>, or something any input encoding would show? <strong>Experiment:</strong> run the English₁–English₂ setup with a byte-level model, where the second copy uses a byte-level cipher (shifted byte values). Same data, same facts. <strong>Why:</strong> the paper explicitly leaves this open, and the answer changes whether tokenizer-free architectures are worth pursuing for multilinguality.</p> <h2 id="4-more-than-two-languages-a-real-project">4. More than two languages (a real project)</h2> <p><strong>Question:</strong> if Arabic, Russian and Hebrew are all mapped into English tokens, do they interfere, and does knowledge flow <em>between</em> the non-English languages through English? <strong>Experiment:</strong> trilingual and quadrilingual runs with WWT for all non-English languages, measuring CLeq for every pair. <strong>Why:</strong> the paper’s own limitations section names this as open, and it’s what a real multilingual model would need.</p> <h2 id="5-beyond-simple-facts-a-thesis-chapter">5. Beyond simple facts (a thesis chapter)</h2> <p><strong>Question:</strong> does compartmentalization look the same for relational and multi-hop knowledge (“Cultramive’s founder studied at…”) or for skills like arithmetic? <strong>Experiment:</strong> extend the fictive dataset with two-hop facts and with a small synthetic skill, injected in one language and tested in the other. <strong>Why:</strong> the abstract talks about “knowledge”, but the evidence is single-attribute facts. Skills transferring (or not) would matter even more for practice.</p> <h2 id="how-to-judge-a-follow-up">How to judge a follow-up</h2> <p>Before proposing one, ask: <em>If it works, would the authors want to cite it? If it fails, would we learn something?</em> All five above pass both tests.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Concrete next experiments, from a weekend project to a thesis chapter, and why each is worth the time.]]></summary></entry><entry><title type="html">Where this paper comes from: a literature map</title><link href="https://active-ai-reading.github.io/posts/2026/literature-map/" rel="alternate" type="text/html" title="Where this paper comes from: a literature map"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/literature-map</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/literature-map/"><![CDATA[<p>This paper sits where four lines of work meet. Knowing them makes it much easier to see what’s new.</p> <h2 id="1-the-cross-lingual-knowledge-gap-the-problem">1. The cross-lingual knowledge gap (the problem)</h2> <p>Multilingual models answer the same factual question differently depending on the language. <strong>Qi et al.</strong> measured this inconsistency directly <a class="citation" href="#qi2023consistency">(Qi et al., 2023)</a>, and <strong>ECLeKTic</strong> built a benchmark around knowledge that exists in one language’s sources and must be transferred to others <a class="citation" href="#goldman2025eclektic">(Goldman et al., 2025)</a>. Earlier, <strong>Chang et al.</strong> studied the “curse of multilinguality” at the level of language modeling across 250 languages <a class="citation" href="#chang2023curse">(Chang et al., 2024)</a>. All of these observe <em>finished</em> models; none can say where the gap comes from. That’s the opening this paper takes.</p> <h2 id="2-cloned-languages-as-a-laboratory-the-method-part-1">2. Cloned languages as a laboratory (the method, part 1)</h2> <p>The trick of duplicating a vocabulary to create a “fake second language” goes back at least to <strong>K et al. (2020)</strong>, who used it to ask what makes multilingual BERT cross-lingual <a class="citation" href="#k2020mbert">(K et al., 2020)</a>. <strong>Schäfer et al. (2024)</strong> used cloned languages to study language imbalance <a class="citation" href="#schafer2024imbalance">(Schäfer et al., 2024)</a>, and <strong>Howe &amp; Wingate (2026)</strong> to study compartmentalization in aggregate terms <a class="citation" href="#howe2026compartmentalization">(Howe &amp; Wingate, 2026)</a>. This paper’s addition is to measure <em>knowledge</em> in the clone setup, fact by fact.</p> <h2 id="3-injecting-fictive-facts-the-method-part-2">3. Injecting fictive facts (the method, part 2)</h2> <p>To know exactly how often a model saw a fact, insert facts that cannot exist anywhere else. <strong>Physics of Language Models 3.1</strong> made this standard for studying knowledge storage <a class="citation" href="#allenzhu2024physics31">(Allen-Zhu &amp; Li, 2024)</a>, and <strong>Chang et al. (2024)</strong> used it to trace knowledge acquisition during pretraining <a class="citation" href="#chang2024factual">(Chang et al., 2024)</a>. (Why counting real facts is hard: <a class="citation" href="#elazar2024whatsbigdata">(Elazar et al., 2024)</a>.) See also <a href="/posts/2026/fictive-facts/">the fictive-facts explainer</a>.</p> <h2 id="4-tokens-scripts-and-vocabulary-overlap-the-mechanism">4. Tokens, scripts and vocabulary overlap (the mechanism)</h2> <p>Does sharing subwords matter for transfer? The classic answer was “surprisingly little”: <strong>Conneau et al.</strong> and <strong>Artetxe et al.</strong> found that cross-lingual <em>structure</em> emerges without any shared vocabulary <a class="citation" href="#conneau2020emerging">(Conneau et al., 2020; Artetxe et al., 2020)</a>. More recently <strong>Kallini et al.</strong> found that overlap, especially overlap with matching meanings, does help <a class="citation" href="#kallini2025falsefriends">(Kallini et al., 2025)</a>, and <strong>RomanSetu</strong> proposed romanizing text to unlock multilingual ability <a class="citation" href="#j2024romansetu">(J et al., 2024)</a>.</p> <p>This paper reconciles the two camps: <strong>structure</strong> does emerge without shared tokens (their embedding analysis agrees with Conneau et al.), but <strong>knowledge</strong> does not follow it. And their transliteration control (−0.3%) explains why romanization helps mainly between related languages, where cognates supply shared meanings.</p> <h2 id="the-one-it-argues-with">The one it argues with</h2> <p><strong>PreAlign</strong> reports that cross-lingual knowledge gaps narrow with scale and that alignment emerges spontaneously in larger models <a class="citation" href="#li2024prealign">(Li et al., 2024)</a>. This paper finds scale helps only a little (0.9% → 5.9% from 360M to 7B) and not at all in the clone setup, and attributes the disagreement to measuring a normalized ratio rather than absolute accuracy. Reading both papers side by side is a good exercise in how metric choices shape conclusions.</p> <h2 id="bigger-picture">Bigger picture</h2> <p>The conclusion connects to the <strong>Platonic Representation Hypothesis</strong>, the idea that models trained on different data and modalities converge toward similar representations <a class="citation" href="#huh2024platonic">(Huh et al., 2024)</a>. This paper is a caution: similar structure in two token spaces is not enough for knowledge to flow between them. And it points to <strong>tokenizer-free models</strong> such as ByT5 <a class="citation" href="#xue2022byt5">(Xue et al., 2022)</a> as an untested way around the problem.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[The four lines of work it builds on, and the one it argues with.]]></summary></entry><entry><title type="html">Reimplementing CLeq: what does 12.6% actually mean?</title><link href="https://active-ai-reading.github.io/posts/2026/reimplementing-cleq/" rel="alternate" type="text/html" title="Reimplementing CLeq: what does 12.6% actually mean?"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/reimplementing-cleq</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/reimplementing-cleq/"><![CDATA[<h2 id="what-i-reimplemented">What I reimplemented</h2> <p>The paper’s metric, CLeq, is estimated from one regression over all 2,048 fictive facts:</p> \[\mathrm{acc}_A(f) = \alpha + \beta_A\, N_A(f) + \beta_B\, N_B(f) + \varepsilon, \qquad \mathrm{CLeq}[B \to A] = 100 \times \frac{\beta_B}{\beta_A}\] <p>where $N_A(f)$ and $N_B(f)$ are how many times fact $f$ was seen in each language. Pretraining models is out of reach for a homework, but the <em>measurement</em> can be tested: generate accuracies where I <strong>know</strong> the true transfer, run the paper’s estimator, and see what comes out.</p> <p><strong>The setup mirrors the paper:</strong> 16 groups of 128 facts, each group at one combination of ${0, 20, 100, 1000}$ exposures per language; 4-option multiple-choice questions (25% chance); a log-like learning curve, as the paper reports. “True transfer” $t$ means one foreign exposure is worth $t$ native ones, so a fact’s accuracy is the learning curve evaluated at $N_A + t \cdot N_B$.</p> <h2 id="the-code">The code</h2> <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">LEVELS</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">1000</span><span class="p">]</span>          <span class="c1"># exposure counts used in the paper
</span><span class="n">K</span> <span class="o">=</span> <span class="mf">60.0</span>                             <span class="c1"># how quickly learning saturates (smaller = faster)
</span><span class="n">FACTS_PER_GROUP</span> <span class="o">=</span> <span class="mi">128</span>                <span class="c1"># 16 groups x 128 facts = 2,048 facts
</span><span class="n">CHANCE</span><span class="p">,</span> <span class="n">CEIL</span> <span class="o">=</span> <span class="mf">0.25</span><span class="p">,</span> <span class="mf">0.9</span>             <span class="c1"># 4-way multiple choice; best reachable accuracy
</span><span class="n">QUESTIONS_PER_FACT</span> <span class="o">=</span> <span class="mi">4</span>               <span class="c1"># held-out MCQs per fact
</span>
<span class="k">def</span> <span class="nf">learning_curve</span><span class="p">(</span><span class="n">effective_exposures</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="n">K</span><span class="p">):</span>
    <span class="sh">"""</span><span class="s">Log-like acquisition: fast at first, then saturating.</span><span class="sh">"""</span>
    <span class="k">return</span> <span class="n">CHANCE</span> <span class="o">+</span> <span class="p">(</span><span class="n">CEIL</span> <span class="o">-</span> <span class="n">CHANCE</span><span class="p">)</span> <span class="o">*</span> <span class="n">np</span><span class="p">.</span><span class="nf">log1p</span><span class="p">(</span><span class="n">effective_exposures</span> <span class="o">/</span> <span class="n">k</span><span class="p">)</span> <span class="o">/</span> <span class="n">np</span><span class="p">.</span><span class="nf">log1p</span><span class="p">(</span><span class="mi">1000</span> <span class="o">/</span> <span class="n">k</span><span class="p">)</span>

<span class="k">def</span> <span class="nf">simulate</span><span class="p">(</span><span class="n">transfer</span><span class="p">,</span> <span class="n">rng</span><span class="p">):</span>
    <span class="n">nA</span><span class="p">,</span> <span class="n">nB</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">meshgrid</span><span class="p">(</span><span class="n">LEVELS</span><span class="p">,</span> <span class="n">LEVELS</span><span class="p">,</span> <span class="n">indexing</span><span class="o">=</span><span class="sh">"</span><span class="s">ij</span><span class="sh">"</span><span class="p">)</span>
    <span class="n">nA</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">repeat</span><span class="p">(</span><span class="n">nA</span><span class="p">.</span><span class="nf">ravel</span><span class="p">(),</span> <span class="n">FACTS_PER_GROUP</span><span class="p">)</span>
    <span class="n">nB</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">repeat</span><span class="p">(</span><span class="n">nB</span><span class="p">.</span><span class="nf">ravel</span><span class="p">(),</span> <span class="n">FACTS_PER_GROUP</span><span class="p">)</span>
    <span class="n">p</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">clip</span><span class="p">(</span><span class="nf">learning_curve</span><span class="p">(</span><span class="n">nA</span> <span class="o">+</span> <span class="n">transfer</span> <span class="o">*</span> <span class="n">nB</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
    <span class="n">acc</span> <span class="o">=</span> <span class="n">rng</span><span class="p">.</span><span class="nf">binomial</span><span class="p">(</span><span class="n">QUESTIONS_PER_FACT</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span> <span class="o">/</span> <span class="n">QUESTIONS_PER_FACT</span>
    <span class="k">return</span> <span class="n">nA</span><span class="p">,</span> <span class="n">nB</span><span class="p">,</span> <span class="n">acc</span>

<span class="k">def</span> <span class="nf">cleq</span><span class="p">(</span><span class="n">nA</span><span class="p">,</span> <span class="n">nB</span><span class="p">,</span> <span class="n">acc</span><span class="p">):</span>
    <span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">column_stack</span><span class="p">([</span><span class="n">np</span><span class="p">.</span><span class="nf">ones_like</span><span class="p">(</span><span class="n">nA</span><span class="p">),</span> <span class="n">nA</span><span class="p">,</span> <span class="n">nB</span><span class="p">]).</span><span class="nf">astype</span><span class="p">(</span><span class="nb">float</span><span class="p">)</span>
    <span class="n">alpha</span><span class="p">,</span> <span class="n">beta_A</span><span class="p">,</span> <span class="n">beta_B</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="n">linalg</span><span class="p">.</span><span class="nf">lstsq</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">acc</span><span class="p">,</span> <span class="n">rcond</span><span class="o">=</span><span class="bp">None</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
    <span class="k">return</span> <span class="mi">100</span> <span class="o">*</span> <span class="n">beta_B</span> <span class="o">/</span> <span class="n">beta_A</span>
</code></pre></div></div> <p>Full script (runs in a second, needs only numpy): <a href="/assets/code/cleq_sim.py">cleq_sim.py</a></p> <h2 id="results">Results</h2> <p>200 simulated “pretraining runs” per row:</p> <table> <thead> <tr> <th>True transfer</th> <th>CLeq (mean)</th> <th>CLeq (std across runs)</th> </tr> </thead> <tbody> <tr> <td>0%</td> <td>0.3%</td> <td>1.8%</td> </tr> <tr> <td>5%</td> <td>14.0%</td> <td>2.1%</td> </tr> <tr> <td>12.5%</td> <td>28.7%</td> <td>2.2%</td> </tr> <tr> <td>25%</td> <td>45.8%</td> <td>2.7%</td> </tr> <tr> <td>50%</td> <td>69.6%</td> <td>2.3%</td> </tr> <tr> <td>100%</td> <td>100.1%</td> <td>2.5%</td> </tr> </tbody> </table> <p>And how much it depends on the curve’s shape, for true transfer of 5% / 12.5%:</p> <table> <thead> <tr> <th>Saturation K</th> <th>CLeq at 5%</th> <th>CLeq at 12.5%</th> </tr> </thead> <tbody> <tr> <td>10 (saturates fast)</td> <td>22.8%</td> <td>38.0%</td> </tr> <tr> <td>60</td> <td>14.0%</td> <td>28.7%</td> </tr> <tr> <td>300 (nearly linear)</td> <td>8.0%</td> <td>19.2%</td> </tr> </tbody> </table> <h2 id="what-this-means">What this means</h2> <ol> <li><strong>The endpoints are trustworthy.</strong> No transfer gives ≈0%, perfect transfer ≈100%. The paper’s central contrast, near-zero for disjoint tokens vs. clearly positive for shared ones, holds under this check.</li> <li><strong>In between, linear CLeq is generous</strong> when learning saturates. A fact seen 1000 times natively is near its ceiling, so native exposures look less valuable per unit, and the ratio favors the foreign slope. Under this model, a measured 12.6% would correspond to a true exposure-equivalence of roughly 2–8%, depending on the curve. So “12.6% of native learning efficiency” is best read as a <strong>ranking</strong> score, not a literal exchange rate.</li> <li><strong>One run has about ±2 points of noise.</strong> Differences like 0.9% vs 2.2% vs 2.5% (baseline vs code-switching vs alignment) are within a single standard deviation here.</li> </ol> <h2 id="caveats">Caveats</h2> <p>This depends on my modeling choice: that transfer acts like “extra effective exposures” fed into one shared learning curve. Other models of transfer would give a different correction. The paper says it tried a curve-aware estimator and found the linear one more informative. Comparing the two on simulations like these would be a nice follow-up (see <a href="/posts/2026/follow-ups-worth-doing/">five follow-ups</a>).</p> <h2 id="what-i-learned">What I learned</h2> <p>Before trusting a metric, simulate it with a known answer. It takes an hour and tells you which differences you’re allowed to read into.</p> <p>Method from <a class="citation" href="#gaber2026crosslingual">(Gaber et al., 2026)</a>.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I simulated the paper's measurement with a known amount of transfer. The metric is right at 0% and 100%, and generous in between.]]></summary></entry><entry><title type="html">Rewriting the abstract: lead with the surprise</title><link href="https://active-ai-reading.github.io/posts/2026/rewriting-the-abstract/" rel="alternate" type="text/html" title="Rewriting the abstract: lead with the surprise"/><published>2026-10-16T00:00:00+00:00</published><updated>2026-10-16T00:00:00+00:00</updated><id>https://active-ai-reading.github.io/posts/2026/rewriting-the-abstract</id><content type="html" xml:base="https://active-ai-reading.github.io/posts/2026/rewriting-the-abstract/"><![CDATA[<h2 id="what-i-changed-and-why">What I changed and why</h2> <p>The original abstract is accurate, but it reads like the paper’s table of contents: motivation, method, finding, method, finding. The most surprising result, that <strong>two identical copies of English</strong> fail to share knowledge when their token IDs differ, only arrives in the sixth sentence, and the abstract never says how bad the problem is in numbers. A reader skimming arXiv decides in two sentences whether to keep reading.</p> <p>So the rewrite (1) opens with the phenomenon in concrete terms, (2) gives the key numbers, (3) says in one clause what the metric means, and (4) separates “what causes it” from “what fixes it”.</p> <h2 id="before-and-after">Before and after</h2> <div class="before-after"> <div class="before"><span class="label">Before</span> Large Language Models (LLMs) have made remarkable progress in the processing and modeling of many languages. Yet, unlike human multilinguals, they exhibit surprisingly limited cross-lingual knowledge transfer. While this limitation is well documented, its origins during multilingual training remain unclear. We pretrain 360M- and 7B-parameter LLMs and show that poor cross-lingual knowledge generalization emerges during pretraining and persists under standard interventions. To isolate its cause, we employ a controlled bilingual pretraining setting using two copies of the same language, sharing identical text and token segmentation, but mapped to disjoint token spaces. We find that disjoint tokens alone are enough to induce knowledge compartmentalization, even between identical copies of the same language, establishing disjoint token spaces as a fundamental barrier to cross-lingual knowledge generalization. Guided by this understanding, we suggest mapping languages into a shared token space by simple word-wise translation and find it substantially improves cross-lingual knowledge generalization, recovering up to 12.6% of native-language learning efficiency — 14× the baseline. </div> <div class="after"><span class="label">After</span> An LLM that reads a fact in English rarely knows it in Arabic. We show that this compartmentalization begins in pretraining, and that tokens are a main cause. We pretrain 360M and 7B bilingual models while injecting fictive facts at controlled rates in each language, and measure how much one exposure in the other language is worth compared to a native one. In standard English–Arabic and English–Russian pretraining it is worth almost nothing (0.9–5.9%), and code-switching or activation alignment barely help. Strikingly, the same happens between two identical copies of English that differ only in their token IDs (−2.6%). Conversely, writing Arabic word by word in English tokens, while keeping Arabic word order and grammar, raises transfer 14-fold (0.9% → 12.6%) and even improves English perplexity. Shared tokens help only when they share meaning: shuffled mappings and transliteration do not. </div> </div> <p><strong>A title to match.</strong> The current title, <em>Why Pretraining Fails to Share Cross-Lingual Knowledge</em>, promises an answer but doesn’t give it. An alternative that does: <em>Disjoint Tokens Keep Knowledge Apart: Cross-Lingual Compartmentalization Starts in Pretraining</em>.</p> <h2 id="the-general-rules">The general rules</h2> <ol> <li><strong>Lead with the finding the reader can’t predict.</strong> “LLMs transfer poorly across languages” is known; “identical copies of English don’t share knowledge” is new. Put the new thing early.</li> <li><strong>One claim per sentence, with its evidence.</strong> Replace abstractions (“a fundamental barrier”) with the observation that justifies them (“−2.6% between identical copies”).</li> <li><strong>Define your metric in words before quoting it.</strong> “Recovering 12.6% of native-language learning efficiency” is precise to the authors and opaque to everyone else; “one exposure in Arabic is worth 12.6% of one in English” is not.</li> <li><strong>Cut connective filler.</strong> “Guided by this understanding”, “To isolate its cause”, “While this limitation is well documented” make the reader wait for content.</li> </ol> <h2 id="what-im-unsure-about">What I’m unsure about</h2> <p>The rewrite drops “unlike human multilinguals”, which is a nice hook, and it adds a sentence (semantics matter) that the original leaves for the paper body. Whether that trade is worth it is a good thing to argue about in class.</p> <p>Reference: <a class="citation" href="#gaber2026crosslingual">(Gaber et al., 2026)</a>.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[The paper's most striking result is buried in sentence six. Here is a version that starts with it.]]></summary></entry></feed>