Formatting & Layout Stress Test
Some Text
Computational predictions are not diagnoses. But better computational tools mean better inputs to clinical decisions – and a more interpretable, genome-wide approach to variant effect prediction is a significant advance in what these tools can do.
Inline Math and Prose
A second inline expression with subscripts and operators: should also flow naturally.1 This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2 Computational predictions are not diagnoses. But better computational tools mean better inputs to clinical decisions – and a more interpretable, genome-wide approach to variant effect prediction is a significant advance in what these tools can do.
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Inline Math and Prose
This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2
A second inline expression with subscripts and operators: should also flow naturally.1
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Inline Math and Prose
This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2
A second inline expression with subscripts and operators: should also flow naturally.1
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Inline Math and Prose
This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2
A second inline expression with subscripts and operators: should also flow naturally.1
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Inline Math and Prose
This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2
A second inline expression with subscripts and operators: should also flow naturally.1
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Inline Math and Prose
This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2
A second inline expression with subscripts and operators: should also flow naturally.1
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Inline Math and Prose
This starter section tests inline math interleaved with dense prose. An expression like should sit comfortably inside a normal paragraph without breaking the line rhythm.2
A second inline expression with subscripts and operators: should also flow naturally.1
A Bayesian Update in Code
Inline code references like jax.grad(loss_fn) or torch.compile(model) should stay compact.3
from dataclasses import dataclass
@dataclass
class GaussianPosterior:
mean: float
variance: float
def posterior(mu0: float, sigma0: float, xbar: float, sigma: float, n: int) -> GaussianPosterior:
prior_precision = 1.0 / (sigma0 ** 2)
data_precision = n / (sigma ** 2)
mean = (prior_precision * mu0 + data_precision * xbar) / (prior_precision + data_precision)
variance = 1.0 / (prior_precision + data_precision)
return GaussianPosterior(mean=mean, variance=variance)
print(posterior(0.0, 1.0, 0.18, 0.55, 60))
Display Math
Display equations should center cleanly and not interfere with the sidenote rail:
A second display equation with more vertical complexity:4
Tables
| Method | Efficacy | Generalization | Specificity |
|---|---|---|---|
| Fine-tuning | 92% | 41% | 63% |
| ROME | 99% | 94% | 98% |
| MEMIT | 98% | 91% | 97% |
| Constrained FT | 95% | 72% | 85% |
Blockquotes and Nested Lists
The MLP layers of a transformer are not merely nonlinear feature extractors. They function as distributed associative memories, with each neuron contributing a fragment of the retrieval.
Nested list structure:
- Causal tracing identifies critical mediators
- Clean run: record all hidden states
- Corrupted run: perturb subject embeddings
- Restoration: patch in clean states one at a time
- ROME modifies the MLP weight matrix
- Compute context-invariant key
- Optimize target value vector5
- Apply rank-one update to
Dense Stress Pass
Dense technical prose should feel deliberate, not loose. Every line carries signal: references stay compact, annotations remain local, and long tokens degrade gracefully instead of tearing the layout.6 This is exactly why sidenotes matter for research writing; if you have to jump to the bottom of the page constantly, you lose the thread and your local stack of assumptions collapses.
To stress wrapping, this paragraph includes emphasized long tokens like counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries7 and hyperlink text such as modelrevisionpipelinewithoutcheckpointfences.8
It also embeds a long inline code reference:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation")9
to verify that code wraps naturally.
Zoom and Reflow Behavior
Screen-awareness matters: a wrapping strategy that works at one viewport and fails at another is not robust enough. This paragraph carries a long unbroken token in normal prose, zoomsynchronizedreflowverificationprotocolwithoutescapehatchesoradhoctruncationfallbacks, plus two inline math cases that stress baseline alignment: 10 and .11
Sidenote Density
This section packs footnote references close together to stress sidenote collision detection. First claim.12 Second claim.13 Third claim.14 These three should stack neatly in the margin without overlapping.
A paragraph with a reused reference: this claim appears here15 and again here15 to verify that each instance gets its own sidenote positioned near its reference.
TypeScript Code Block
interface FactualEdit {
subject: string;
relation: string;
oldObject: string;
newObject: string;
layer: number;
}
function applyROME(
model: TransformerModel,
edit: FactualEdit,
): TransformerModel {
const key = computeSubjectKey(model, edit.subject, edit.layer);
const value = optimizeTargetValue(model, edit, key);
const W = model.layers[edit.layer].mlp.W_proj;
const residual = subtractMatVec(value, matVec(W, key));
const delta = outerProduct(residual, key);
const scale = 1 / dot(key, key);
model.layers[edit.layer].mlp.W_proj = addMat(W, scaleMat(delta, scale));
return model;
}
Wrapping & Scroll Test
Short Display Math (should NOT scroll)
Long Display Math (should NOT scroll, just render naturally)
Tall Display Math (vertically large, should NOT get a vertical scrollbar)
Extremely Tall Display Math (should get a vertical scrollbar at 75vh)
Short Code Block (should wrap, no scrollbar)
# print(f"LR at step 50000: {cosine_schedule(50000, train_config.warmup_steps, train_config.learning_rate):.6f}")
def fibonacci(n: int) -> int:
if n <= 1:
return n
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
print([fibonacci(i) for i in range(20)])
# print(f"LR at step 50000: {cosine_schedule(50000, train_config.warmup_steps, train_config.learning_rate):.6f}")
Long Code Block (30+ lines, should scroll)
import numpy as np
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class TransformerConfig:
d_model: int = 512
n_heads: int = 8
n_layers: int = 6
d_ff: int = 2048
vocab_size: int = 32000
max_seq_len: int = 2048
dropout: float = 0.1
layer_norm_eps: float = 1e-5
@dataclass
class TrainingConfig:
batch_size: int = 64
learning_rate: float = 3e-4
warmup_steps: int = 4000
max_steps: int = 100000
weight_decay: float = 0.01
grad_clip: float = 1.0
eval_interval: int = 500
save_interval: int = 5000
log_interval: int = 10
def scaled_dot_product_attention(Q, K, V, mask=None):
d_k = Q.shape[-1]
scores = np.matmul(Q, K.transpose(-2, -1)) / np.sqrt(d_k)
if mask is not None:
scores = np.where(mask == 0, -1e9, scores)
weights = softmax(scores, axis=-1)
return np.matmul(weights, V), weights
def softmax(x, axis=-1):
e_x = np.exp(x - np.max(x, axis=axis, keepdims=True))
return e_x / np.sum(e_x, axis=axis, keepdims=True)
def layer_norm(x, gamma, beta, eps=1e-5):
mean = np.mean(x, axis=-1, keepdims=True)
var = np.var(x, axis=-1, keepdims=True)
return gamma * (x - mean) / np.sqrt(var + eps) + beta
def feed_forward(x, W1, b1, W2, b2):
hidden = np.maximum(0, np.matmul(x, W1) + b1)
return np.matmul(hidden, W2) + b2
def positional_encoding(seq_len, d_model):
pos = np.arange(seq_len)[:, np.newaxis]
dim = np.arange(d_model)[np.newaxis, :]
angles = pos / np.power(10000, (2 * (dim // 2)) / d_model)
encoding = np.zeros((seq_len, d_model))
encoding[:, 0::2] = np.sin(angles[:, 0::2])
encoding[:, 1::2] = np.cos(angles[:, 1::2])
return encoding
def cosine_schedule(step, warmup_steps, max_lr, min_lr=1e-6):
if step < warmup_steps:
return max_lr * step / warmup_steps
progress = (step - warmup_steps) / (100000 - warmup_steps)
return min_lr + 0.5 * (max_lr - min_lr) * (1 + np.cos(np.pi * progress))
config = TransformerConfig()
train_config = TrainingConfig()
pe = positional_encoding(config.max_seq_len, config.d_model)
print(f"Config: {config}")
print(f"Positional encoding shape: {pe.shape}")
print(f"LR at step 0: {cosine_schedule(0, train_config.warmup_steps, train_config.learning_rate):.6f}")
print(f"LR at step 4000: {cosine_schedule(4000, train_config.warmup_steps, train_config.learning_rate):.6f}")
print(f"LR at step 50000: {cosine_schedule(50000, train_config.warmup_steps, train_config.learning_rate):.6f}")
Open Questions
How distributed is factual storage really?
Causal tracing reveals dominant sites of mediation, but a long tail of smaller contributions from other components may exist.16
What is the relationship between factual recall and in-context learning?
Models can acquire new facts from their context window. Whether in-context and parametric facts share retrieval mechanisms remains open.17
Copyable Units
An inline copyable — the button rides beside the text and copies it: reach me at kaushikreddyxyz@gmail.com anytime. And the fully detached form — display text is ordinary markdown, the button carries its own payload: displayed 1@email.com but copies 2@email.com . A second one with a custom payload (displays one thing, copies another): the install command.
The block form, for standalone copy targets:
Images and Figures
A full-width markdown image with no caption, exactly as  renders it:
The same mechanics with an explicit figure and caption, the recommended form for anything that deserves a label:
Odd Sizes
A square figure narrower than the measure should center itself rather than hug the left edge:
A tall, portrait-orientation figure — the awkward case for vertical rhythm:
And a small inline-scale image dropped mid-paragraph flow, uncaptioned:
Prose continues immediately after the small image to check the spacing above and below bare images against paragraph rhythm.
Video
A locally hosted clip served from the site’s own files, with controls and a poster-free default frame:
An external YouTube embed, responsive at 16:9 regardless of viewport width:
Footnotes
-
Conditional expectations with calligraphic filtration symbols are a good test of KaTeX’s font rendering across different baseline alignments. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Write inline equations with
$...$and display equations with$$...$$. KaTeX renders at build time, so there is no client-side JavaScript cost for math. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 -
Fenced code blocks get syntax highlighting from Shiki with the solarized-light theme. Inline code is styled separately for high-contrast readability. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
The Sherman-Morrison formula connection becomes clearer when you consider the constraint that should satisfy while minimizing . The solution is exactly a rank-one perturbation. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
The target value vector is optimized via gradient descent so that the model produces the desired new fact. A regularization term prevents drift from the manifold of typical value vectors. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
hyperparametercalibrationwithoutregularizationbarriersandwithoutdistributionchecks stays bold and should wrap cleanly because it is plain emphasized prose. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
counterfactualtraceabilitywithoutsemanticcompressionandwithoutauditboundaries should follow the same long-word wrapping path as plain text. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
modelrevisionpipelinewithoutcheckpointfences checks that hyperlink text keeps link styling while wrapping. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Inline code should wrap without artifacts:
stream_validator.collector.chain_stage_without_manual_breakpoints_or_aliases("batch:alpha:reconciliation"). ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 -
Inline math with a long subscript descriptor: . ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Tall inline math: . This exercises vertical rhythm when math is taller than surrounding text. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
First densely-packed sidenote. Short and to the point. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Second sidenote immediately below. Tests collision detection between closely-spaced margin notes. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Third sidenote in the cluster. If all three render without overlap, the collision avoidance logic is working correctly. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
This footnote is referenced twice in the text. Each reference should produce its own sidenote positioned near the reference point, not a single shared sidenote. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14
-
The distinction between mediation and storage remains open. A component can mediate a prediction without being the sole site of storage. ↩
-
Recent work suggests parametric and in-context knowledge may use partially overlapping circuits, but the mechanistic picture is still incomplete. ↩