Research: tails, position and other deep dives

Deeper views behind the headline numbers, for readers who want them: how the per-position differences are distributed, how they depend on the history behind a position, one document where the vLLM fork differs from itself, and the follow-up designs.

Tails and position (K3.25)

Most positions sit far below the mean: the median position's KL on P-A is 0.0032 (vLLM fork) and 0.0035 (CuteAFD) against means of 0.0458 and 0.0476; the highest-KL 5% of positions carry 57% and 57% of the total. p99 on P-B generated positions: vLLM fork 0.567-0.609 over its three runs, CuteAFD 0.620. On P-A, positions with a short history carry more KL on both engines (history 1-256 tokens: 0.114 and 0.115; 1,025-2,047 tokens: 0.032 and 0.035), so a panel's mean depends on which positions it scores.

P-A tails and position (K3.25): KL, lower is closer to BF16

What this shows. Three views of the same 51,175 per-position scores: how often a position exceeds a KL value, the mean by the history behind a position, and the share of the total carried by the highest positions.

vLLM fork (each run; marks on the first)CuteAFDpublished quantile, vLLMpublished quantile, CuteAFD
Share of positions above a KL
P-A, BF16 teacher panel · 25 windows × 2,048 tokens · every position: 51,175 · history 1 / 1,024 / 2,047 tokens (min / median / max) · reference: BF16 teacher, full vocabulary · metric: KL, nats
0.00010.0010.010.1110100%10%1%0.1%0.01%0.001%per-position KL (log scale)← smaller KLlarger KL →vLLM V1: 50% of positions above KL 0.003198 (p50, published)vLLM V1: 10% of positions above KL 0.1034 (p90, published)vLLM V1: 1% of positions above KL 0.6381 (p99, published)vLLM V1: 0.1% of positions above KL 2.395 (p99.9, published)CuteAFD: 50% of positions above KL 0.003509 (p50, published)CuteAFD: 10% of positions above KL 0.1081 (p90, published)CuteAFD: 1% of positions above KL 0.6623 (p99, published)CuteAFD: 0.1% of positions above KL 2.296 (p99.9, published)CuteAFDvLLM fork (3 runs)
Mean KL by history
mean KL per position band (lower is closer)0.000.050.100.15rows 0-255history 1-256rows 256-1023history 257-1,024rows 1024-2046history 1,025-2,047vLLM fork (mean of 3 runs), rows 0-255, history 1 / 128.5 / 256: mean KL 0.1143vLLM fork (mean of 3 runs), rows 256-1023, history 257 / 640.5 / 1,024: mean KL 0.0409vLLM fork (mean of 3 runs), rows 1024-2046, history 1,025 / 1,536 / 2,047: mean KL 0.0325CuteAFD, rows 0-255, history 1 / 128.5 / 256: mean KL 0.1155CuteAFD, rows 256-1023, history 257 / 640.5 / 1,024: mean KL 0.0421CuteAFD, rows 1024-2046, history 1,025 / 1,536 / 2,047: mean KL 0.0346CuteAFD 0.0346vLLM 0.0325
Concentration: share of the total KL in the top positions
0%25%50%75%100%← less concentratedmore concentrated →Top 1% of positionsvLLM V1: the top 1% of positions carry 28.4% of its total KLCuteAFD: the top 1% of positions carry 27.7% of its total KLvLLM 28% · CuteAFD 28%Top 5% of positionsvLLM V1: the top 5% of positions carry 57.5% of its total KLCuteAFD: the top 5% of positions carry 57.1% of its total KLvLLM 57% · CuteAFD 57%Top 10% of positionsvLLM V1: the top 10% of positions carry 73.1% of its total KLCuteAFD: the top 10% of positions carry 72.8% of its total KLvLLM 73% · CuteAFD 73%

How to use it. If the curves run together the engines differ in the bulk of positions, not in a few outliers.

Table view: the exact numbers
RunMeanp50p90p99p99.9MaxTop-1Confident top-1
vLLM fork V10.04580.00320.1030.6382.398.2893.50%98.51%
vLLM fork V1r0.04580.00320.1030.6382.398.2893.50%98.51%
vLLM fork V20.04580.00320.1030.6382.398.2893.50%98.51%
CuteAFD C10.04760.00350.1080.6622.307.4593.15%98.48%
PositionsHistory, tokens (min / median / max)RunMean KLp99p99.9Top-1
rows 0-2551 / 128.5 / 256vLLM fork V10.11431.3253.9588.61%
vLLM fork V1r0.11431.3253.9588.61%
vLLM fork V20.11431.3253.9588.61%
CuteAFD C10.11551.3793.2688.58%
rows 256-1023257 / 640.5 / 1,024vLLM fork V10.04090.5422.1893.82%
vLLM fork V1r0.04090.5422.1893.82%
vLLM fork V20.04090.5422.1893.82%
CuteAFD C10.04210.5592.0893.43%
rows 1024-20461,025 / 1,536 / 2,047vLLM fork V10.03250.4351.4394.48%
vLLM fork V1r0.03250.4351.4394.48%
vLLM fork V20.03250.4351.4394.48%
CuteAFD C10.03460.4471.6694.09%
P-B tails and position (K3.25): coarse KL, lower is closer to BF16

What this shows. Three views of the same 15,104 per-position scores: how often a position exceeds a KL value, the mean by the history behind a position, and the share of the total carried by the highest positions.

vLLM fork (each run; marks on the first)CuteAFDpublished quantile, vLLMpublished quantile, CuteAFD
Share of positions above a KL
P-B, fidelity set, generated positions · 64 windows (53 with scored positions) × 513-14,403 tokens · generated positions: 15,104 · history 1,084 / 5,751.5 / 14,402 tokens (min / median / max) · reference: BF16 run, top 1,024 ids + tail · metric: coarse KL, nats
0.00010.0010.010.1110100%10%1%0.1%0.01%0.001%per-position coarse KL (log scale)← smaller KLlarger KL →vLLM V1: 50% of positions above KL 0.001345 (p50, published)vLLM V1: 10% of positions above KL 0.1204 (p90, published)vLLM V1: 1% of positions above KL 0.6095 (p99, published)vLLM V1: 0.1% of positions above KL 1.778 (p99.9, published)CuteAFD: 50% of positions above KL 0.002437 (p50, published)CuteAFD: 10% of positions above KL 0.1325 (p90, published)CuteAFD: 1% of positions above KL 0.6204 (p99, published)CuteAFD: 0.1% of positions above KL 1.532 (p99.9, published)vLLM fork (3 runs)CuteAFD
Mean KL by history
mean coarse KL per position band (lower is closer)0.000.020.040.060-2Khistory 1,084-2,3612-8Khistory 2,083-5,7818-16Khistory 10,284-14,402vLLM fork (mean of 3 runs), 0-2K, history 1,084 / 1,735 / 2,361: mean coarse KL 0.0469vLLM fork (mean of 3 runs), 2-8K, history 2,083 / 4,254 / 5,781: mean coarse KL 0.0321vLLM fork (mean of 3 runs), 8-16K, history 10,284 / 12,069 / 14,402: mean coarse KL 0.0504CuteAFD, 0-2K, history 1,084 / 1,735 / 2,361: mean coarse KL 0.0486CuteAFD, 2-8K, history 2,083 / 4,254 / 5,781: mean coarse KL 0.0328CuteAFD, 8-16K, history 10,284 / 12,069 / 14,402: mean coarse KL 0.0557CuteAFD 0.0557vLLM 0.0504
Concentration: share of the total KL in the top positions
0%25%50%75%100%← less concentratedmore concentrated →Top 1% of positionsvLLM V1: the top 1% of positions carry 23.6% of its total coarse KLCuteAFD: the top 1% of positions carry 21.2% of its total coarse KLvLLM 24% · CuteAFD 21%Top 5% of positionsvLLM V1: the top 5% of positions carry 53.6% of its total coarse KLCuteAFD: the top 5% of positions carry 49.9% of its total coarse KLvLLM 54% · CuteAFD 50%Top 10% of positionsvLLM V1: the top 10% of positions carry 71.4% of its total coarse KLCuteAFD: the top 10% of positions carry 67.7% of its total coarse KLvLLM 71% · CuteAFD 68%

How to use it. If the curves run together the engines differ in the bulk of positions, not in a few outliers.

Table view: the exact numbers
RunMeanp50p90p99p99.9MaxTop-1Confident top-1
vLLM fork V10.04570.00130.1200.6091.785.0493.84%96.66%
vLLM fork V1r0.04510.00140.1210.5861.515.0493.76%96.60%
vLLM fork V20.04460.00140.1210.5671.515.4193.78%96.64%
CuteAFD C10.04840.00240.1320.6201.535.3893.33%96.31%
CuteAFD C0 (control)0.04870.00240.1320.5821.705.0893.47%96.39%
PositionsHistory, tokens (min / median / max)RunMean KLp99p99.9Top-1
0-2K1,084 / 1,735 / 2,361vLLM fork V10.04740.7072.1294.52%
vLLM fork V1r0.04680.7072.1194.60%
vLLM fork V20.04640.6952.1194.62%
CuteAFD C10.04860.6551.5594.20%
CuteAFD C0 (control)0.05020.6931.8194.20%
2-8K2,083 / 4,254 / 5,781vLLM fork V10.03180.4961.2895.43%
vLLM fork V1r0.03290.4621.3295.69%
vLLM fork V20.03160.4391.1595.80%
CuteAFD C10.03280.5131.2095.83%
CuteAFD C0 (control)0.03350.4701.0295.43%
8-16K10,284 / 12,069 / 14,402vLLM fork V10.05140.6221.9092.73%
vLLM fork V1r0.05000.5771.4192.40%
vLLM fork V20.04970.5601.4392.38%
CuteAFD C10.05570.6361.6491.69%
CuteAFD C0 (control)0.05510.5581.6392.16%
Q2 disagreement (K3.25): CuteAFD against the vLLM fork, and the vLLM fork against itself

What this shows. No BF16 reference exists beyond 14K tokens, so this compares the engines with each other (orange) and the vLLM fork with its own repeat (blue; it covers 24,576 of the 73,728 positions).

vLLM fork against its own repeatCuteAFD against the vLLM forkpublished quantilepublished quantile
Share of positions above a disagreement
Q2, long human-written text · 18 windows × 32,768-131,072 tokens · last 4,096 positions per window: 73,728 · history 28,672 / 63,487.5 / 131,071 tokens (min / median / max) · reference: none (engine against engine) · metric: KL between two runs (disagreement), nats
0.00010.0010.010.1110100100%10%1%0.1%0.01%0.001%per-position KL between two runs (log scale)← smaller KLlarger KL →vLLM vs its repeat: 50% of positions above KL 0.001221 (p50, published)vLLM vs its repeat: 10% of positions above KL 0.009788 (p90, published)vLLM vs its repeat: 1% of positions above KL 0.05498 (p99, published)vLLM vs its repeat: 0.1% of positions above KL 0.2284 (p99.9, published)CuteAFD vs vLLM: 50% of positions above KL 0.002393 (p50, published)CuteAFD vs vLLM: 10% of positions above KL 0.02168 (p90, published)CuteAFD vs vLLM: 1% of positions above KL 0.1351 (p99, published)CuteAFD vs vLLM: 0.1% of positions above KL 1.085 (p99.9, published)vLLM vs its repeatCuteAFD vs vLLM
Concentration of the disagreement
0%25%50%75%100%← less concentratedmore concentrated →Top 1% of positionsvLLM vs its repeat: top 1% carry 26.1%CuteAFD vs vLLM: top 1% carry 46.2%vLLM vs itself 26% · CuteAFD vs vLLM 46%Top 5% of positionsvLLM vs its repeat: top 5% carry 52.0%CuteAFD vs vLLM: top 5% carry 65.1%vLLM vs itself 52% · CuteAFD vs vLLM 65%Top 10% of positionsvLLM vs its repeat: top 10% carry 66.3%CuteAFD vs vLLM: top 10% carry 75.3%vLLM vs itself 66% · CuteAFD vs vLLM 75%

How to use it. The gap between the curves is the engine difference beyond run-to-run noise; it says nothing about which engine is closer to BF16 at these lengths.

Table view: the exact numbers
PairPositionsMeanp50p90p99p99.9MaxTop-1 agreement
CuteAFD vs vLLM73,7280.01410.00240.0220.1351.0925.6296.18%
vLLM vs its repeat24,5760.00470.00120.0100.0550.231.4797.81%

Tails and position (K4, top-20 measures)

P-A tails and position (K4, top-20): KL20, lower is closer to BF16

What this shows. Three views of the same 51,175 per-position scores: how often a position exceeds a KL value, the mean by the history behind a position, and the share of the total carried by the highest positions.

vLLM fork (each run; marks on the first)CuteAFDpublished quantile, vLLMpublished quantile, CuteAFD
Share of positions above a KL
P-A, BF16 teacher panel · 25 windows × 2,048 tokens · every position: 51,175 · history 1 / 1,024 / 2,047 tokens (min / median / max) · reference: BF16 teacher, top 20 · metric: KL20, nats
0.00010.0010.010.1110100%10%1%0.1%0.01%0.001%per-position KL20 (log scale)← smaller KLlarger KL →vLLM launch 1: 50% of positions above KL 0.001443 (p50, published)vLLM launch 1: 10% of positions above KL 0.04333 (p90, published)vLLM launch 1: 1% of positions above KL 0.2803 (p99, published)vLLM launch 1: 0.1% of positions above KL 0.9696 (p99.9, published)CuteAFD: 50% of positions above KL 0.001726 (p50, published)CuteAFD: 10% of positions above KL 0.04987 (p90, published)CuteAFD: 1% of positions above KL 0.3139 (p99, published)CuteAFD: 0.1% of positions above KL 1.008 (p99.9, published)vLLM fork (2 launches)CuteAFD
Mean KL by history
mean KL20 per position band (lower is closer)0.000.020.040.06rows 0-255history 1-256rows 256-1023history 257-1,024rows 1024-2046history 1,025-2,047vLLM fork (mean of 2 launches), rows 0-255, history 1 / 128.5 / 256: mean KL20 0.0515vLLM fork (mean of 2 launches), rows 256-1023, history 257 / 640.5 / 1,024: mean KL20 0.0161vLLM fork (mean of 2 launches), rows 1024-2046, history 1,025 / 1,536 / 2,047: mean KL20 0.0135CuteAFD, rows 0-255, history 1 / 128.5 / 256: mean KL20 0.0549CuteAFD, rows 256-1023, history 257 / 640.5 / 1,024: mean KL20 0.0191CuteAFD, rows 1024-2046, history 1,025 / 1,536 / 2,047: mean KL20 0.0157CuteAFD 0.0157vLLM 0.0135
Concentration: share of the total KL in the top positions
0%25%50%75%100%← less concentratedmore concentrated →Top 1% of positionsvLLM launch 1: the top 1% of positions carry 28.8% of its total KL20CuteAFD: the top 1% of positions carry 26.8% of its total KL20vLLM 29% · CuteAFD 27%Top 5% of positionsvLLM launch 1: the top 5% of positions carry 58.4% of its total KL20CuteAFD: the top 5% of positions carry 57.2% of its total KL20vLLM 58% · CuteAFD 57%Top 10% of positionsvLLM launch 1: the top 10% of positions carry 73.9% of its total KL20CuteAFD: the top 10% of positions carry 73.0% of its total KL20vLLM 74% · CuteAFD 73%

How to use it. If the curves run together the engines differ in the bulk of positions, not in a few outliers.

Table view: the exact numbers
RunMeanp50p90p99p99.9MaxTop-1Confident top-1
vLLM launch 10.01920.00140.0430.2800.973.4195.28%99.21%
vLLM launch 20.01920.00140.0430.2800.973.4195.28%99.21%
CuteAFD0.02190.00170.0500.3141.014.0194.73%99.11%
P-B tails and position (K4, top-20): KL_pb20, lower is closer to BF16

What this shows. Three views of the same 15,104 per-position scores: how often a position exceeds a KL value, the mean by the history behind a position, and the share of the total carried by the highest positions.

vLLM fork (each run; marks on the first)CuteAFDpublished quantile, vLLMpublished quantile, CuteAFD
Share of positions above a KL
P-B, fidelity set, generated positions · 64 windows (53 with scored positions) × 513-14,403 tokens · generated positions: 15,104 · history 1,084 / 5,751.5 / 14,402 tokens (min / median / max) · reference: BF16 run, top 20 · metric: KL_pb20, nats
0.00010.0010.010.1110100%10%1%0.1%0.01%0.001%per-position KL_pb20 (log scale)← smaller KLlarger KL →vLLM launch 1: 50% of positions above KL 0.0008114 (p50, published)vLLM launch 1: 10% of positions above KL 0.08167 (p90, published)vLLM launch 1: 1% of positions above KL 0.3944 (p99, published)vLLM launch 1: 0.1% of positions above KL 1.193 (p99.9, published)CuteAFD: 50% of positions above KL 0.001505 (p50, published)CuteAFD: 10% of positions above KL 0.09466 (p90, published)CuteAFD: 1% of positions above KL 0.4551 (p99, published)CuteAFD: 0.1% of positions above KL 1.203 (p99.9, published)vLLM fork (2 launches)CuteAFD
Mean KL by history
mean KL_pb20 per position band (lower is closer)0.000.020.040.060-2Khistory 1,084-2,3612-8Khistory 2,083-5,7818-16Khistory 10,284-14,402vLLM fork (mean of 2 launches), 0-2K, history 1,084 / 1,735 / 2,361: mean KL_pb20 0.0325vLLM fork (mean of 2 launches), 2-8K, history 2,083 / 4,254 / 5,781: mean KL_pb20 0.0219vLLM fork (mean of 2 launches), 8-16K, history 10,284 / 12,069 / 14,402: mean KL_pb20 0.0334CuteAFD, 0-2K, history 1,084 / 1,735 / 2,361: mean KL_pb20 0.0343CuteAFD, 2-8K, history 2,083 / 4,254 / 5,781: mean KL_pb20 0.0235CuteAFD, 8-16K, history 10,284 / 12,069 / 14,402: mean KL_pb20 0.0424CuteAFD 0.0424vLLM 0.0334
Concentration: share of the total KL in the top positions
0%25%50%75%100%← less concentratedmore concentrated →Top 1% of positionsvLLM launch 1: the top 1% of positions carry 23.8% of its total KL_pb20CuteAFD: the top 1% of positions carry 22.5% of its total KL_pb20vLLM 24% · CuteAFD 23%Top 5% of positionsvLLM launch 1: the top 5% of positions carry 54.5% of its total KL_pb20CuteAFD: the top 5% of positions carry 52.1% of its total KL_pb20vLLM 55% · CuteAFD 52%Top 10% of positionsvLLM launch 1: the top 10% of positions carry 72.2% of its total KL_pb20CuteAFD: the top 10% of positions carry 69.7% of its total KL_pb20vLLM 72% · CuteAFD 70%

How to use it. If the curves run together the engines differ in the bulk of positions, not in a few outliers.

Table view: the exact numbers
RunMeanp50p90p99p99.9MaxTop-1Confident top-1
vLLM launch 10.03060.00080.0820.3941.193.8094.88%97.46%
vLLM launch 1, repeat0.03110.00080.0800.4361.232.6594.91%97.48%
vLLM launch 20.03040.00080.0780.4151.184.5394.99%97.66%
CuteAFD0.03580.00150.0950.4551.204.4794.59%97.41%
Q2 disagreement (K4, top-20): CuteAFD against the vLLM fork, and the vLLM fork against itself

What this shows. No BF16 reference exists beyond 14K tokens, so this compares the engines with each other (orange) and the vLLM fork with its own repeat (blue; it covers 73,728 of the 73,728 positions).

vLLM fork against its own repeatCuteAFD against the vLLM forkpublished quantilepublished quantile
Share of positions above a disagreement
Q2, long human-written text · 18 windows × 32,768-131,072 tokens · last 4,096 positions per window: 73,728 · history 28,672 / 63,487.5 / 131,071 tokens (min / median / max) · reference: none (engine against engine) · metric: KL20n between two runs (disagreement), nats
0.00010.0010.010.1110100100%10%1%0.1%0.01%0.001%per-position KL20n between two runs (log scale)← smaller KLlarger KL →vLLM launch 1 vs 2: 50% of positions above KL 0.001177 (p50, published)vLLM launch 1 vs 2: 10% of positions above KL 0.01123 (p90, published)vLLM launch 1 vs 2: 1% of positions above KL 0.0969 (p99, published)vLLM launch 1 vs 2: 0.1% of positions above KL 1.594 (p99.9, published)CuteAFD vs vLLM launch 1: 50% of positions above KL 0.002216 (p50, published)CuteAFD vs vLLM launch 1: 10% of positions above KL 0.02108 (p90, published)CuteAFD vs vLLM launch 1: 1% of positions above KL 0.1912 (p99, published)CuteAFD vs vLLM launch 1: 0.1% of positions above KL 2.34 (p99.9, published)vLLM launch 1 vs 2CuteAFD vs vLLM launch 1CuteAFD vs vLLM launch 2
Concentration of the disagreement
0%25%50%75%100%← less concentratedmore concentrated →Top 1% of positionsvLLM launch 1 vs 2: top 1% carry 63.5%CuteAFD vs vLLM launch 1: top 1% carry 57.7%vLLM vs itself 64% · CuteAFD vs vLLM 58%Top 5% of positionsvLLM launch 1 vs 2: top 5% carry 78.1%CuteAFD vs vLLM launch 1: top 5% carry 74.8%vLLM vs itself 78% · CuteAFD vs vLLM 75%Top 10% of positionsvLLM launch 1 vs 2: top 10% carry 85.0%CuteAFD vs vLLM launch 1: top 10% carry 82.7%vLLM vs itself 85% · CuteAFD vs vLLM 83%

How to use it. The gap between the curves is the engine difference beyond run-to-run noise; it says nothing about which engine is closer to BF16 at these lengths.

Table view: the exact numbers
PairPositionsMeanp50p90p99p99.9MaxTop-1 agreement
CuteAFD vs vLLM launch 173,7280.01850.00220.0210.1912.3419.8395.92%
CuteAFD vs vLLM launch 273,7280.02050.00220.0210.1963.0619.8395.80%
vLLM launch 1 vs 273,7280.01140.00120.0110.0971.5912.5897.17%

Computed by tools/kl_tails.py from the per-position files in q/rows/ (K3.25) and q/rows/ (K4); python3 tools/kl_tails.py --check reproduces them.

K3.25 by context bucket, with the follow-up F1 arms

Panel P-B, generated rows, against the mean of the three vLLM runs (two launches; pb-vs-vllm-mean3.json). The 8-16K bucket is block B, long code reading; whether length or content drives the difference is not separated here. F1c and F1d are follow-up F1 arms of CuteAFD, outside the frozen protocol. History: the tokens before each scored position. Tails (p99, p99.9) and KL by position: q/tails/.

BucketRowsHistory, tokens (min / median / max)KL, CuteAFD − vLLMTop-1, CuteAFD − vLLMKL, F1c (W8A16 prefill) − vLLMKL, F1d (KDA, head, prefill) − vLLM
all generated rows15,1041,084 / 5,751.5 / 14,402+0.0033 [+0.0016, +0.0049]-0.46 pts [-0.73, -0.17]+0.0017 [+0.0006, +0.0028]+0.0010 [-0.0002, +0.0021]
0-2K4,0351,084 / 1,735 / 2,361+0.0017 [-0.0006, +0.0044]-0.38 pts [-0.88, +0.05]+0.0007 [-0.0010, +0.0027]+0.0008 [-0.0011, +0.0028]
2-8K3,5472,083 / 4,254 / 5,781+0.0007 [-0.0029, +0.0032]+0.19 pts [-0.16, +0.52]+0.0016 [+0.0007, +0.0026]-0.0001 [-0.0017, +0.0013]
8-16K7,52210,284 / 12,069 / 14,402+0.0054 [+0.0034, +0.0074]-0.81 pts [-1.22, -0.44]+0.0022 [+0.0005, +0.0041]+0.0016 [-0.0005, +0.0033]

K4 precision in full, and K4 against K3.25 on the same measure

Measure (top-20)Scored history, tokens (min / median / max)vLLM (mean of 2 launches)CuteAFDCuteAFD − vLLM [95%]vLLM launch 2 − launch 1Reading
P-A, teacher KL20 (25 windows × 2,048 tokens)1 / 1,024 / 2,0470.01920.0219+0.0027 [+0.0012, +0.0047]+0.0000differs
P-A, top-1 agreement with the teacher1 / 1,024 / 2,04795.28%94.73%-0.55 pts [-0.72, -0.37]+0.00 ptsdiffers
P-A, NLL of the actual token1 / 1,024 / 2,0471.06271.0653+0.0026 [+0.0005, +0.0048]+0.0000differs
P-B, generated rows, KL_pb201,084 / 5,751.5 / 14,4020.03050.0358+0.0053 [+0.0033, +0.0076]-0.0002differs
P-B 0-2K1,084 / 1,735 / 2,3610.03250.0343+0.0018 [-0.0007, +0.0049]+0.0004not resolved
P-B 2-8K2,083 / 4,254 / 5,7810.02190.0235+0.0015 [+0.0005, +0.0027]+0.0004differs
P-B 8-16K10,284 / 12,069 / 14,4020.03340.0424+0.0090 [+0.0062, +0.0122]-0.0009differs
P-B block B (long code reading; the 8-16K windows)10,790 / 12,083 / 13,3880.03720.0469+0.0098 [+0.0064, +0.0137]-0.0012differs
P-B, generated rows, top-1 agreement1,084 / 5,751.5 / 14,40294.93%94.59%-0.34 pts [-0.62, -0.09]+0.11 ptsdiffers
Q2, NLL on human-written text, 32K-128K (6 documents, t-interval)28,672 / 63,487.5 / 131,0711.24341.2510+0.0076 [-0.0076, +0.0228]+0.0003not resolved

Q2 without the window q2-code-c2-064k (reported separately by rule): CuteAFD − vLLM launch 1 +0.0012 [-0.0007, +0.0030], CuteAFD − vLLM launch 2 -0.0008 [-0.0086, +0.0071]. On that window vLLM differs from its own second launch on 192 rows by more than 1 nat (c2/). Determinism: CuteAFD's two passes were byte-identical on every window (row hashes); vLLM's two launches returned identical values on 20 of 64 P-B windows and on none of the 25 P-A windows, though their mean KL20 there differs by less than 1e-7.

Measure (top-20, same definition on both)vLLM, K3.25vLLM, K4CuteAFD, K3.25CuteAFD, K4CuteAFD − vLLM, K3.25CuteAFD − vLLM, K4
P-A, teacher KL200.03650.01920.03800.0219+0.0015 [+0.0006, +0.0025]+0.0027 [+0.0012, +0.0047]
P-A, top-1 agreement93.50%95.28%93.15%94.73%-0.35 pts-0.55 pts
P-B, generated rows, KL_pb200.04450.03050.04770.0358+0.0032 [+0.0014, +0.0049]+0.0053 [+0.0033, +0.0076]
P-B 8-16K, KL_pb200.04950.03340.05470.0424+0.0052 [+0.0031, +0.0075]+0.0090 [+0.0062, +0.0122]

Where the long-code difference may come from

Q2 document c2 on K4: a window where the vLLM fork differs from itself

CPU-only reading of the K4 Block Q captures (top-20 rows), arms V-r1 and V-r2 (two vLLM launches) and C-r1 (CuteAFD). Document c2 is a concatenation of vLLM's own Python source. Its three Q2 windows are prefixes of one token stream (c2-032k = tokens 0-32K, c2-064k = 0-64K, c2-128k = 0-128K), and each scores its last 4,096 rows.

Window (scored rows)NLL, V-r1Top-20 entropy, V-r1Rows with |ΔNLL| > 1 nat: V-r1 vs V-r2V-r1 vs C-r1V-r2 vs C-r1
c2-032k (28,671-32,766)0.4480.31393429
c2-064k (61,439-65,534)1.0130.463192292298
c2-128k (126,975-131,070)0.6110.334706790
c0-064k (code control)0.5080.34482523
c1-064k (code control)0.5860.41691514
pg28988-064k (prose control)1.8041.336013

KL20n per window (the frozen Q2 scorer's engine-against-engine form) on c2-064k: vLLM against its second launch 0.094, vLLM against CuteAFD 0.148 and 0.168 (one value per vLLM launch). On the other 17 windows the same pairs read 0.003-0.039 (vLLM against vLLM) and 0.005-0.066 (vLLM against CuteAFD).

What the rows show:

  1. On c2-064k the two vLLM launches disagree with each other on 192 rows by more than 1 nat. vLLM's run-to-run variation alone produces nat-scale changes there; CuteAFD's count against either launch (292, 298) is of the same order. The K3.25 run had no vLLM repeat of c2, and its audit recorded that this window "cannot be attributed to either engine". On K4 the window is sensitive for vLLM against itself as well.
  2. The sensitivity is specific to the document and the position. It is small at 32K, largest at 61-65K and smaller again at 127-131K of the same stream; the c0, c1 and prose windows show 0-9 such rows between the vLLM launches. The text is ordinary code throughout (no long lines, runs, binary or non-ASCII stretches, scanned in 4K-token blocks).
  3. Many of the volatile rows are confident ones. Of the 192 vLLM-against-vLLM rows on c2-064k, 38 have one launch giving the actual token more than 0.9 probability; 20 are top-1/top-2 swaps between the launches. The window's NLL (1.01) is more than twice its top-20 entropy (0.46): the model is confident there and often does not predict the actual token.
  4. Long-range exact copying accounts for part of it. Rows whose next token completes a 12-gram that also occurs more than 2,048 tokens earlier are about three times as volatile between the vLLM launches on c2-064k (14% against 4.4%); c1-128k has 287 such rows and none of them is volatile.

Open question (not tested): whether near-duplicate code earlier in the stream, and which earlier variant the sparse-attention indexer selects, accounts for the confident flips. Answering it needs per-layer indexer selections from two launches.

The protocol reports q2-code-c2-064k separately and also gives the Q2 numbers without it (../q/q2-top20.json, without_outlier). Files: c2-summary.json (the table and items 2-3, from c2_summary.py), c2-rows.json (per window and pair: mean ΔNLL, rows above 1 nat by quarter of the window, the largest ΔNLL rows with their positions), copy-rows.json (item 4).

Follow-up designs