EnglishРусский Map

Какие LLM пишут похоже

title
Какие LLM пишут похоже
type
summary
summary
Блокнот Typebulb, определяющий схожесть стиля LLM через кросс-энтропию по символьным триграммам
tags
llm, evaluation, stylometry, information-theory
created
2026-07-29
updated
2026-09-14
lang
ru
source_updated
2026-09-14
translated
2026-09-14
translator
lllm/antigravity/gemini-3.7-flash-medium

"You're relatively right!" - это bulb платформы Typebulb: исполняемый блокнот, а не статья. Исходный файл содержит React-компонент, таблицу стилей, блок конфигурации и зашитый снапшот ответов моделей; проза там есть только в текстах подсказок и во вкладке "What this measures" с объяснением математики. В нём нет раздела с результатами, аргументированных выводов и таблицы наблюдений. Корпус был обрезан при ingest'е (оригинальный блок данных занимает 1924 строки, около 790 КБ), поэтому копия в vault'е полностью сохраняет метод и лишь первые два ответа из входных данных.

Это определяет рамки страницы. Метод описан досконально и заслуживает фиксации. Самих результатов в файле нет, поскольку они вычисляются в браузере прямо во время работы блокнота.

Методика измерений

Все ответы, сгенерированные моделью в родительском eval'е (оба хода, если тест состоял из двух), собираются в единый корпус для каждой модели. Каждый корпус преобразуется в распределение вероятностей по символьным триграммам - перекрывающимся окнам из трёх символов. Это грубая языковая модель стиля каждой LLM, построенная на тысячах сэмплов, а не на горстке судейских оценок из eval'а.

Кросс-энтропия H(P, Q) = −Σ P(g)·log₂ Q(g) затем оценивает, сколько бит удивления на триграмму испытывает стилевая модель одной LLM при чтении текста другой. Она раскладывается как H(P, Q) = H(P) + KL(P ‖ Q): собственная энтропия автора плюс расхождение между двумя стилями. Матрица отображает только само расхождение - дивергенцию Кульбака - Лейблера (KL), формально относительную энтропию (откуда и каламбур в названии блокнота). Собственная энтропия каждой модели выводится отдельно в виде небольшого индикатора рядом с названием строки.

Для чтения карты важны три инженерных решения:

Сглаживание. Распределение каждой модели интерполируется с объединённым распределением всех моделей с коэффициентом λ = 0.8, благодаря чему ни у одной триграммы не оказывается нулевой вероятности, а кросс-энтропия остаётся конечной. Главная диагональ явно зануляется: по определению KL(P ‖ P) = 0, и самосравнение не должно штрафоваться сглаживанием.

Симметрия. Дивергенция KL по своей природе асимметрична. Блокнот вычисляет оба направления, показывает среднюю абсолютную асимметрию по отношению к средней дивергенции и выводит среднее Джеффриса для пары, из-за чего отрисовывается только нижний треугольник матрицы. Исходные направленные значения остаются доступны в панели пары.

Стиль, а не позиция. Сравнение строится исключительно на формулировках - словарных привычках, форматировании, регистре - и никогда на содержательной позиции модели. В пояснении многословность прямо называется искажающим фактором (confound), а семейное сходство моделей внутри одного провайдера - ожидаемым эффектом, а не открытием.

Общие маркеры и стоящая за ними статистика

Одно лишь число схожести нельзя проверить глазами, поэтому для каждой пары выводится список терминов, на которые обе модели опираются заметно чаще остальной массы. Термин попадает в список, только если проходит четыре фильтра. Обе модели должны использовать его минимум трижды. Меньшая из двух частот использования должна быть хотя бы вдвое выше частоты по всему полю (объединённый корпус за вычетом обеих моделей). Он не должен входить в 250 самых частых слов корпуса. И он обязан пройти фильтр редкости, взятый из устройства самих моделей: BPE-токенизаторы обучаются по частотности, поэтому "the" занимает один токен, а "congratulatory" - четыре; слово должно стоить не менее двух токенов (фраза - не менее трёх). Ко всем моделям применяется один фиксированный словарь - cl100k_base от GPT-4, чтобы фильтр не подыгрывал чужому токенизатору.

Пятый фильтр отсекает случайные всплески от устойчивых привычек: термин должен встретиться как минимум в двух разных ответах модели. Пять употреблений в рамках одного ответа - это признак темы, а не стилевой тик.

Оставшиеся термины ранжируются по скорректированному удивлению (corrected surprise). Для каждой модели блокнот считает вероятность пуассоновского хвоста для наблюдаемого количества упоминаний при общей базовой частоте, перемножает эти вероятности для пары, берёт −log₁₀ и затем вычитает log₁₀ от числа просмотренных кандидатов в качестве поправки на множественные сравнения (look-elsewhere correction). Из-за этой поправки даже у далёких друг от друга пар всё равно подсвечивается один-два бледных маркера. Результат отображается в формате "luck alone: ≈ 1 in N", причём подсказка явно уточняет: это вероятность того, что случайность породит такой паттерн, а не вероятность того, что паттерн является случайностью (ловушка инверсии вероятности, прямо названная и обойдённая авторами). Отдельно оговорено ограничение: появления слов зависимы (общие темы провоцируют повторы), поэтому шкалу следует воспринимать как калиброванный рейтинг, а не как точные p-value.

Что считается находкой

Блокнот автоматически фиксирует не более трёх находок, опираясь на порог внутри самих данных, а не на подобранный вручную: пара из разных лабораторий признаётся находкой, если они ближе друг к другу, чем медианная пара моделей из одной лаборатории. Модели сгруппированы по исходным создателям, поскольку OpenRouter - это маршрутизатор, а не разработчик: Kimi относится к Moonshot, GLM - к Zhipu, DeepSeek - к DeepSeek, Grok - к xAI (с июля 2026 года SpaceXAI, считаются одной линейкой). Сопоставление с лабораториями и даты релизов зашиты в блоке данных и доступны для аудита.

Даты релизов задают единственную доступную направленность. Математика может показать, что две модели пишут одинаково, но не может сказать, кто у кого учился. Порядок выхода ("выпущена позже") определяет, чьи публичные генерации появились раньше, что в источнике называется приближением к честной стрелке времени - дате отсечки обучающей выборки (training cutoff).

Результат по Kimi и Anthropic

Блокнот открывается с фокусом на Kimi K3 и закреплённой парой K3 <-> Fable 5; если какой-то из моделей нет в данных, выбор сбрасывается. Это состояние по умолчанию - самое близкое к утверждению, что есть в источнике: модель Anthropic и kimi-k3 от Moonshot настолько близки по стилю прозы, что их имело смысл показать первыми. Это захардкоженный начальный вид в коде UI, а не вывод, который автор стал бы аргументировать, защищать или подкреплять числами в тексте. Тот, кто повторяет тезис "Kimi пишет как Claude" со ссылкой на этот источник, цитирует результат, для получения которого нужно запустить блокнот: величина дивергенции, место в рейтинге относительно моделей из одной лаборатории и общие маркеры вычисляются при загрузке страницы и нигде не зафиксированы в виде текста.

Два более поздних источника изучают ту же пару инструментами, которые публикуют конкретные цифры. В приложении к stealing-reasoning-traces-from-proprietary-llm-apis обнаружено, что K3 необычно сильно реагирует на цепочки рассуждений Anthropic, а в anthropic-threat-report-september-2026 Moonshot названа среди лабораторий, которые, по заявлению компании, дистиллировали Claude. Ни один из них не ставит точку - статья сама говорит об этом, а в отчёте не раскрыта методология, - но сходство, на которое блокнот лишь намекает, теперь оформлено как письменное утверждение. Подробнее об этом - в llm-distillation.

Набор моделей

Данные представляют собой один прогон родительского eval'а "You're absolutely right!", в котором 22 модели отвечали на одни и те же промпты в идентичных условиях (датасрез от 2026-07-18). Оценки судьи eval'а включены в снапшот за компанию и никак не используются: в расчёт идут только слова. Из-за обрезки корпуса при сохранении восстановить полный список из 22 моделей по копии в vault'е нельзя. Доступны: Fable 5 и Haiku 4.5 от Anthropic как участники, Gemini 3 Flash как судья eval'а, Kimi K3 по имени в коде начального экрана, а также лаборатории из таблицы сопоставления - Moonshot, Zhipu, deepseek и xAI.

Почему это другой класс инструментов

Все остальные замеры в vault'е оценивают решение задач. structured-output-benchmark оценивает извлечение данных по схеме, benchmarking-opus-5-slopcodebench проверяет, выдержит ли кодовая база скрытые требования, swe-1-7 позиционирует модель по метрикам в бенчмарках кодогенерации. Этот метод не оценивает способности вообще. Он анализирует только то, как модель пишет, выступая количественным аналогом аргументов о чтении поверхностных признаков из slop-marker-convention и credibility-as-slop-test (оба сходятся на том, что сгенерированный текст нельзя надёжно распознать по поверхности). Карта дивергенции триграмм этому не противоречит: она лишь показывает сходство поверхностных стилей двух моделей, что является другой задачей, причём авторское описание аккуратно ограничивает рамки стилем и ни в коем случае не содержанием.

Блокнот: typebulb.com/u/lab/you-re-relatively-right. Полный прогон eval'а встроен в блок данных bulb'а, поэтому анализ полностью воспроизводим из одного этого файла.