Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
155 changes: 154 additions & 1 deletion apps/website/src/data/blog/posts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,159 @@ export interface Post {
}
}

const pooledWindowsWereNotCheckpoints: Post = {
slug: 'eleven-verdicts-were-windows-not-checkpoints',
title: 'Eleven verdicts were windows, not checkpoints',
summary:
'A merged research correction replaces 140 pooled windows with four model-level replicates and turns eleven apparent verdicts into ties.',
date: '2026-08-13',
readingMinutes: 8,
tags: ['research', 'statistics', 'quantization', 'reproducibility'],
receipts: [
{
label: 'trinity-fpga PR #563 — merged research correction',
href: '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/gHashTag/trinity-fpga/pull/563',
},
{
label: 'POOLED_VERDICTS_RESTATED_2026-08-12.md — merged analysis note',
href: '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/gHashTag/trinity-fpga/blob/main/research/block/POOLED_VERDICTS_RESTATED_2026-08-12.md',
},
],
openQuestions: [
'This is a re-analysis of per-window NLL already on disk; no model was re-run and no new checkpoint was measured.',
'The one verdict that survives the correction, JK-asym-NEAR0 versus JOINT-KL, is tagged 3/4 in-sample, so it is not evidence about a new checkpoint.',
'The corrected rows do not establish a general advantage for any codebook; a model-level result on four checkpoints remains a narrow result, not a deployment claim.',
],
published: true,
body: [
{ kind: 'h', text: 'The unit of replication was hiding in a concatenate' },
{
kind: 'p',
text:
'PR #563 is merged in gHashTag/trinity-fpga. It corrects a statistical mistake in campaign B: four models contributed 35 windows each, and the script concatenated them into n = 140 before running a paired test. Those windows repeat text within a model; they do not create 140 independent model checkpoints. For a claim about the model family, the replicate unit is the model, so n = 4.',
},
{
kind: 'code',
text: 'd = np.concatenate([dvec(D, m, arm, ref) for m in models])\nr = paired(d)',
},
{
kind: 'p',
text:
'The correction changes the unit of analysis rather than the codebooks or the stored NLL values. The helper now averages each model first when several models are involved, while keeping windows for claims that are explicitly within one model.',
},
{ kind: 'h', text: 'Eleven apparent verdicts become ties' },
{
kind: 'table',
head: ['Comparison', 'Window-pooled, n = 140', 'Model-level, n = 4', 'Corrected reading'],
rows: [
['MX-asym-MID vs MXFP4', '−2.21 %, p = 9.6e-26', '−2.08 %, p = 0.019', 'tie'],
['MX-asym-NEAR0 vs MXFP4', '−4.99 %, p = 1.6e-44', '−4.76 %, p = 0.032', 'tie'],
['MX-asym-NEAR0 vs NF4', '−0.92 %, p = 1.6e-02', '−0.92 %, p = 0.655', 'tie'],
['JK-asym-MID vs JOINT-KL', '−2.32 %, p = 1.9e-22', '−2.18 %, p = 0.078', 'tie'],
],
},
{
kind: 'p',
text:
'The point estimates barely move: −4.99 % becomes −4.76 %, and −2.21 % becomes −2.08 %. The uncertainty does. Intervals grow by roughly the square root of 35 when the analysis stops treating windows as independent model replicates. Eleven of fourteen verdicts flip to ties; one survives.',
},
{ kind: 'h', text: 'What survives, and why it is still narrow' },
{
kind: 'p',
text:
'The surviving row is JK-asym-NEAR0 versus JOINT-KL: −2.42 % with an interval of [−3.56 %, −1.26 %] and p = 0.007 at the model level. Its own tag says 3/4 in-sample, so the result is not a claim about an unseen checkpoint. Separately, the within-model statement that MX-asym-NEAR0 beats MXFP4 in 140 of 140 windows across four models remains a statement about those measured texts, not a new family-wide guarantee.',
},
{
kind: 'quote',
text:
'The replicate unit is part of the claim. It should be written where the claim is written, not smuggled in by an array operation.',
},
{ kind: 'h', text: 'A symmetric correction is a useful negative result' },
{
kind: 'p',
text:
'Four rows moved toward the codebooks and seven moved away. The correction did not simply erase results that favoured one side. It removed false precision from both directions and leaves a smaller, more legible result: the stored measurements support several within-model observations, while the broader checkpoint-level verdicts were overstated.',
},
{
kind: 'ul',
items: [
'The PR is merged, not merely submitted upstream.',
'The analysis was rerun from existing per-window NLL values; no model training or checkpoint rerun is claimed.',
'The repository now states the replicate choice in the helper instead of relying on the shape of an array.',
],
},
],
ru: {
title: 'Одиннадцать вердиктов оказались окнами, а не чекпоинтами',
summary:
'Смерженная исследовательская правка заменяет 140 объединённых окон четырьмя репликами уровня модели и превращает одиннадцать видимых вердиктов в ничьи.',
openQuestions: [
'Это переанализ уже сохранённых значений NLL по окнам; ни одна модель не перезапускалась, новый чекпоинт не измерялся.',
'Сохранившийся после исправления вердикт, JK-asym-NEAR0 против JOINT-KL, помечен как 3/4 in-sample, поэтому он не свидетельствует о новом чекпоинте.',
'Исправленные строки не доказывают общего преимущества какого-либо кодбука; результат на уровне четырёх чекпоинтов остаётся узким и не является заявлением о применении.',
],
body: [
{ kind: 'h', text: 'Единица репликации спряталась в concatenate' },
{
kind: 'p',
text:
'PR #563 смержен в gHashTag/trinity-fpga. Он исправляет статистическую ошибку в кампании B: четыре модели дали по 35 окон, а скрипт объединял их в n = 140 перед парным тестом. Эти окна повторяют текст внутри модели; они не создают 140 независимых чекпоинтов моделей. Для утверждения о семействе моделей единица репликации — модель, поэтому n = 4.',
},
{
kind: 'code',
text: 'd = np.concatenate([dvec(D, m, arm, ref) for m in models])\nr = paired(d)',
},
{
kind: 'p',
text:
'Правка меняет единицу анализа, а не кодбуки и не сохранённые значения NLL. Теперь вспомогательная функция сначала усредняет вклад каждой модели, если моделей несколько, а окна сохраняет только для утверждений, которые явно делаются внутри одной модели.',
},
{ kind: 'h', text: 'Одиннадцать видимых вердиктов стали ничьими' },
{
kind: 'table',
head: ['Сравнение', 'Объединение окон, n = 140', 'Уровень модели, n = 4', 'Исправленное чтение'],
rows: [
['MX-asym-MID против MXFP4', '−2.21 %, p = 9.6e-26', '−2.08 %, p = 0.019', 'ничья'],
['MX-asym-NEAR0 против MXFP4', '−4.99 %, p = 1.6e-44', '−4.76 %, p = 0.032', 'ничья'],
['MX-asym-NEAR0 против NF4', '−0.92 %, p = 1.6e-02', '−0.92 %, p = 0.655', 'ничья'],
['JK-asym-MID против JOINT-KL', '−2.32 %, p = 1.9e-22', '−2.18 %, p = 0.078', 'ничья'],
],
},
{
kind: 'p',
text:
'Точечные оценки почти не сдвигаются: −4.99 % превращается в −4.76 %, а −2.21 % — в −2.08 %. Сдвигается неопределённость. Интервалы растут примерно на корень из 35, когда окна перестают считаться независимыми репликами модели. Одиннадцать из четырнадцати вердиктов превращаются в ничьи; один сохраняется.',
},
{ kind: 'h', text: 'Что сохранилось и почему это всё ещё узко' },
{
kind: 'p',
text:
'Сохранилась строка JK-asym-NEAR0 против JOINT-KL: −2.42 % с интервалом [−3.56 %, −1.26 %] и p = 0.007 на уровне модели. Собственная метка строки говорит 3/4 in-sample, поэтому это не утверждение о невиданном чекпоинте. Отдельно остаётся внутри-модельное наблюдение: MX-asym-NEAR0 обходит MXFP4 в 140 из 140 окон на четырёх моделях. Это утверждение об измеренных текстах, а не новая гарантия для всего семейства.',
},
{
kind: 'quote',
text:
'Единица репликации — часть утверждения. Её нужно писать там, где формулируется утверждение, а не протаскивать незаметно операцией над массивом.',
},
{ kind: 'h', text: 'Симметричная правка — полезный отрицательный результат' },
{
kind: 'p',
text:
'Четыре строки сдвинулись в сторону кодбуков, семь — в обратную. Исправление не просто стирает результаты, благоприятные одной стороне. Оно убирает ложную точность в обоих направлениях и оставляет более узкий, читаемый результат: сохранённые измерения поддерживают несколько наблюдений внутри моделей, но более широкие вердикты по чекпоинтам были завышены.',
},
{
kind: 'ul',
items: [
'PR смержен, а не просто отправлен в апстрим.',
'Анализ перезапущен на уже сохранённых значениях NLL по окнам; обучение моделей и повторный запуск чекпоинтов не заявляются.',
'Репозиторий теперь явно фиксирует выбор репликации во вспомогательной функции, а не полагается на форму массива.',
],
},
],
},
}


const openGigabitEthernet: Post = {
slug: 'open-gigabit-ethernet-artix7',
title: 'Gigabit Ethernet on Artix-7 without a vendor toolchain',
Expand Down Expand Up @@ -1048,7 +1201,7 @@ const eachHalfImportedTheOther: Post = {
},
}

export const posts: Post[] = [eachHalfImportedTheOther, zeroOfSixHundredForty, repairDoesNotPropagate, greenCiUnusable, scaleFieldWidth, openGigabitEthernet]
export const posts: Post[] = [pooledWindowsWereNotCheckpoints, eachHalfImportedTheOther, zeroOfSixHundredForty, repairDoesNotPropagate, greenCiUnusable, scaleFieldWidth, openGigabitEthernet]

export const publishedPosts = () => posts.filter((p) => p.published)

Expand Down
Loading