Сквозная глава
Как этим пользоваться
На экране два графика обучения. Точность на примерах, которые модель уже видела, за пару тысяч шагов доходит до ста процентов. Точность на новых примерах всё это время лежит на уровне угадывания, и лежит так долго, что хочется остановить обучение. А потом, когда учить вроде бы уже нечего, вторая линия почти отвесно уходит вверх. Это явление назвали гроккингом, по марсианскому слову из романа Хайнлайна: понять что-то так полно, что оно становится частью тебя. С него удобно начать последнюю главу, потому что здесь всё, о чём шла речь в книге, можно потрогать своими руками.
Книга была про одно: из частей складывается целое, у которого есть свойства, которых нет ни у одной части. Для того, кто пишет код и работает с моделями, у этой мысли есть рабочая сторона. Её можно проверить. Её можно подделать, и подделку можно поймать. Ею можно пользоваться, чтобы находить то, чего никто не знал. Сразу одна оговорка. Когда мы говорим, что у нейросети «появилась» способность, мы не имеем в виду, что внутри завелось что-то сверх весов. Каждый ответ модели целиком задан весами, входом и зерном генератора случайных чисел. Слово «появилась» говорит о наших описаниях: какой уровень лучше объясняет и предсказывает. О силе, которая приходит снаружи, оно не говорит ничего.
Скачок без новой причины
Нил Нанда с соавторами в 2023 году разобрали маленький трансформер, который учился складывать числа по кругу, как на циферблате: девять часов плюс пять часов дают два. Оказалось, что числа модель держит как углы поворота, сразу на нескольких циферблатах с разным шагом, а сумму находит, доворачивая один угол на другой. Главное было не в этом. Схема с циферблатами начала расти задолго до скачка и росла плавно: величины, которыми авторы мерили её прогресс, ползли вверх без единого рывка. Сначала модель заучивала таблицу ответов, потом рядом с таблицей тихо собиралась схема, а когда схема окрепла, обучение вычистило заученное, и только тогда точность на новых примерах подскочила.
Ступенька получилась из того, как мы смотрим. Ответ на новом примере либо верный, либо нет, и пока заученная таблица заглушает схему, рост схемы в такой оценке не виден вовсе. Плавная перестройка внутри, прочитанная через «да или нет», снаружи выглядит скачком. Отсюда первое практическое правило: резкий скачок наверху не требует нового события внизу. Если метрика прыгнула, не ищи сразу внешнюю причину. Сначала посмотри на плавные величины под ней.
Колено, нарисованное линейкой
В 2022 году Джейсон Вэй с соавторами собрали каталог способностей больших языковых моделей, которые появляются будто бы внезапно: у моделей поменьше их нет совсем, у моделей побольше они есть. Через год Райлан Шеффер с коллегами из Стэнфорда показали, что во многих случаях резкость рисует линейка, которой мерят. Возьми задачу, где ответ из десяти цифр засчитывается, только если верны все десять. Пусть каждую цифру модель пишет верно в половине случаев: весь ответ совпадёт примерно в одном случае из тысячи, то есть почти никогда. Модель подросла, и каждая цифра теперь верна в девяти случаях из десяти. Целиком верен уже каждый третий ответ. Каждая цифра улучшалась ровно, а на графике «верно или нет» получилось колено.
Свою статью авторы назвали вопросом, не мираж ли эти способности. Мираж, впрочем, не сплошной. Часть задач сохраняет скачок при любой плавной оценке, а Чарли Снелл с коллегами в 2024 году научились заранее предсказывать, где такой скачок наступит, дообучая модели поменьше. Значит, эти скачки подчиняются закону, даже когда резки. Правило отсюда простое и дешёвое: никогда не позволяй оценке «верно или нет» быть единственным свидетельством. Логируй рядом что-то плавное: вероятность, которую модель даёт правильному ответу, или долю верных токенов.
Голова, которую можно выключить
Внутри трансформера работают головы внимания, маленькие блоки, каждый из которых решает, на какие из прежних слов смотреть. В конце 2021 года исследователи из Anthropic описали пары таких голов с простой работой. Если раньше в тексте встретилось «Гарри Поттер», а сейчас снова пришло «Гарри», первая голова заранее пометила у каждого слова, какое слово стояло перед ним. Вторая по этой пометке находит слово, перед которым уже было «Гарри», то есть «Поттер», и копирует его в ответ. Вторую голову назвали головой индукции. В 2022 году Кэтрин Олссон с соавторами показали, что в момент, когда такие пары складываются, на кривой обучения виден горб, и в тот же момент модель резко лучше начинает учиться по примерам прямо в запросе.
Это самый чистый пример настоящего порядка в языковой модели. Здесь три уровня: веса, схема из двух голов и способность. Связь между ними проверяется вмешательством, и в небольших моделях её так и проверили: выключаешь головы, и способность падает. Для больших моделей свидетельства пока в основном косвенные. Верхний уровень здесь существует не потому, что так удобно говорить. Он коротко описывает, что делают тысячи весов, и выдерживает проверку отвёрткой: сломал схему, пропала способность. Извне в веса при этом ничего не входит.
Агенты ломаются как отделы
Когда несколько моделей работают вместе, большая часть сбоев выглядит не как нехватка ума, а как плохая организация. Агент забывает свою роль и начинает делать чужую. Держит у себя сведения, которые нужны соседу. Объявляет работу законченной раньше времени. Никто ничего не проверяет. Неудачный шаг повторяют без ограничений. Есть и сбои, которых у одиночки не бывает. Агенты сходятся на первом правдоподобном ответе и теряют то разнообразие, ради которого их собирали вместе. Выдумка одного становится исходной посылкой для другого, и ошибка катится дальше.
Урок тот же, что с отделом из хороших специалистов: собеседования с каждым не гарантируют, что отдел не развалится, и хорошие оценки каждого агента ничего не обещают про их компанию. В 2025 году Андреа Барончелли, который много лет изучал, как о словах договариваются люди, вместе с коллегами показал, что популяции языковых моделей тоже сами приходят к общим названиям. И в этих популяциях возникает общий перекос, которого нет ни у одного агента по отдельности. Если повторяешь такой опыт, сначала измерь одиночного агента: иначе «общая договорённость» может оказаться обычным пристрастием модели, протёкшим в группу.
Открытие делает стая
Есть карточная игра «Сет». У каждой карты четыре признака, цвет, форма, число фигур и заливка, и у каждого признака три варианта. Три карты образуют сет, если по каждому признаку они либо все одинаковы, либо все разные. Для обычной колоды давно известно, что без единого сета можно собрать не больше двадцати карт, а начиная с семи признаков точного ответа не знает никто. Программа FunSearch из DeepMind в конце 2023 года нашла для восьми признаков такой набор, крупнее всех известных. Её наследник AlphaEvolve в 2025 году нашёл способ перемножить две матрицы четыре на четыре с комплексными числами за 48 умножений. Лучшая схема для этого случая держалась с 1969 года, со времён Штрассена, и требовала 49.
Открытие здесь живёт не в одном ответе модели, а в популяции. Языковая модель предлагает правки в коротких программах, быстрая программа-оценщик ставит им баллы, лучшие идут в следующий круг. Популяцию делят на острова, которые почти не обмениваются между собой, чтобы она не схлопнулась к одному решению, и прогоняют тысячи дешёвых циклов. Открытые реализации вроде openevolve позволяют поставить это дома. Главная ловушка одна: если у оценщика есть лазейка, поиск найдёт её раньше, чем решит задачу. Проверку правильности пиши отдельно от подсчёта баллов.
Двадцать строк
Как понять, что уровень, который ты нашёл в своих данных, настоящий, а не красивая сводка? Самая дешёвая проверка называется тестом замкнутости. Есть макропеременная, скажем, суммарная глубина очередей в сервисе, и есть микросостояние, все метрики всех машин. Обучаешь две модели предсказывать макропеременную на шаг вперёд: одной даёшь только её прошлое, другой ещё и всё микросостояние. Обе учатся на начале ряда, а ошибки сравниваешь на его конце, которого модели не видели. Линейная модель здесь только для краткости, на её место встаёт любая.
import numpy as np
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error as mse
def closure_gap(M, X, cut):
M = np.asarray(M, float).reshape(len(M), -1)
y = M[1:]
only_macro = M[:-1]
macro_and_micro = np.hstack([M[:-1], X[:-1]])
err = []
for A in (only_macro, macro_and_micro):
fit = Ridge().fit(A[:cut], y[:cut])
err.append(mse(y[cut:], fit.predict(A[cut:])))
return err[0] - err[1]Если подсказка снизу почти ничего не добавляет, макроуровень замкнут: ему хватает самого себя, как инженеру, который считает трубу, хватает плотности и вязкости без всяких молекул. Дальше разрыв нужно оценить честно. Перевыбери данные несколько сотен раз, кусками, не разрывая время, и посмотри на разброс. Подставь вместо своей переменной случайную смесь микропеременных той же ширины: так видно, сколько даёт переменная, взятая наугад. Перемешай ряд во времени двести раз и докладывай, насколько результат отличается от перемешанных, а не сырое число.
Обязательно прогони всё на шуме с памятью, у которого есть инерция, но нет никакого порядка. Если тест сработал и на нём, ты построил детектор инерции. Проверь ещё, не оказалась ли твоя переменная тайно временем суток, номером релиза или объёмом трафика. И запиши порог решения до того, как посчитаешь.
Решение выходит в три ступени. Уровень настоящий, если он замыкается, описывает тысячи чисел несколькими, переживает перемешивание и одинаково отвечает на одну и ту же причину, как бы её ни выставили внизу. Одна и та же глубина очереди, созданная двумя разными путями, наплывом нагрузки или флагом, который притормаживает обработчики, должна вести к одному и тому же. Полезный, но не основной уровень замыкается и сжимает, а вмешательство проваливает. Всё остальное сводка. Большинство находок окажутся сводками, и именно знание этой доли делает редкий положительный результат ценным.
Восемь вопросов к скрытой силе
Время от времени приходит идея, что на нас действует что-то скрытое: интуиция как сигнал из другого измерения, мысль, которую подтолкнули снаружи. Для таких идей есть проверка в восемь шагов. Назови переносчика влияния и то, насколько сильно он действует на вещество: «что-то в дополнительном измерении» не ответ. Прикинь величину эффекта до того, как рассказывать историю. Для нейрона прикидка выходит такая: тепло тела непрерывно толкает каждую молекулу, а чтобы довести нейрон до разряда, нужно примерно в двадцать миллионов раз больше энергии, чем в одном таком толчке. Назови число, которое убьёт идею, и посмотри, не измерено ли оно уже. Скажи, что идея запрещает, и запиши это до того, как смотреть в данные. Идея, не прошедшая хоть один из этих четырёх шагов, ещё не гипотеза.
Дальше четыре шага строже. Нужен показанный способ обойти тепловую тряску, то есть механизм, в котором толчок слабее тепла всё же меняет исход. Единственный хорошо изученный пример у живого — химия, где исход реакции зависит от того, как повёрнуты крошечные магнитики электронов, их спины. Поле Земли действует на них примерно в пять миллионов раз слабее, чем тепло, но спины почти не замечают тепла те микросекунды, пока идёт реакция, и по ведущей гипотезе именно так работает магнитный компас птиц. Нужно исчерпать скучную версию и проверить, не предсказывает ли она острее: у интуиции есть обычный механизм, и он даёт конкретные кривые того, как часто мы правы при той или иной уверенности. Идея должна выдерживать вмешательство: «головы индукции вызывают обучение по примерам» проверяется выключением голов, «измерение подталкивает нейроны» не проверяется ничем. И последнее: спроси себя, принял бы ты тот же довод ради противоположного вывода. Один стандарт для приятной гипотезы и для неприятной.
Где резать самому
Настоящий опыт возможен там, где можно и наблюдать, и вмешиваться. Фундаментальная физика отпадает: между самыми мелкими вещами, которые удалось разглядеть на коллайдере, и длиной, на которой известные законы перестают работать, лежит промежуток, куда никто не залезет с отвёрткой. Остаются четыре места, и каждое доступно одному человеку с ноутбуком. Распределённые системы, где есть телеметрия, фичефлаги и возможность подать нагрузку. Внутренности моделей, где любую голову можно выключить. Популяции агентов, которые можно запускать сколько угодно раз. И собственные предсказания, если записывать их заранее: тогда интуиция превращается в данные, и видно, как часто ты прав, когда уверен на семьдесят процентов.
На ближайшие выходные хватит двух дел. В субботу возьми неделю телеметрии своего сервиса, выбери одну макропеременную, запиши порог заранее и прогони тест замкнутости, а рядом тот же тест на шуме с такой же инерцией. В воскресенье открой Pythia, набор открытых языковых моделей: у каждой из них выложено 154 промежуточных снимка обучения, от самого начала до конца. Возьми одну из маленьких моделей, пару десятков снимков через равные промежутки и одну задачу, и нарисуй на одном графике две линии: «верно или нет» и вероятность правильного ответа. Если первая линия делает колено, а вторая ползёт ровно, ты своими глазами увидел, как линейка рисует скачок. Если обе прыгают вместе, у тебя в руках задача, которую стоит показать другим.