Category: AI по-русски

  • Охота на снарка: доказательство гипотезы о двойном покрытии циклами

    Охота на снарка: доказательство гипотезы о двойном покрытии циклами

    Введение

    Полтора месяца назад я писал о том, как внутренняя модель OpenAI опровергла гипотезу Эрдёша о единичных расстояниях — задачу, которой было уже лет семьдесят и над которой (в отличие от многих других задач Эрдёша) реально думало много профессиональных математиков. Тогда я закончил пост вопросом “что дальше, коллеги?”, и вот сегодня мы обсуждаем очередной ответ на этот вопрос.

    10 июля 2026 года OpenAI выложила двухстраничный препринт со скромным названием “A proof of the cycle double cover conjecture“. Гипотеза о двойном покрытии циклами (cycle double cover conjecture, CDC) — одна из самых знаменитых открытых проблем теории графов, стоявшая с начала 1970-х. В разделе “Statement of AI use” написано коротко:

    The proof in this note is entirely due to GPT 5.6 Sol Ultra and the writeup with Codex (with GPT 5.6 Sol).

    Вместе с препринтом OpenAI опубликовала и полный промпт, которым модель запускали, — к нему мы ещё вернёмся, он сам по себе занятный документ.

    Здесь сразу две новости; начну с плохой. В отличие от истории с единичными расстояниями, здесь (пока) нет сборника комментариев от ведущих математиков: препринту три дня, рецензирования не было, а у гипотезы CDC богатая история неудачных “доказательств”, в том числе выложенных на arXiv. Так что формальный статус пока в том, что это лишь заявка на результат, и моя “проверка” в этом посте вряд ли может официально считаться таковой, я всё-таки не совсем специалист.

    Но есть и хорошая новость: доказательство двухстраничное и совершенно элементарное. Его может проверить любой человек, знающий линейную алгебру, — там нет ни компьютерного перебора, ни ссылок на глубокую теорию, только два классических результата из учебников, а дальше прямое доказательство голыми руками.

    Поэтому этот пост устроен не так, как прошлый: гипотезу Эрдёша я пересказывал по чужим комментариям, а здесь мы разберём всё доказательство целиком, до последней строчки. А поскольку доказательство ещё и конструктивное — оно не просто утверждает, что покрытие существует, а объясняет, как его построить, — мы с автором доказательства (то бишь GPT 5.6 Sol) и Claude Fable его дополнительно проверили кодом: реализовали конструкцию и прогнали на десятках тысяч примеров, включая разные сложные конструкции заковыристых семейств графов. Спойлер: ошибок я не нашёл, всё работает; подробности и картинки будут ниже.

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

    Что такое двойное покрытие циклами

    Постановка задачи. Все графы у нас будут конечными и неориентированными; разрешены кратные рёбра (два ребра между одной и той же парой вершин), и циклом мы называем связный подграф, в котором у каждой вершины ровно два инцидентных ребра: треугольник, четырёхугольник, пятиугольник и так далее; пара параллельных рёбер тоже считается циклом (длины 2). Двойное покрытие циклами графа G — это набор циклов (возможно, с повторениями), в котором каждое ребро графа встречается суммарно ровно два раза.

    То, что один раз не получится, было известно давно: разбить граф на рёберно-непересекающиеся циклы можно только если все степени чётные. Это классическая теорема Веблена, близкая родственница эйлеровых обходов. А вот про два раза можно надеяться всегда: у каждого ребра появляется “две стороны”, и, как мы сейчас увидим, это не случайная метафора.

    Пример, с которого всё начинается. Возьмём планарный граф, нарисованный на плоскости без пересечений, например полный граф K_4:

    Рисунок делит плоскость на грани — здесь три треугольника внутри и одна внешняя грань. Граница каждой грани — цикл, и каждое ребро лежит на границе ровно двух граней: с одной стороны от ребра одна грань, с другой — другая. Значит, граничные циклы граней образуют двойное покрытие! На правой картинке это видно буквально: обведём каждую грань замкнутой линией вдоль её границы, и вдоль каждого ребра пройдут ровно две линии.

    Так что для планарных графов (без мостов, о них ниже) гипотеза тривиальна. Уже отсюда видно, что задача глубоко связана с топологией: двойное покрытие циклами — это что-то вроде “набора граней” для графа, который, может быть, ни в какую плоскость и не вкладывается.

    Есть и точная версия этой интуиции, гипотеза о круговых вложениях (circular embedding conjecture): всякий двусвязный граф можно вложить в какую-нибудь замкнутую поверхность — сферу, тор или что-нибудь с ещё большим числом ручек — так, чтобы каждая грань была ограничена простым циклом. Из неё CDC следует немедленно, тем же рассуждением о рёбрах на краю граней.

    Единственное препятствие. Когда двойного покрытия точно нет? Когда в графе есть мост — ребро, при удалении которого граф распадается:

    Мост не может лежать ни на одном цикле вообще (цикл, пройдя по мосту в одну сторону, не сможет вернуться обратно по другим рёбрам). Значит, никакой набор циклов его не покроет даже один раз. Гипотеза утверждает, что это препятствие — единственное:

    Гипотеза (Szekeres, 1973; Itai–Rodeh, 1978; Seymour, 1979). Каждый граф без мостов имеет двойное покрытие циклами.

    Гипотезу связывают и с именем классика теории графов Татта — в списке литературы препринта в качестве источника стоит даже “personal correspondence with H. Fleischner, July 22, 1987”.

    Почему в неё верили. Гипотеза CDC — редкий пример утверждения, в которое верили практически все. Контрпример обязан быть непланарным, а минимальный контрпример, как мы увидим ниже, обязан быть так называемым снарком; снарки же — вещь редкая и хорошо изученная, и на всех известных снарках гипотеза была проверена.

    Более того, Brinkmann, Goedgebeur, Hägglund и Markström (2013) сгенерировали все снарки до 36 вершин включительно (их там миллионы) и проверили на них даже усиленные версии гипотезы. А Alspach, Goddyn и Zhang ещё в 1994 году доказали CDC для всех графов, не содержащих граф Петерсена в качестве подграфа.

    Проблема была в том, что все эти результаты обходили стороной “ядро” задачи, и общий случай не поддавался никому больше полувека. В обзоре открытых проблем CDC всегда была в статусе “outstanding open problem”, а Франсуа Джегер в обзоре 1985 года называл её одной из главных открытых задач теории графов. Так что здесь, как и в случае единичных расстояний, нет сомнений, что умные люди над этой задачей действительно думали, и немало.

    Почему достаточно кубических графов, или охота на снарка

    Начну с классических результатов; они одновременно позволят существенно сузить условие задачи и дадут некоторую интуицию происходящего.

    Первое стандартное рассуждение в этой области — свести всё к кубическим графам, то есть графам, где у каждой вершины ровно три инцидентных ребра.

    Рассуждение такое. Возьмём минимальный (по числу вершин, потом рёбер) контрпример к гипотезе. Вершин степени 0 и 1 в нём нет (изолированная вершина не мешает, а висячее ребро — это мост).

    Вершину степени 2 можно “разгладить”: заменить два её ребра одним (то есть удалить вершину), найти двойное покрытие меньшего графа (он меньше минимального контрпримера, значит, покрытие у него есть) и вернуть вершину на место, удлинив проходящие циклы. Значит, вершин степени 2 в минимальном контрпримере быть не может.

    А вершину степени 4 и больше можно расщепить — раздуть в маленький цикл из вершин степени 3:

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

    Единственная тонкость здесь в том, что расщеплять надо аккуратно, чтобы не создать мост. То, что это всегда возможно, — стандартная лемма о расщеплении вершин (vertex splitting lemma), известная уже очень давно (Fleischner, 1992). Так что получается, что если гипотеза верна для кубических графов без мостов, она верна вообще для всех графов без мостов.

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

    Кубические графы и три цвета. А для кубических графов есть свой отдельный инструмент — рёберные раскраски. Правильная рёберная 3-раскраска — это раскраска рёбер в три цвета так, чтобы в каждой вершине сходились три ребра трёх разных цветов. По классической теореме Визинга хроматический индекс простого кубического графа равен 3 или 4, то есть все кубические графы делятся на трёхцветные и четырёхцветные.

    Ещё Секереш в той самой статье 1973 года заметил: если кубический граф без мостов рёберно 3-раскрашиваем, то двойное покрытие у него есть. Конструкция очень простая: возьмём два цветовых класса, скажем красный и синий. В каждой вершине есть ровно одно красное и ровно одно синее ребро, поэтому красно-синее объединение — это подграф, в котором все степени равны 2, то есть дизъюнктное объединение циклов (чётной длины, цвета чередуются). Вот как это выглядит на призме:

    Таких двуцветных объединений три: красный+синий, красный+зелёный, синий+зелёный. Каждое ребро, будучи, скажем, красным, попадает ровно в два из них. Вот и двойное покрытие!

    Снарки. Значит, минимальный контрпример к CDC — это кубический граф без мостов, который нельзя рёберно раскрасить в 3 цвета. Такие графы (с дополнительными условиями невырожденности: обхват не меньше 5 и цикловая 4-связность, чтобы не считать тривиальные модификации) называются снарками — в честь того самого неуловимого зверя из поэмы Льюиса Кэрролла.

    Название предложил, кстати, известный популяризатор математики Мартин Гарднер в 1976 году, и оно тогда хорошо подходило: снарки действительно долгое время были почти неуловимы.

    Первый и главный снарк человечество нашло ещё в 1898 году — это граф Петерсена из десяти вершин и пятнадцати рёбер, главный контрпример всея теории графов.

    Проверить, что он не 3-раскрашиваем по рёбрам, — хорошее упражнение (подсказка: рёбра, не попавшие в один цветовой класс, образуют объединение циклов чётной длины, а все 2-факторы графа Петерсена — это пары пятиугольников).

    Второй снарк нашёлся только в 1946 году (Blanuša, 1946), а бесконечные семейства снарков построил Isaacs (1975); вот, например, его “цветок” J_5:

    Здесь синий внутренний пятиугольник и длинный красный десятиугольник соединены пятью “тройниками”-звёздочками, и такая конструкция работает для любого нечётного числа лепестков, начиная с пяти.

    Но здесь важно отметить, что снарки являются контрпримерами к раскрашиваемости, а не к двойному покрытию. У графа Петерсена двойное покрытие есть, симметричное и красивое — шесть пятиугольников:

    (Это, кстати, как раз грани вложения графа Петерсена в проективную плоскость, так что здесь снова появляется топология.)

    Но конструкция Секереша для снарков не работает, и нужно было придумать что-то другое.

    За полвека в теории графов сложился целый небольшой жанр: свести какую-нибудь гипотезу к снаркам и убедиться, что на всех известных снарках она верна. Так устроены CDC, гипотеза Фулкерсона о совершенных паросочетаниях, гипотеза Татта о 5-потоках… все дороги ведут к графу Петерсена, но дальше обычно не двигаются.

    Язык потоков

    Второй язык, на котором написано доказательство, — это потоки Татта. Это куда более классический объект, и с ним вы, вероятно, знакомы, но на всякий случай поясню. Идея пришла из физики: представьте, что по рёбрам графа течёт ток, и давайте введём там правила Кирхгофа. Вы наверняка слышали о потоках в контексте задачи о максимальном потоке:

    Но нам сейчас нужно чуть более общее определение.

    Определение. Зафиксируем на каждом ребре произвольное направление (стрелочку) и абелеву группу A. A-поток — это функция f, приписывающая каждому ребру элемент группы A так, что в каждой вершине выполняется закон Кирхгофа: сумма значений на входящих рёбрах равна сумме на исходящих. Поток называется нигде не нулевым (nowhere-zero, NZ-flow), если f(e) \neq 0 на каждом ребре. Чтобы перевернуть стрелочку на ребре, достаточно заменить f(e) на -f(e), поэтому существование нигде не нулевого потока от выбора стрелочек не зависит.

    Татт в 1954 году доказал классический, но всё равно довольно удивительный факт: количество нигде не нулевых A-потоков зависит не от структуры группы A, а только от её размера |A| (и является многочленом от |A| — “потоковым многочленом”). Поэтому говорят просто о k-потоках: есть нигде не нулевой поток в какой-нибудь группе размера k — значит, есть в любой другой того же размера (а значит, и целочисленный поток со значениями 0 < |f(e)| < k, это тоже эквивалентная формулировка). На практике это развязывает руки: группу можно выбирать поудобнее.

    Зачем всё это нужно? Затем, что для планарных графов нигде не нулевые потоки — это в точности раскраски: граф без мостов, нарисованный на плоскости, имеет правильную раскраску граней в k цветов тогда и только тогда, когда у него есть нигде не нулевой k-поток (цвета — элементы \mathbb{Z}_k, поток на ребре — разность цветов слева и справа).

    Знаменитая теорема о четырёх красках на этом языке звучит так: у всякого планарного графа без мостов есть нигде не нулевой 4-поток. Но при этом потоки определены для любых графов, не только планарных!

    Татт предположил, что от планарности можно почти избавиться: его гипотеза о 5-потоках (“у всякого графа без мостов есть нигде не нулевой 5-поток”) известна с 1954 года и остаётся открытой проблемой до сих пор.

    Зато известны два важных безусловных результата:

    • теорема о 8-потоках (Kilpatrick, 1975; Jaeger, 1976): у всякого графа без мостов есть нигде не нулевой 8-поток;
    • теорема о 6-потоках (Seymour, 1981): и даже 6-поток тоже есть.

    Потоки над \mathbb{F}_2^k — это чётные подграфы. Теперь выберем группу поудобнее. Пусть \Gamma = \mathbb{F}_2^3 — векторы из трёх бит со сложением по модулю 2 (XOR); их восемь: от 000 до 111. В этой группе -a = a, так что стрелочки вообще не нужны: условие Кирхгофа в вершине просто говорит, что XOR значений на инцидентных рёбрах равен нулю.

    Теорема о 8-потоках говорит, что рёбра любого графа без мостов можно пометить ненулевыми трёхбитовыми векторами так, чтобы в каждой вершине XOR сходился в ноль. Именно в таком виде мы её и будем использовать.

    У потоков над \mathbb{F}_2^k есть наглядная интерпретация. Посмотрим на один бит потока, скажем, первый: рёбра, где он равен 1, образуют подграф, в котором каждая вершина имеет чётную степень (иначе XOR не сойдётся) — так называемый чётный подграф. А чётный подграф — это всегда объединение рёберно-непересекающихся циклов. То есть \mathbb{F}_2^k-поток — это система из k чётных подграфов, а условие “нигде не нулевой” значит, что они вместе покрывают все рёбра.

    Для кубических графов случай k=2 особенно нагляден: нигде не нулевой \mathbb{F}_2^2-поток — это то же самое, что рёберная 3-раскраска. Ненулевых значений три: 01, 10, 11; в каждой вершине они обязаны встретиться по одному разу (единственный способ получить нулевой XOR из трёх ненулевых значений — взять все три разных). Вот наша призма ещё раз, теперь через потоки:

    Конструкция Секереша тоже переводится на язык потоков и обобщается с кубических графов на любые: если у графа есть нигде не нулевой 4-поток f со значениями в \mathbb{F}_2^2, рассмотрим три подграфа:

    • первый бит f равен 1,
    • второй бит f равен 1,
    • XOR битов равен 1.

    Каждый из них чётный, а каждое ребро попадает ровно в два: из трёх вариантов “первый бит”, “второй бит”, “их XOR” на любом ненулевом значении ровно два истинны.

    Получается, что нигде не нулевой 4-поток влечёт двойное покрытие циклами — это классический результат, известный с 1970-х годов. Но проблема остаётся всё та же: у снарков как раз 4-потока и нет (для кубических графов это эквивалентно 3-раскрашиваемости).

    От четырёх к двум. А что даёт гарантированный теоремой Джегера–Килпатрика 8-поток f со значениями в \mathbb{F}_2^3?

    Повторим тот же трюк: у \mathbb{F}_2^3 есть 7 ненулевых линейных функционалов \theta (способов “свернуть” три бита в один: первый бит, второй, XOR первого и третьего и так далее), и каждый из них даёт чётный подграф \{e : \theta(f(e)) = 1\}.

    Но теперь каждое ребро попадает не в два, а ровно в четыре подграфа из семи: значение f(e) \neq 0 фиксировано, и из 8 функционалов (включая нулевой) на нём не зануляется ровно половина. Получается покрытие циклами, где каждое ребро покрыто ровно четыре раза. Вот как это выглядит на графе Петерсена:

    В первой панели — нигде не нулевой поток f (именно этот поток ещё появится в конце поста), в остальных семи — носители семи функционалов \theta. Каждая панель — чётный подграф, то есть объединение непересекающихся циклов. А кружком во всех панелях отмечено одно и то же ребро, со значением потока f(e) = 101: оно выделено ровно в четырёх панелях, при \theta \in \{001, 011, 100, 110\} — ровно для тех \theta, для которых \theta(101) = 1. И так с каждым ребром.

    Такие конструкции подробно изучали Bermond, Jackson, Jaeger(1983) — покрытия чётными подграфами с предписанными кратностями; с этими учёными мы ещё встретимся ниже.

    Итак, мы можем покрыть каждое ребро четыре раза. А надо — дважды. Так что вся гипотеза CDC, по сути, состоит в том, чтобы сделать этот шаг от четырёхкратного покрытия к двукратному.

    Первый шаг: у каждого ребра два цвета

    Теперь сам препринт. Его конструкцию я изложу полностью, со всеми доказательствами, но своими словами; сверяться можно с оригиналом — там всё уместилось в две страницы.

    Благодаря тому, что мы обсудили выше, мы уже понимаем, что достаточно разобраться с кубическими графами без петель (с кратными рёбрами), у которых есть нигде не нулевой поток со значениями в группе \mathbb{F}_2^3.

    Ключевая идея — новая переформулировка того, что мы ищем. Будем считать восемь элементов \mathbb{F}_2^3 цветами. В конструкции Секереша каждое ребро получало один цвет из трёх; теперь каждое ребро e получит пару P_e = \{s_1, s_2\} из двух различных цветов; цвета по-прежнему являются элементами \mathbb{F}_2^3.

    То есть у каждого ребра теперь два цвета. Потребуем выполнения одного локального условия:

    Вокруг каждой вершины каждый цвет s \in \Gamma встречается в парах инцидентных рёбер 0 или 2 раза.

    Представьте, что каждый цвет s — это нитка своего цвета, и ребро e несёт на себе две нитки: цветов s_1 и s_2 из его пары. Тогда условие говорит, что в каждой вершине нитку любого цвета можно “пропустить насквозь”: цвет либо вообще не заходит в вершину, либо заходит по одному ребру и выходит по другому. А нитка, которая нигде не обрывается, обязана замыкаться в циклы:

    Лемма 1 (лемма 2.1 препринта). Если такая расстановка пар существует, то у графа есть двойное покрытие циклами.

    Доказательство. Для каждого цвета s \in \Gamma соберём подграф M_s из всех рёбер, у которых в паре найдётся s. Локальное условие говорит, что у каждой вершины в M_s степень 0 или 2. Значит, M_s — дизъюнктное объединение циклов. А каждое ребро лежит ровно в двух подграфах M_s, потому что в паре P_e два элемента. Теперь соберём циклы всех восьми подграфов вместе, и готово: каждое ребро покрыто дважды. \blacksquare

    Это можно увидеть на конструкции Секереша: если у нас есть рёберная 3-раскраска, давайте зафиксируем два ненулевых элемента e_1 \neq e_2 и выдадим красным рёбрам пару \{0, e_1\}, синим — \{0, e_2\}, зелёным — \{e_1, e_2\}. Вокруг каждой вершины (где по одному ребру каждого цвета) элемент 0 встречается дважды (красное и синее ребро), e_1 дважды (красное и зелёное), e_2 дважды (синее и зелёное).

    Так что лемма 1 — это “ослабленная 3-раскраска”: цветов теперь восемь, у каждого ребра их два, и правило согласования вокруг вершины более слабое (более гибкое).

    Весь вопрос в том, как построить такую расстановку пар для снарков, где честной раскраски нет.

    Второй шаг: строим пары из потока

    Первый шаг, хотя и содержал уже ключевую идею, но по сути был переформулировкой классических результатов. А теперь начинается собственно новизна в доказательстве GPT 5.6.

    Пусть f — нигде не нулевой \mathbb{F}_2^3-поток; он есть по теореме о 8-потоках. Посмотрим на произвольную вершину v. У неё три ребра; обозначим их a, b, c (порядок выберем произвольно и зафиксируем), а значения потока на них обозначим через x = f(a), y = f(b), z = f(c).

    Условие Кирхгофа говорит, что x + y + z = 0, то есть

        \[z = x + y\]

    (напомню, что мы в \mathbb{F}_2^3, где плюс — это XOR, и минусов нет).

    Все три значения ненулевые, и легко видеть, что они попарно различны: если бы, скажем, было верно, что x = y, то мы бы получили z = x + y = 0. Кстати, отсюда же видно, что множество W = \{0, x, y, z\} замкнуто относительно сложения, то есть это двумерное подпространство в \mathbb{F}_2^3; эта деталь ещё сыграет ниже.

    Теперь выберем элемент t \in \mathbb{F}_2^3 — “базовый цвет” вершины v — и раздадим трём рёбрам вокруг v следующие пары:

        \[a \mapsto \{t,\; t+x\}, \qquad b \mapsto \{t+x,\; t+z\}, \qquad c \mapsto \{t,\; t+z\}.\]

    Проверим локальное условие: цвет t встречается в парах рёбер a и c (дважды), цвет t+x — в парах a и b (дважды), цвет t+z — в парах b и c (дважды), а больше никакие цвета не встречаются вовсе. Все три цвета t, t+x, t+z различны (поскольку x \neq z и оба ненулевые), так что всё честно: вокруг v каждый цвет встречается 0 или 2 раза. Итого получаем, что локальное условие выполнено.

    Полезно записать эти пары единообразно. Введём сдвиги g_{v,e} — по одному на каждую пару (вершина, инцидентное ребро):

        \[g_{v,a} = 0, \qquad g_{v,b} = x, \qquad g_{v,c} = 0,\]

    и тогда все три пары выше — это пары вида

        \[{\,t + g_{v,e},\; t + g_{v,e} + f(e)\,}.\]

    Действительно: для a получаем {t, t+x}; для b{t+x, t+x+y} = {t+x, t+z}; для c{t, t+z}. То есть пара ребра — это “базовый цвет вершины, сдвинутый на g, плюс тот же цвет, сдвинутый ещё и на значение потока”.

    Вот иллюстрация, слева в общем виде, справа с конкретными числами:

    Заметьте, что вся конструкция локальная, и в каждой вершине свой произвольный базовый цвет t = t_v. Это богатое семейство потенциальных раскрасок: в каждой вершине 8 вариантов t_v, плюс ещё свобода в выборе порядка рёбер a,b,c, который определяет сдвиги g.

    Проблема склейки. Но у ребра e = uv два конца! Вершина u предлагает ему пару {t_u + g_{u,e},\; t_u + g_{u,e} + f(e)}, вершина v — пару {t_v + g_{v,e},\; t_v + g_{v,e} + f(e)}. Чтобы расстановка пар была определена корректно, эти две пары должны совпасть на каждом ребре графа одновременно:

    Обе пары имеют вид {A, A+p} и {B, B+p} с одинаковым “шагом” p = f(e) \neq 0.

    Когда такие пары совпадают как множества? Либо A = B, либо A = B + p (тогда множества совпадают “крест-накрест”); одной формулой это можно записать как A + B \in \{0, p\}.

    Подставляя наши A и B и обозначая d_e = g_{u,e} + g_{v,e}, получаем, что пары на ребре e = uv согласованы тогда и только тогда, когда для какого-нибудь \varepsilon_e \in \{0, 1\} выполняется равенство

        \[t_u + t_v + \varepsilon_e f(e) = d_e.\]

    И вот мы пришли к ключевому шагу доказательства.

    Сдвиги g и “невязки” d_e — известные величины, они вычисляются по потоку f и выбранным порядкам рёбер. А базовые цвета t_v (по три бита на вершину) и переключатели \varepsilon_e (по биту на ребро) — неизвестные.

    Всё написанное выше — это система линейных уравнений над полем \mathbb{F}_2, по три битовых уравнения на каждое ребро. Осталось доказать, что она всегда имеет решение.

    Лемма 2 (лемма 2.2 препринта). Система склейки разрешима для любого кубического графа без петель, любого нигде не нулевого \mathbb{F}_2^3-потока f и любого выбора порядков рёбер (то есть сдвигов g).

    Интермедия: вся конструкция на примере

    Прежде чем доказывать разрешимость в общем виде, давайте посмотрим на все наши объекты на конкретном примере, а именно на самом маленьком кубическом графе, полном графе K_4. Он, конечно, не снарк, и для него всё можно было бы сделать по Секерешу, но механика конструкции здесь видна хорошо. Берём нигде не нулевой поток:

    На картинке сверху поток изображён слева: в каждой вершине XOR трёх значений равен 000 (проверьте!). Справа — сдвиги g и невязки d. Скажем, в вершине 0 мы упорядочили рёбра как a = \{0,1\}, b = \{0,2\}, c = \{0,3\}, поэтому по определению сдвигов g_{0,\{0,2\}} = f(\{0,1\}) = 001, а два других сдвига в этой вершине нулевые; и так возле каждой вершины появляется ровно по одному ненулевому сдвигу. Невязка ребра — это XOR сдвигов с двух его концов: например, у ребра \{1,2\} получается d = 001 + 010 = 011 (сдвиг 001 со стороны вершины 1 и сдвиг 010 со стороны вершины 2), а у ребра \{0,1\} оба сдвига нулевые, и d = 000.

    Теперь выписываем систему склейки — шесть уравнений, по одному на ребро — и решаем её (хоть методом Гаусса, хоть просто подбором):

    Наше решение выдаёт вершинам 0 и 1 базовый цвет 000, вершинам 2 и 3 — цвет 011, а на рёбрах \{0,2\} и \{0,3\} добавляет переключатель \varepsilon = 1 (это те рёбра, где пары с двух концов совпадают “крест-накрест”).

    Подставляя найденные t_v в формулу для пар, получаем расстановку, в которой вокруг каждой вершины каждый цвет встречается 0 или 2 раза; теперь можно собирать подграфы M_s. Непустых получается четыре:

    Узнаёте? Это в точности четыре треугольные грани планарного рисунка K_4, с картинки, с которой начинался этот пост. Наша конструкция, начав с потока, сама пришла к вложению графа в плоскость. Конечно, для планарного графа в этом ничего нового или интересного нет, но подчеркну ещё раз: самой конструкции всё равно, планарен граф или нет — для графа Петерсена она точно так же выдаст двойное покрытие, и мы его ещё увидим ниже.

    А теперь вернёмся к самой лемме, но прежде чем её доказывать, оценим ситуацию. Неизвестных у нас 3n + m битов, где n — число вершин, m — число рёбер; уравнений 3m. Для кубического графа m = 3n/2, поэтому 3n + m = 3n + 3n/2 = 3m: система квадратная! Но радоваться рано, потому что она очевидно вырожденная; например, прибавить ко всем t_v одну и ту же константу эквивалентно тому, чтобы ничего не изменить, ведь все уравнения зависят только от сумм t_u + t_v.

    Значит, у однородной системы есть нетривиальное ядро, а значит, отображение “неизвестные \to левые части” не сюръективно, и не всякая правая часть достижима.

    Лемма утверждает, что конкретная правая часть d, происходящая из потока, достижима всегда. Здесь, очевидно, должно сыграть какое-то специальное свойство d; и этим свойством окажется чётность.

    Шаг 3: чудо чётности

    Когда система линейных уравнений Lw = d (где w — вектор из всех наших неизвестных) неразрешима? Когда из уравнений выводится противоречие: можно так скомбинировать уравнения (над \mathbb{F}_2 — просто выбрать подмножество и сложить), чтобы слева всё сократилось в тождественный ноль, а справа остался не ноль.

    Классическая линейная алгебра (в функциональном анализе это называют альтернативой Фредгольма, в конечномерном случае это просто утверждение \mathrm{im}\, L = (\ker L^{\top})^{\perp}) говорит, что это единственная возможная причина неразрешимости:

    Система разрешима \Longleftrightarrow всякая комбинация уравнений, зануляющая левую часть, зануляет и правую.

    Разберёмся, как выглядят “комбинации уравнений”. Это единственная действительно техническая часть доказательства, и в целом её можно пропустить. Но я бы рекомендовал всё-таки разобраться, потому что хоть она и техническая, но на удивление простая для доказательства знаменитой открытой проблемы.

    На каждое ребро e приходится три битовых уравнения (по числу бит в \mathbb{F}_2^3), и выбрать их подмножество с последующим сложением — это то же самое, что применить к обеим частям векторного уравнения ребра линейную функцию \eta_e : \mathbb{F}_2^3 \to \mathbb{F}_2.

    Так что комбинация уравнений всей системы — это набор функций \eta = (\eta_e), по одной на ребро (в том числе здесь может быть тождественно нулевая функция, которая значит “уравнения этого ребра не берём”).

    Комбинация зануляет левую часть, если после сложения исчезают все неизвестные:

    • коэффициент при t_v: в левых частях t_v входит в уравнения всех трёх рёбер вокруг v, поэтому нужно, чтобы \sum_{e \ni v} \eta_e = 0 (как функция) для каждой вершины v;
    • коэффициент при \varepsilon_e: этот бит входит только в уравнение своего ребра с коэффициентом f(e), поэтому нужно, чтобы \eta_e(f(e)) = 0 для каждого ребра e.

    Назовём набор функций \eta, удовлетворяющий этим двум условиям, препятствием. По альтернативе Фредгольма лемма 2 сводится к следующему: для всякого препятствия \eta выполнено

        \[\sum_{e} \eta_e(d_e) = 0.\]

    То есть любое препятствие, занулив левую часть, обязано занулить и правую; если это так, то противоречия не выведешь, и система разрешима.

    Локальный анализ. Зафиксируем вершину v с рёбрами a, b, c и потоками x, y, z = x+y и посмотрим, что условия препятствия говорят локально. Во-первых,

        \[\eta_a + \eta_b + \eta_c = 0.\]

    Во-вторых,

        \[\eta_a(x) = \eta_b(y) = \eta_c(z) = 0.\]

    Обозначим \lambda_v = \eta_b(x) и вычислим:

        \[0 = \eta_c(z) = (\eta_a + \eta_b)(x + y) = \underbrace{\eta_a(x)}_{=0} + \eta_a(y) + \eta_b(x) + \underbrace{\eta_b(y)}_{=0},\]

    откуда \eta_a(y) = \eta_b(x); обозначим это значение через \lambda_v = \eta_a(y) = \eta_b(x).

    Теперь заметим, что вклад вершины v в интересующую нас сумму легко выражается через \lambda_v. Мы ведь знаем, что d_e = g_{u,e} + g_{v,e}, поэтому \sum_e \eta_e(d_e) = \sum_v \sum_{e \ni v} \eta_e(g_{v,e}) — это просто перегруппировка слагаемых по концам рёбер (здесь используется, что петель нет: у каждого ребра два разных конца).

    А вокруг v сдвиги почти все нулевые: g_{v,a} = g_{v,c} = 0, g_{v,b} = x, так что

        \[\sum_{e \ni v} \eta_e(g_{v,e}) = \eta_b(x) = \lambda_v.\]

    Ключевое наблюдение. Утверждается, что \lambda_v — это чётность числа ненулевых функционалов среди \eta_a, \eta_b, \eta_c. Проверим оба случая.

    Случай \lambda_v = 0. Тогда \eta_a зануляется и на x, и на y (мы только что доказали, что \eta_a(y) = \lambda_v = 0), то есть зануляется на всём подпространстве W = \langle x, y \rangle = \{0, x, y, z\} — помните, я обещал, что мы его ещё встретим?

    Аналогично, \eta_b зануляется на W (на x по определению \lambda_v, на y по условию препятствия), и \eta_c = \eta_a + \eta_b тогда тоже.

    Но W — двумерное подпространство трёхмерного пространства \Gamma, и функционалы, зануляющиеся на нём, образуют одномерное пространство: нулевой и ровно один ненулевой; назовём его \theta. Значит, каждый из \eta_a, \eta_b, \eta_c — это либо 0, либо \theta; а поскольку их сумма равна нулю, \theta встречается среди них чётное число раз: ноль или два. Итого получили, что чётность ненулевых равна 0, и это совпадает с \lambda_v.

    Случай \lambda_v = 1. Выпишем значения функционалов на базисе (x, y) подпространства W: у \eta_a это (0, 1), у \eta_b(1, 0), у \eta_c = \eta_a + \eta_b(1, 1). Все три ненулевые (что бы функционалы ни делали на третьей координате). Ненулевых три, чётность 1, то есть опять всё сходится.

    Финальный аккорд. Складываем по всем вершинам:

        \[\sum_e \eta_e(d_e) = \sum_v \lambda_v = \sum_v \#\{e \ni v : \eta_e \neq 0\} \bmod 2.\]

    Но в последней сумме каждое ребро e с \eta_e \neq 0 посчитано ровно два раза — по разу на каждом конце! Это тот же самый двойной подсчёт, которым первокурсникам доказывают “лемму о рукопожатиях” о том, что сумма степеней вершин в графе чётна.

    Значит, сумма чётна, то есть равна нулю в \mathbb{F}_2. Это значит, что любое препятствие зануляет правую часть, то есть система склейки разрешима, расстановка пар существует, и по лемме 1 двойное покрытие циклами есть. \blacksquare

    Вот и всё доказательство. Давайте перечислим, что мы использовали:

    • сведение к кубическим графам — стандартный факт из середины 1980-х;
    • теорема о 8-потоках Килпатрика–Джегера — оттуда же;
    • собственно новые конструкции — переформулировка с парами цветов, локальный анализ из потока и лемма о разрешимости системы, где нет ничего, кроме линейной алгебры над \mathbb{F}_2 и подсчёта чётности.

    Ни перебора случаев, ни ста страниц выкладок, ни теории, выходящей за пределы обычного курса теории графов. Конечно, я мог что-то пропустить, но кажется, что ошибке тут прятаться особо негде.

    Проверяем руками и кодом

    Думаю, многие сядут разбирать препринт с мыслью “где-то здесь должна быть ошибка”: у CDC длинная история ложных доказательств, а тут двухстраничное решение полувековой открытой проблемы. Мы с вами прошли по каждому переходу, и я честно не нашёл, к чему придраться. Использованные внешние результаты (сведение к кубическим графам и 8-поток) общеизвестны и многократно передоказаны в учебниках.

    Но у этого доказательства есть свойство, которое сильно упрощает если не его проверку, то уж точно перебор примеров: оно конструктивное. По графу и потоку строится конкретная система линейных уравнений; её можно решить хоть бы и методом Гаусса, получая пары, из пар — подграфы M_s, из них — циклы.

    Каждый шаг доказательства выше можно запрограммировать, а каждое промежуточное утверждение — проверить assert’ом: что пары с двух концов ребра совпали, что вокруг каждой вершины каждый цвет встречается 0 или 2 раза, что M_s распадаются в циклы, что каждое ребро покрыто ровно дважды. Если бы в доказательстве леммы 2 был изъян, то на каком-нибудь графе с каким-нибудь потоком система оказалась бы неразрешимой, и мы бы смогли обнаружить.

    Мы с Claude Code попробовали перебрать кое-какие классические примеры. Что проверялось:

    • граф Петерсена: у него ровно 28 560 нигде не нулевых \mathbb{F}_2^3-потоков, и мы перебрали все (плюс случайные перестановки локальных порядков рёбер); система разрешима всегда, покрытие корректно всегда;
    • снарки: цветки Айзекса J_5, J_7, \ldots, J_{13}, граф Титце, граф Петерсена с раздутыми в треугольники вершинами (это стандартный способ плодить нераскрашиваемые кубические графы) — проверили десятки случайных потоков на каждом;
    • мультиграфы с кратными рёбрами: тета-граф (две вершины, три параллельных ребра), кольца из двойных рёбер и случайные кубические мультиграфы; тем самым мы проверили, что у леммы всё в порядке и с циклами длины 2;
    • классические примеры: куб, графы Хивуда, Паппа, Дезарга, додекаэдр — проверили по полсотни случайных потоков; а на совсем маленьких графах (K_4, K_{3,3}, призма, мультиграфы выше) снова запустили полный перебор всех нигде не нулевых потоков;
    • случайные кубические графы до 200 вершин, порядка двухсот штук;
    • и отдельно на маленьких графах мы брутфорсом перечислили все линейные зависимости системы и убедились, что они ровно те, что описаны в доказательстве (условия-“препятствия”), и что все они зануляют правую часть.

    Итого мы сделали более тридцати пяти тысяч запусков конструкции, и не нашли ни единого сбоя. Вот как результат выглядит на графе Петерсена; слева нигде не нулевой поток (тот самый 8-поток, помеченный битовыми строками), справа — пары, которые выдало решение системы склейки:

    А вот восемь подграфов M_s — двойное покрытие, построенное по этим парам:

    Каждое ребро выделено ровно на двух панелях из восьми; три подграфа оказались пустыми. В этом примере покрытие состоит всего из пяти циклов: два пятиугольника, внутренняя пентаграмма, шестиугольник и один длинный цикл длины 9.

    А вот пример побольше, цветок Айзекса J_{13}; слева его покрытие, а справа уже совершенно нечитаемый случайный кубический граф:

    И вот покрытие для цветка Айзекса в читаемом виде:

    Разумеется, ни моя проверка, ни прогоны кода не заменяют настоящего рецензирования — это просто иллюстрации. Но доказательство такого размера и такой элементарности сообщество проверяет быстро, а ещё оно прямо-таки напрашивается на формализацию в Lean: два классических факта плюс три страницы линейной алгебры. Не удивлюсь, если к моменту, когда вы это прочитаете, формализация уже будет готова.

    Промпт как исторический документ

    Теперь о том, как доказательство было получено и что происходило вокруг.

    OpenAI опубликовала полный промпт, которым запускали GPT 5.6 Sol Ultra, и это довольно любопытное чтение. Модели было доступно до 64 параллельных субагентов, и промпт в основном состоит из инструкций, как управлять этим роем. Например (перевод мой):

    Начните с по-настоящему разнообразного портфеля подходов. <…> Не сообщайте большинству агентов текущий предпочтительный подход. Сохраняйте независимость в ранних раундах, чтобы агенты не сошлись все к одной и той же привлекательной, но неполной редукции. < … >

    Используйте конкурентных агентов (adversarial agents) на всём протяжении доказательства: каждый кандидат в доказательство должен проверяться на точную двукратность покрытия, на замкнутые маршруты с повторными рёбрами, маскирующиеся под циклы, на двуциклы из параллельных рёбер, на несвязные графы, на точки сочленения, на мосты, привнесённые редукциями, и на циклическое использование утверждения, эквивалентного самой CDC.

    Отклоняйте отчёты о статусе, расплывчатый оптимизм и заявления, что недоказанное глобальное утверждение о согласованности — это “рутина”.

    Последний пункт особенно хорош: “глобальное утверждение о согласованности” — это как раз лемма 2, и промпт заранее запрещает модели объявить её очевидной. Очевидно, такой failure mode авторы промпта видели на практике.

    Отмечу ещё пару строк. Промпт прямо инструктирует модель: “Assume for purposes of this task that a complete affirmative proof exists” — “считайте, что полное доказательство существует”. Кроме того, он отдельно запрещает модели лезть в интернет проверять статус задачи и отвечать “это открытая проблема”.

    То есть авторы промпта целенаправленно запрещали модели использовать её (уже наверняка имеющееся) знание о том, что CDC не решена, — иначе она, как любая хорошо выдрессированная LLM, вежливо отказалась бы её решать.

    И вот ещё один крутой штрих: “Spend at least 8 hours on this before even thinking of returning or giving up” — “потратьте хотя бы 8 часов, прежде чем даже думать о том, чтобы сдаться”. Говорят, что модель управилась меньше чем за час.

    В треде на Hacker News прикинули стоимость такого запуска — оценки примерно от 300 до13000 в зависимости от предположений о железе. Согласитесь, что за решение полувековой важной проблемы это в любом случае недорого.

    И ещё одно наблюдение оттуда же: удивительно, насколько большая часть промпта уходит на то, чтобы просто заставить модель действительно решать задачу, а не отчитываться о трудностях. Это довольно любопытный эффект, и хотя с моим личным опытом он пока не сходится, как знать, что нас ждёт в ближайшем будущем…

    Реакции: “could have been discovered in the 1980s”

    Первым из известных математиков подробно отреагировал Томас Блум — тот самый хранитель erdosproblems.com, которого мы встречали и в истории с единичными расстояниями. В треде на X он пишет, что это “a very nice proof” — короткое, элементарное и такое, которое “могло быть найдено в 1980-х”. Он пишет, что никакой новой техники в нём нет, есть “небольшой контринтуитивный поворот” поверх хорошо известных идей.

    Вся критика Блума сводится к оформлению: препринт не цитирует работы, из которых выросли его ключевые идеи, в первую очередь ту самую статью Бермона, Джексона и Джегера 1983 года (о ней мы говорили выше: именно там развита техника покрытий чётными подграфами, дающая, в частности, то самое четырёхкратное покрытие каждого ребра, которое новое доказательство наконец “делит пополам”). Как пишет the-decoder:

    This is a frequent issue with AI-generated proofs and papers: they use ideas and proof strategies taken from the literature without proper citation.

    Это действительно известный недостаток, и дословно ту же претензию Мелани Мэтчетт Вуд предъявляла к работе про единичные расстояния (я подробно писал об этом тогда): модель “знает” большой объём литературы, и ей трудно отличить выученную идею от порождённой. Полностью корректная расстановка ссылок — пока не до конца решённая проблема AI-математики. Впрочем, как вы понимаете, это не то чтобы серьёзная критика.

    А ещё, разумеется, на HackerNews тут же высказались о характере доказательства: это ловкий трюк, который каким-то образом ускользнул от всех экспертов, а не построение новой теории. Настоящей вехой, как пишет один из комментаторов, будет момент, когда AI-модель решит проблему, требующую создания новой теории на десятки страниц.

    Ну что тут скажешь… Я много раз уже писал и рассказывал про moving the goalposts в AI. В науке с этим даже хуже, чем в более прикладных областях.

    Почему же люди это пропустили? Дальше моя личная гипотеза, я на ней не настаиваю. Но мне кажется, что всё дело в направлении атаки.

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

    Новый ход от GPT состоял в том, чтобы отдать каждому ребру не значения функционалов, а пару элементов группы, причём пару, определённую с точностью до локального сдвига \varepsilon_e. И вся проблема согласования раскраски сводится к одной глобальной линейной системе уравнений.

    После этого остаётся ещё “чудо чётности” из леммы 2; его, пока не выпишешь систему, просто неоткуда увидеть.

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

    Такие доказательства легко потерять проверить и очень сложно найти. Человек-эксперт скорее будет заниматься более многообещающими направлениями, а модель с 64 субагентами и восемью часами машинного времени может позволить себе копать там, где эксперт даже не остановился бы.

    Как заметил Якоб Цимерман по поводу прошлого результата, AI-системы “may play for longer and in more treacherous waters than mathematicians without getting overwhelmed”. Похоже, это и есть новая суперспособность текущих AI-систем: не гениальность, а невозмутимость и последовательность.

    Что остаётся открытым

    Итак, GPT решил важную открытую проблему. Но это не значит, что теория графов лишилась своего святого Грааля и теперь станет мёртвой наукой. CDC была узлом в целой сети гипотез о кубических графах и снарках, и большинство узлов этой сети всё ещё остаются открытыми.

    • Гипотеза Татта о 5-потоках (1954): у всякого графа без мостов есть нигде не нулевой 5-поток. Новое доказательство её не задевает: между 5-потоками и CDC нет известных импликаций ни в одну сторону, это соседние, но независимые вершины в сети гипотез.
    • Berge–Fulkerson conjecture (1971): в каждом кубическом графе без мостов найдутся шесть совершенных паросочетаний, покрывающих каждое ребро ровно дважды. Это родная сестра CDC (тоже “каждое ребро ровно дважды”, только теперь паросочетаниями), и она по-прежнему открыта.
    • Гипотеза Джегера о петерсеновской раскраске: рёбра любого кубического графа без мостов можно “покрасить рёбрами графа Петерсена” с сохранением смежности. Это утверждение влечёт и CDC, и гипотезу Фалкерсона, так что теперь оно стало чуть менее недосягаемым по последствиям, но само по себе всё ещё не доказано.
    • Ориентируемая CDC: можно ли всегда найти двойное покрытие, циклам которого можно придать направления так, чтобы каждое ребро проходилось два раза в противоположных направлениях? (Для покрытий из граней вложения в ориентируемую поверхность это так.)
    • Малые покрытия: гипотеза о том, что всегда достаточно покрытия, циклы которого группируются в 5 чётных подграфов. Конструкция из препринта даёт 8 подграфов M_s, но от восьми до пяти может быть ещё очень далеко.
    • Круговые вложения: та самая топологическая гипотеза, из которой CDC следовала; теперь следствие доказано, а причина — нет, и это отдельный интересный вопрос.

    Так что у специалистов по снаркам работы не убавилось, скорее наоборот: интересно будет посмотреть, какие из “соседних” утверждений окажутся принципиально сложнее, а какие тоже падут в ближайшем будущем.

    Заключение

    Итого получается вот какая картина. Гипотеза о двойном покрытии циклами имела 50-летнюю историю и статус “одной из главных открытых проблем теории графов”. И вот на днях она получила короткое, элементарное, конструктивное доказательство, которое, по утверждению OpenAI, полностью придумала модель GPT 5.6 Sol Ultra за час работы 64 параллельных агентов.

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

    В мае мы получили опровержение гипотезы Эрдёша о единичных расстояниях, а в июле — доказательство CDC. Оба результата устроены одинаково: здесь не развивается новая мощная теория, но происходит некоторый неожиданный поворот поверх классических инструментов, найденный там, куда эксперты не смотрели, потому что направление “было понятно, что не работает”.

    Я не знаю, сколько ещё знаменитых задач имеют решения такого типа — короткие, но контринтуитивные. Судя по скорости прогресса, мы скоро узнаем: похоже, тот самый систематический поиск “низко висящих фруктов” в математике, о котором я говорил в последний год, уже идёт полным ходом.

    Если у вас есть любимая гипотеза, в которую вы верите, самое время написать про неё хороший промпт.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • JEPA Яна Лекуна и модели мира: тридцать лет одной идеи

    JEPA Яна Лекуна и модели мира: тридцать лет одной идеи

    Введение

    Один из отцов глубокого обучения Ян Лекун уже несколько лет повторяет тезис, который в эпоху всеобщего восторга от LLM звучит слегка еретически: авторегрессионные большие языковые модели — это тупик на пути к интеллекту человеческого уровня. Не просто “не самый лучший путь”, а именно тупик; по мнению Лекуна, одним только масштабированием предсказания следующего токена мы до настоящего понимания мира не доедем. Он, конечно, видит, что по дороге в этот тупик языковые модели успевают, например, опровергать гипотезы Эрдёша, но Лекуна это не убеждает.

    Любимый его аргумент в том, что домашний кот моделирует физику окружающего мира лучше любой LLM, а подросток осваивает вождение примерно за двадцать часов практики без синтетического RL-окружения, потому что у него уже есть модель мира, в которой можно “прокрутить” последствия поворота руля, не вылетая при этом в кювет по-настоящему.

    В этом посте я хочу рассказать, на что Лекун ставит вместо языковых моделей, и заодно дать общее введение в тему, проследив по сути одну и ту же идею через тридцать лет её истории, от сиамских сетей 1993 года до современных моделей мира (world models).

    Технических деталей будет немало, будут и формулы, но я постараюсь, чтобы для каждого шага была видна интуиция, а отдельные кусочки складывались в единую, надеюсь, стройную картину. Пост получится длинный и довольно теоретический, в духе моих постов про термодинамику обучения и TurboQuant. Зато по дороге мы заодно обсудим много разных методов самообучения (self-supervised learning), потому что JEPA лучше всего понимать не как конкретное изобретение 2022 года, а как точку, в которой сходятся метрическое обучение (metric learning), контрастивное обучение (contrastive learning), маскированное моделирование (masked modeling) и модели мира (world models).

    Сразу порекомендую пару других изложений: YouTube-канал Welch Labs выпустил двухчастный разбор под названием “Yann LeCun’s $1B Bet Against LLMs” (part 1, part 2), и сам Лекун его репостнул со словами “excellent tutorial video”. Кроме того, есть подробный текстовый разбор Рохита Бандару, названием которого я надеюсь закрыть сразу все очевидные для русского уха шутейки. Согласитесь, лучше уже не придумаешь: “Deep Dive into Yann LeCun’s JEPA“. Пост, кстати, отличный; но мы с вами посмотрим шире и пойдём по первоисточникам.

    Аббревиатура JEPA расшифровывается как Joint-Embedding Predictive Architecture, “предсказательная архитектура с совместными вложениями”. И главная мысль во всём этом ровно одна:

    Обучение идёт через предсказание представлений (извлечение абстрактного смысла) того, чего ты не видишь, а не через пиксели или токены. Хорошая абстракция здесь не аппроксимация, а суть: разумно устроенная система должна уметь выбрасывать то, что предсказать невозможно или незачем.

    Звучит как философия, и в манифесте 2022 года (LeCun, 2022) это действительно подано довольно абстрактно. Но та же идея возникла ещё за тридцать лет до аббревиатуры JEPA, а вскоре после постановочной статьи стали появляться варианты этих моделей, хорошо решающие весьма практические задачи. В этом посте мы обсудим весь этот долгий путь.

    Главная мысль за пять минут

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

    Возьми два вида одного и того же кусочка мира, прогони каждый через (возможно, общий) кодировщик и выстрой геометрию двух полученных векторов друг относительно друга.

    От эпохи к эпохе меняются относительно второстепенные вещи:

    • во-первых, что это за два вида: две подписи, два случайных кропа одной картинки, настоящее и будущее в видео, состояние и состояние после действия в RL;
    • во-вторых, как именно сравниваются вложения: через зазор (margin), через softmax по негативным примерам или через регрессию в латентном пространстве;
    • в-третьих, как не дать представлению сколлапсировать, то есть схлопнуться в константу, на которой любая “похожесть” становится тривиально идеальной; эта проблема, как мы увидим, окажется центральной для всего сюжета.

    В терминологии Лекуна и его команды принято различать три семейства архитектур; это разделение лучше всего нарисовано на первой картинке статьи про I-JEPA (Assran et al., 2023):

    • Joint-Embedding Architecture (JEA): два кодировщика, на выходе которых должны получаться близкие векторы для совместимых друг с другом входов. Здесь главное инвариантность: “эти два вида должны иметь одно и то же представление”. Сюда попадают сиамские сети, контрастивные методы, BYOL — а если разрешить кодировщикам работать с разными модальностями, то и CLIP, о котором ниже.
    • Generative Architecture: модель напрямую восстанавливает сигнал, по видимой части картинки дорисовывает невидимую в пикселях. Сюда попадают автокодировщики, MAE, диффузионные модели, да и авторегрессионные LLM в широком смысле.
    • Joint-Embedding Predictive Architecture (JEPA): гибридный подход, в котором есть кодировщики, как у JEA, но добавлен предсказатель (predictor), который по представлению одного вида и описанию того, что мы предсказываем (позиция цели, сдвиг во времени, действие), достраивает представление другого вида. То есть мы переходим от “два представления должны быть одинаковыми” к чему-то вроде “из этого представления и этого отношения должно выводиться то представление”.

    Разница между JEA и JEPA тонкая, но принципиальная: JEA требует, чтобы x и y были по сути взаимозаменяемы, отсюда и инвариантность к аугментациям, JEPA же позволяет x и y нести разную информацию. Контекст и цель не обязаны быть одним и тем же, но между ними есть отношение, и именно это отношение предсказатель должен выучить.

    И сразу обещанный сквозной пример, одно «уравнение», которое будет эволюционировать через весь текст. На каждом шаге мы будем задавать себе один и тот же вопрос, только формулировка немного меняется:

    • сиамские сети: «эти две подписи (лица) — одного человека?»;
    • контрастивное обучение: «какой из кандидатов-видов совместим с этим контекстом?»;
    • методы без негативов: «предскажи представление учителя — без негативов»;
    • маскированное латентное предсказание: «что должен означать скрытый кусок, если смотреть на его окружение?»;
    • JEPA как модель мира: «какое латентное состояние следует из этого состояния и этого действия?»;
    • иерархическая JEPA: «что следует — на нескольких уровнях абстракции и нескольких масштабах времени?».

    И вот таймлайн всего пути; на нём пять параллельных линий самообучения, каждая тянется слева направо и в конце концов сходится в JEPA-манифесте 2022 года.

    Теперь — медленно, с самого начала.

    Сиамские сети: как сравнивать, не называя

    Историю принято начинать с 1993 года, но ещё за год до этого, в 1992, Сюзанна Беккер и Джеффри Хинтон опубликовали в Nature работу про самоорганизующуюся сеть, которая обнаруживает поверхности в случайно-точечных стереограммах (Becker, Hinton, 1992). Устроено это было так: два модуля сети смотрят на соседние участки изображения и учатся максимизировать взаимную информацию между своими выходами в расчёте на то, что у соседних участков есть общая скрытая причина (глубина поверхности).

    Это уже явный предтеча всего дальнейшего по структуре: два кодировщика, общая скрытая цель, обучение через согласие. А идея, что хорошие признаки — это признаки, очищенные от избыточности, ещё старше: она восходит к принципу сокращения избыточности нейрофизиолога Хораса Барлоу (Barlow, 1961), а в нейросетевом виде её формулировал ещё тот самый Шмидхубер в виде predictability minimization (Schmidhuber, 1992), где детекторы признаков соревнуются с предсказателями, пытающимися их предсказать друг из друга. Мы ещё встретимся с Барлоу ниже, когда через тридцать лет метод Barlow Twins назовут именно в его честь.

    А собственно история сиамских сетей начинается со статьи «Signature Verification using a “Siamese” Time Delay Neural Network» (Bromley et al., 1993; среди авторов, между прочим, был и сам Ян Лекун). Работа решала вполне прикладную задачу — проверить, что подпись на чеке настоящая, то есть сравнить имеющуюся подпись с настоящим образцом, но идея, которая оттуда выросла, оказалась куда долговечнее задачи.

    Они взяли две одинаковые подсети с общими весами (отсюда и название “сиамские”), каждая из которых кодирует одну из подписей в вектор признаков, а потом измеряли расстояние между этими векторами:

    Идея, разумеется, в том, чтобы потом считать маленькое расстояние подтверждением подлинности, а большое — подделки. Ключевая и совсем не очевидная на тот момент вещь здесь — это связывание весов (weight tying): обе ветви имеют одни и те же веса, то есть дают одну и ту же геометрию на выходе. Мы перестаём обучать классификатор (“это подпись Иванова”) и начинаем обучать геометрию пространства признаков. Это и есть то зерно, из которого выросло всё остальное.

    Идея была не то чтобы забыта, но оставалась без развития добрый десяток лет. Только в середине 2000-х её оживила и обобщила группа всё того же Лекуна. Две работы, попавшие тогда на CVPR, сделали из “сиамского трюка” общий принцип дискриминативного метрического обучения (discriminative metric learning).

    Сначала была “Learning a Similarity Metric Discriminatively” (Chopra, Hadsell, LeCun, 2005) про верификацию лиц на ровно той же сиамской идее:

    А затем вышла, на мой вкус, одна из недооценённых классических статей: “Dimensionality Reduction by Learning an Invariant Mapping” (DrLIM; Hadsell, Chopra, LeCun, 2006). Именно там появляется контрастивная функция потерь (contrastive loss function) в её каноническом виде. Пусть пара объектов имеет метку Y (0 — «похожи», 1 — «не похожи»), а D_W — расстояние между их вложениями; тогда

        \[\mathcal{L}(W) = (1-Y)\,\tfrac12\, D_W^2 \;+\; Y\,\tfrac12\,\big(\max(0,\; m - D_W)\big)^2.\]

    Первое слагаемое здесь работает на похожих парах и “тянет” их друг к другу. Второе работает на непохожих, отталкивая их до некоторого значения зазора m (margin); дальше зазора отталкивать уже не нужно, и штраф обнуляется. Авторы, кстати, объясняли всё это на языке механики: похожие пары соединены пружинами, которые их стягивают, а непохожие — пружинами-отталкивателями, которые перестают действовать на расстоянии m; и в итоге вся конструкция должна релаксировать к равновесию, как физическая система.

    Здесь, кстати, впервые ставится и решается проблема коллапса. Если убрать второе слагаемое, у сети остаётся одно тривиальное решение — отображать вообще всё в одну и ту же точку. А если ввести его без зазора, то появляется другое — продолжать растаскивать вложения непохожих объектов на бесконечность. Зазор m нужен именно для того, чтобы не происходило ни того, ни другого.

    Зрелым и всем известным воплощением этой линии стал FaceNet (Schroff et al., 2015) с его триплетной функцией потерь (triplet loss): берём якорь a, позитив p (тот же человек) и негатив n (другой человек) и требуем, чтобы якорь был ближе к позитиву, чем к негативу, с некоторым запасом \alpha:

        \[|f(a)-f(p)|^2 + \alpha \;\le\; |f(a)-f(n)|^2.\]

    FaceNet не предок JEPA в узком техническом смысле, но историческая его роль велика: именно он приучил всех к мысли, что выходом модели может быть не вектор вероятностей классов, а переиспользуемая геометрия вложений. Кроме того, FaceNet действительно великолепно работал и породил целую индустрию распознавания лиц, которая раньше просто не могла существовать.

    Наконец, в раннем глубоком обучении есть ещё одна линия, без которой картина будет неполной, — энергетическое обучение (energy-based learning). В программной статье “A Tutorial on Energy-Based Learning” (LeCun et al., 2006) обучение описывается как формирование функции энергии F(x,y): совместимым конфигурациям (x,y) должна быть присвоена низкая энергия, а несовместимым — высокая. При этом здесь уже под “конфигурацией” не обязательно понимаются похожие объекты; речь может идти об объектах совсем разной природы, просто так или иначе соответствующих друг другу:

    Сам этот взгляд, конечно, старше: он идёт от сетей Хопфилда (Hopfield, 1982) и машин Больцмана (Ackley, Hinton, Sejnowski, 1985), а хорошее современное введение в энергетические модели со скрытыми переменными можно прочитать у Dawid, LeCun (2023):

    Контрастивная функция потерь из DrLIM оказывается частным случаем: она тянет энергию вниз на похожих парах и толкает её вверх на непохожих.

    Главная проблема энергетических моделей в том, что они кажутся почти вероятностными, но на самом деле сделать их таковыми сложно. Чтобы из энергии получить вероятность, её нужно разделить на нормировочную константу Z=\sum e^{-F} — сумму по всем мыслимым конфигурациям, которую в высоких размерностях просто никак не подсчитать. Суть энергетических методов в том, чтобы как-то вылепить нужный ландшафт энергии, ни разу не притронувшись к Z.

    Эта энергетическая оптика нам ещё пригодится, потому что в манифесте 2022 года JEPA будет сформулирована именно как энергетическая модель со скрытой переменной. Пока же запомним простую мысль: контрастивные, неконтрастивные и JEPA-методы — это не три совершенно разных подхода, а три ответа на один и тот же вопрос о том, как поднять энергию там, где данных нет, не вычисляя при этом неподъёмную нормировочную константу.

    Пазлы, раскраски и повороты, или эпоха pretext-задач

    Прежде чем идти дальше, стоит спросить: а зачем вообще учиться без меток? Ответ понятный и прозаический: размеченные данные дороги, а неразмеченных практически бесконечно много. Но у Лекуна для этого ответа есть и знаменитая гастрономическая метафора, “торт Лекуна” с NIPS 2016:

    Eсли интеллект — это торт, то самообучение — сам корж, обучение с учителем — глазурь, а обучение с подкреплением — вишенка сверху. Почти вся «масса» того, чему учится человек или животное, приходится на пассивное впитывание структуры мира, и лишь тонкий слой — на прямые указания и награды. За прошедшие годы Лекун несколько раз уточнял рецептуру (в приведённой выше исходной версии корж назывался unsupervised, потом стал self-supervised), но пропорции не менялись.

    И в целом ответ на вопрос “как учиться без меток” выглядит довольно логично: давайте придумаем задачу, для которой метки достаются бесплатно из самих данных, и понадеемся, что для её решения сети придётся выучить что-то полезное. Как, например, всем известные языковые модели обучаются всему на свете, просто предсказывая следующий токен.

    Такие задачи называют pretext-задачами (“задачами-предлогами”), и в обработке изображений разных таких задач было очень много. Exemplar-CNN (Dosovitskiy et al., 2014) объявляла каждую картинку отдельным классом. Doersch et al. (2015) предлагали по двум патчам одной картинки угадать их взаимное расположение (“глаз выше носа”).

    Дальше были сборка пазла из перемешанных кусочков (Noroozi, Favaro, 2016), раскрашивание чёрно-белых фотографий (Zhang et al., 2016), а главное, inpainting — предложение модели нарисовать вырезанную середину картинки (Pathak et al., 2016); это прямой предок маскированного моделирования:

    Были и совсем минималистичные задачи вроде RotNet (Gidaris et al., 2018): давайте повернём картинку на 0, 90, 180 или 270 градусов и попросим сеть угадать, на сколько. Звучит совсем тривиально, но работало на удивление хорошо: чтобы понять, где у собаки верх, нужно неплохо понимать, как выглядит собака.

    К этой эпохе относится один поучительный сюжет, связанный скорее с моей вечной темой AI Safety, а точнее, с эффектом goodharting. Нейросети решали pretext-задачи с энтузиазмом, но не всегда тем способом, на который рассчитывали авторы.

    Например, в задаче про взаимное расположение патчей (Doersch et al., 2015) сеть научилась жульничать через хроматическую аберрацию объектива: цветовые каналы в реальных фотографиях чуть сдвинуты друг относительно друга радиально от центра кадра, и по этому сдвигу можно определить абсолютное положение патча в кадре, вообще не глядя на содержимое. Авторам пришлось специально ломать этот канал утечки предобработкой цвета.

    В итоге выяснилось, что придуманная вручную задача будет решаться самым дешёвым доступным способом, и никто не гарантирует, что этот способ требует “понимания” или построения “модели мира”. Систематическая проверка (Kolesnikov et al., 2019) подтвердила, что pretext-задачи хрупки и сильно зависят от архитектуры.

    Тем временем в NLP уже фактически была найдена куда более общая функция потерь, подходящая для этого случая. Word2vec (Mikolov et al., 2013) обучал вложения слов, предсказывая слово по контексту, и его negative sampling — это упрощённая версия noise-contrastive estimation, NCE (Gutmann, Hyvärinen, 2010), статистического приёма, в котором модель обучается отличать данные от шума. Это ещё один приём, который позволяет обойти вычисление нормировочной константы.

    Тем самым word2vec дал первое массовое доказательство того, что сильные переносимые представления можно получить почти задаром, как побочный продукт задачи “предскажи слово по контексту”. Одновременно в нём использовался метод NCE, который тоже пригодится для следующего шага в компьютерном зрении. Но word2vec пока предсказывал сами слова, как обычные языковые модели. А предсказывать латентное представление догадаются чуть позже, в методе CPC, к которому мы и переходим.

    Контрастивное обучение, или как наделать пар из ничего

    В метрическом обучении 1990-х и 2000-х пары “похож / не похож” брались из разметки: мы знали, что эти две подписи принадлежат Иванову. В конце 2010-х случилась мини-революция: люди поняли, что позитивную пару можно изготовить бесплатно. Берём картинку, делаем случайные аугментации (обрезка, фильтры на цвета, отражение) — и у нас получаются два разных вида одного и того же объекта, заведомо позитивная пара, и никакой разметки для этого не нужно. Тем самым идеи pretext-эпохи и NCE сошлись в одной точке, и метрическое обучение превратилось в самообучение (self-supervised learning).

    Концептуально к этому ведёт идея instance discrimination: работа Wu et al. (2018) масштабирует идею Exemplar-CNN (“каждая картинка — отдельный класс”) с помощью банка памяти и NCE-подобной функции потерь:

    А ближайший к JEPA предок этой эпохи — Contrastive Predictive Coding, CPC (van den Oord et al., 2018): по контексту мы предсказываем латентное представление будущего куска сигнала, оптимизируя так называемую функцию потерь InfoNCE.

    InfoNCE в каноническом виде выглядит так:

        \[\mathcal{L}_{\text{InfoNCE}} = -\log \frac{\exp\big(\mathrm{sim}(z, z^{+})/\tau\big)}{\sum_{j}\exp\big(\mathrm{sim}(z, z_{j})/\tau\big)},\]

    то есть мы среди кучи кандидатов z_j должны выбрать правильный позитивный пример z^+. Формально это просто многоклассовая классификация. Вот картинка из статьи про аудио, но к любой модальности это будет применяться точно так же:

    А название Info-NCE появилось потому, что это и прямой потомок той самой noise-contrastive estimation, и заодно вариационная оценка снизу на взаимную информацию между контекстом и целью:

        \[\hat I_{\text{NCE}} = \log N - \mathcal{L}_N \;\le\; I(X;C),\]

    где \mathcal{L}_N — сама (неотрицательная) функция потерь. Поскольку \mathcal{L}_N \ge 0, отсюда сразу получается, что \hat I_{\text{NCE}} \le \log N, и это даёт нам одну из главных задач NCE. Если истинная взаимная информация между видами больше \log N, граница упирается в потолок и перестаёт давать полезный сигнал на “лишнюю” информацию: сколько ни учись, оценка выше \log N не поднимется. Единственный способ поднять потолок — увеличить N, то есть добавить больше негативов.

    Здесь есть и простая теоретико-информационная интуиция: контрастивная задача — это выбор из N вариантов, а задачей с N вариантами ответа в принципе нельзя подтвердить больше, чем \log N нат зависимости.

    Это теоретическое объяснение того, почему негативов всегда хотелось больше и больше. Отсюда пошла гонка за большими батчами (SimCLR), банками памяти (instance discrimination) и очередями (MoCo); давайте мы это разберём чуть подробнее.

    Рассмотрим две важные модели 2020 года, которые сделали контрастивное самообучение более практичным и заодно подарили JEPA пару важных деталей. Первая работа — MoCo (He et al., 2020), которая смотрит на задачу как на поиск по словарю: есть очередь негативов и momentum-кодировщик ключей, чьи веса представляют собой экспоненциальное скользящее среднее (EMA) основного кодировщика.

    Этот EMA-кодировщик станет прямым техническим предком кодировщика цели в I-JEPA.

    Вторая важная работа — SimCLR (Chen et al., 2020), которая показала, что ничего экзотического не нужно: обычная сиамская сеть плюс InfoNCE, но с большими батчами, сильными аугментациями и проекционной головой (projection head, небольшим MLP поверх кодировщика, который потом выбрасывают).

    Здесь надо наконец-то проговорить, как вообще принято сравнивать такие модели. Стандартный протокол — linear probing: замораживаем предобученный кодировщик и учим поверх него один-единственный линейный классификатор; если и с таким слабым “читателем” признаки хороши, значит, кодировщик выучил что-то полезное.

    Так вот, SimCLR выдала 76.5% top-1 на ImageNet в этом протоколе, вровень с ResNet-50, который обучался с учителем; с этого момента self-supervision начал входить в мейнстрим.

    Замечу в скобках, что ровно тот же контрастивный подход, но применённый к парам “картинка / её текстовое описание”, дала CLIP (Radford et al., 2021). Идейно это была всё та же сиамская конструкция двух видов одного объекта, просто видами служили картинка и подпись к ней:

    Получилась, вероятно, самая коммерчески успешная сиамская сеть в истории и заодно мост между зрением и языком, на котором до сих пор стоит половина мультимодальных систем.

    Что на самом деле делает контрастивная функция потерь, красиво разобрали Wang, Isola (2020): в пределе InfoNCE распадается на два понятных слагаемых — alignment (позитивные примеры расположены близко) и uniformity (вектора равномерно размазаны по сфере).

    Это важная идея, и мы к ней ещё вернёмся в разделе про теорию. JEPA унаследует “alignment”-часть этой истории и при этом будет всеми силами избавляться от зависимости от негативов и от агрессивных аугментаций, потому что у контрастивного подхода есть фундаментальная цена: ему нужны негативные примеры, и чем выше размерность, тем их нужно больше. Отсюда и главный вопрос следующей эпохи: а можно ли обойтись вообще без негативных примеров?

    Как не сколлапсировать без негатива

    Оказалось, что можно, и именно это семейство JEPA наследует напрямую: все механизмы, которыми JEPA борется с коллапсом, изобретены здесь. Это самая важная для нашего сюжета часть, так что разберём её не торопясь.

    Началось всё с весьма контринтуитивной работы: метод BYOL (Bootstrap Your Own Latent; Grill et al., 2020) учится вообще без негативов и при этом не коллапсирует. Метод держится на асимметрии: есть online-сеть (кодировщик плюс проектор плюс предсказатель) и есть target-сеть (тот же кодировщик, но с весами-EMA от online).

    Online-сеть учится предсказывать выход target-сети по другой аугментации того же изображения, а на target стоит стоп-градиент. Target, то есть учитель, получается медленно движущимся экспоненциальным скользящим средним; он всегда чуть отстаёт, и если “ученика” вдруг понесёт в сторону коллапса, учитель ещё какое-то время помнит, “как было раньше”, и не даёт цели мгновенно схлопнуться.

    Почему BYOL не коллапсирует, если ничто явно не отталкивает вектора друг от друга? История с ответом на этот вопрос получилась почти детективная.

    Довольно быстро энтузиасты обнаружили, что если убрать из BYOL batch normalization, он таки коллапсирует, и выдвинули красивую теорию: batchnorm — это контрабандные негативы, ведь нормировка заставляет вложения разных картинок отличаться друг от друга, вот вам и отталкивание.

    Теория прожила несколько месяцев, пока сами авторы не показали (Richemond et al., 2020), что BYOL прекрасно работает вообще без статистик по батчам, с group normalization и стандартизацией весов; batchnorm оказался полезным для оптимизации, но никак не тайным источником негативов.

    Окончательную ясность внёс SimSiam (Chen & He, 2021) одним аккуратным экспериментом: можно выкинуть и EMA, и momentum, оставить просто предсказатель на одной ветви и стоп-градиент на другой — и этой минимальной конфигурации уже хватает. Именно стоп-градиент не даёт системе скатиться в тривиальную неподвижную точку; если его убрать, функция потерь немедленно коллапсирует в константу:

    Параллельно развивалась школа мысли, которая делала обучение без учителя через кластеризацию. SwAV (Caron et al., 2020) предсказывает по одному виду картинки кластерное назначение другого вида:

    От коллапса этот метод спасается балансировкой кластеров через оптимальный транспорт (алгоритм Синкхорна): нельзя свалить все картинки в один кластер, если кластеры обязаны быть заполнены равномерно. Заодно SwAV ввела в обращение multi-crop — аугментацию “два больших кропа плюс несколько маленьких”, ну или просто “два кропа разного масштаба”, которую потом переняли почти все. Вот пример из того же BYOL (Grill et al., 2020):

    Ещё одна школа боролась с коллапсом через явную регуляризацию статистик самого представления, без всякой асимметрии и EMA.

    Barlow Twins (Zbontar et al., 2021) подтягивает матрицу корреляций между вложениями двух видов к единичной: на диагонали единицы (инвариантность), вне диагонали нули (декорреляция, чтобы координаты не дублировали друг друга). Это как раз принцип сокращения избыточности Барлоу, с которого мы начинали, и название метода отдаёт ему должное.

    VICReg (Bardes et al., 2022) делает то же самое совсем в лоб, тремя слагаемыми:

    • invariance — MSE между вложениями двух видов (тяни вместе);
    • variance — шарнирная ошибка, удерживающая стандартное отклонение каждой координаты выше порога; именно это слагаемое прямо запрещает коллапс, ведь схлопнуться в константу — значит обнулить дисперсию, а за это большой штраф;
    • covariance — декоррелятор внедиагональных ковариаций.

    VICReg и Barlow Twins важны для нашей истории: именно на них указывал манифест 2022 года (LeCun, 2022) как на “правильную”, регуляризационную альтернативу EMA-фокусам. И именно VICReg позже прикрутили обратно к I-JEPA, чтобы стабилизировать обучение, из чего получилась C-JEPA (Mo et al., 2024, spotlight на NeurIPS), но об этом ниже.

    Наконец, есть школа дистилляции DINO (Caron et al., 2021): сеть-ученик подгоняет своё распределение под выход momentum-учителя, а от коллапса спасают центрирование и заострение (sharpening) учительского распределения. Надеюсь, вы ещё не запутались в картинках моделей, которые все выглядят примерно одинаково; но в маленьких различиях здесь как раз большой смысл:

    DINO расшифровывается как self-distillation with no labels, и это прямой потомок классической дистилляции знаний (Hinton et al., 2015), только учителя с метками здесь нет, студент дистиллирует сам себя из собственного усреднённого прошлого.

    Знаменита DINO своим побочным эффектом: в картах внимания ViT сама собой проступает семантическая сегментация объектов.

    Эта линия моделей была продолжена в DINOv2 (Oquab et al., 2023, внутри которой работает ещё и iBOT (Zhou et al., 2022) — маскированное предсказание токенов в режиме самодистилляции, — и DINOv3 (Siméoni et al., 2025), 7B-модели, обученной на 1.7 млрд картинок, которая сегодня и есть главный “чисто-SSL” конкурент JEPA по качеству зрительных признаков.

    В заключение давайте подытожим этот раздел небольшой табличкой. Вот пять механизмов, которые мы здесь увидели и которые дальше будут встречаться в разных комбинациях:

    МеханизмГде придуманСуть
    Негативы / отталкиваниеDrLIM, CPC, SimCLR, MoCoподнимать энергию на неподходящих парах
    Асимметрия: предсказатель + стоп-градиентBYOL, SimSiamразорвать симметрию ветвей, чтобы константа перестала быть неподвижной точкой
    EMA / momentum-учительMoCo, BYOL, DINO, I-JEPA, V-JEPAучитель “отстаёт” от ученика и тем самым не даёт схлопнуться
    Балансировка кластеровSwAV, DINO (центрирование)явный запрет всем точкам сваливаться в один кластер
    Явная регуляризация дисперсии и ковариацииBarlow Twins, VICRegподдержание нужных статистик представлений силой

    К концу поста мы добавим к этой таблице шестую строку, которая попытается заменить все эти “хаки” одной строгой теоремой.

    Маскированное моделирование: ветвь, от которой JEPA отталкивается

    Пока одни боролись с коллапсом без негативов, другие развивали совсем иную ветвь самообучения — маскированное моделирование (masked image modeling, MIM).

    Сама идея “испорти вход и восстанови его” — почтенная классика; ровно это делали denoising autoencoders (Vincent et al., 2008), а inpainting из pretext-эпохи был их пространственным вариантом.

    Первый раз этот рецепт по-настоящему выстрелил в NLP: BERT (Devlin et al., 2019) был не обычной языковой моделью, как GPT, а именно маскированной, и он сделал MLM (masked language modeling) главным способом обучения представлений в NLP. Компьютерное зрение, разумеется, тоже захотело такой метод использовать. MIM — это BERT для картинок, и эта ветвь важна нам как антагонист: JEPA определяет себя именно в противопоставлении к ней.

    Рецепт прост: прячем часть патчей и просим модель восстановить спрятанное. MAE (Masked Autoencoder; He et al., 2022) восстанавливает сырые пиксели при агрессивном маскировании (около 75%) асимметричным кодировщиком-декодировщиком; это главный MIM-бейзлайн.

    BEiT (Bao et al., 2022) предсказывает дискретные визуальные токены. Есть и любопытная промежуточная точка — MaskFeat (Wei et al., 2022), которая предсказывает HOG-признаки вместо пикселей: уже не сырой сигнал, но ещё и не обученное представление, ровно на полдороге.

    Линия эта мощная, но к ней JEPA предъявляет свою главную претензию: восстанавливать пиксели — значит тратить ёмкость модели на принципиально непредсказуемую и малоинформативную мелочь. Об этом подробнее через одну главу.

    И были две работы 2022 года, которые стали непосредственными техническими предвестниками I-JEPA. Первая — data2vec (Baevski et al., 2022), которая предсказывает не пиксели и не токены, а контекстуализированные латентные представления полного входа по маскированному виду, через EMA-учителя и сразу для речи, зрения и текста.

    Вторая — Masked Siamese Networks (MSN; Assran et al., 2022), от той же команды Meta, что потом сделает I-JEPA: представление маскированного вида подгоняется к представлению немаскированного в сиамской схеме.

    Метод здесь не вовсе без учителя, но очень экономно использует разметку — 75.7% на ImageNet всего с 1% меток.

    Так что когда мы дойдём до I-JEPA, важно помнить, что она выросла не на пустом месте: это синтез очень плотной окрестности: BYOL и SimSiam (асимметрия и EMA), VICReg (регуляризация), data2vec и MSN (латентные таргеты и маскирование), CPC (предсказание в латентном пространстве). Интересна в I-JEPA не сама идея латентного предсказания, а то, что именно из всего этого взять и как обрезать лишнее.

    Замечу здесь ещё, что весь этот зоопарк работает уже на базе трансформеров (Vaswani et al., 2017) и, в частности, на базе Vision Transformer (ViT; Dosovitskiy et al., 2021), который как раз режет картинку на патчи-токены.

    Именно ViT даёт ту решётку патчей, по которой очень удобно делать блочное маскирование.

    Манифест 2022 года, или модель мира внутри агента

    И вот теперь мы наконец-то подошли собственно к семейству JEPA. Впервые эта идея появляется внутри большой программы, в position paper “A Path Towards Autonomous Machine Intelligence” (LeCun, 2022). Это программный текст, манифест о том, каким должен быть автономный интеллект, безо всяких бенчмарков и таблиц, да и без каких-то конкретных технических подробностей.

    Мотивация у Лекуна отчасти арифметическая, и он любит её пересчитывать вслух: четырёхлетний ребёнок успел пободрствовать около 16 тысяч часов, и через его зрительный нерв за это время прошло порядка 10^{15} байт — в десятки раз больше, чем весь текст, на котором обучают самые большие LLM. И на этом контенте ребёнок успел получить массу очень интересных интеллектуальных способностей; вот картинка, которую Лекун здесь часто показывает:

    Вывод из этого в том, что главный источник обучающих данных — не текст, а сенсорный поток, и выучиться на нём можно только самообучением, без всяких меток. Осталось понять, чему именно учиться на этом потоке; ответ манифеста — модели мира (world models).

    Лекун предлагает модульную когнитивную архитектуру, которую в статье прямо на мозг накладывает:

    Здесь шесть основных компонентов:

    • perception (восприятие; строит оценку текущего состояния мира);
    • world model (модель мира; центральный модуль, который достраивает недостающее в текущем состоянии и предсказывает правдоподобные будущие состояния, в идеале на нескольких уровнях абстракции и в нескольких масштабах времени);
    • cost module (стоимость; неизменяемая внутренняя часть плюс обучаемый критик);
    • actor (агент; предлагает последовательности действий);
    • short-term memory (кратковременная память; про то, во что выросла память у современных LLM-агентов, у меня недавно был отдельный длинный пост — там, правда, совсем другая инженерная традиция);
    • configurator (конфигуратор; настраивает всё остальное под текущую задачу).

    Дальше Лекун раскрывает их подробнее, и по его идее все модули оказываются дифференцируемыми, поэтому планирование сводится к оптимизации последовательности действий по предсказанной будущей стоимости. Лекун называет это Mode-2 (буквально по Канеману), медленным обдуманным рассуждением. Это рассуждение потом можно “скомпилировать” в быструю реактивную политику (Mode-1).

    И вот именно для модуля world model JEPA предлагается как не-порождающая архитектура:

    Формально общая идея JEPA устроена очень похоже на то, что мы видели выше. По контексту x и цели y два кодировщика строят представления:

        \[z_x = f_\theta(x),\quad z_y = f_\xi(y).\]

    Предсказатель достраивает цель по контексту и описанию c того, что предсказывается (позиция, сдвиг во времени, действие):

        \[\hat z_y = g_\phi(z_x, c).\]

    Обучение минимизирует расстояние между предсказанием и (остановленным по градиенту) представлением цели плюс ещё опциональную регуляризацию против коллапса:

        \[\mathcal{L}_{\text{JEPA}} = \mathbb{E}_{x,y,c}\, D\big(g_\phi(f_\theta(x), c),\; \operatorname{sg}(f_{\bar\theta}(y))\big) \;+\; \lambda\,\mathcal{R}.\]

    Здесь f_{\bar\theta} может быть EMA-учителем, замороженным кодировщиком или тем же кодировщиком с регуляризацией. Есть только одна важная деталь, которая отличает JEPA от классической сиамской схемы: кодировщики не обязаны использовать одни и те же веса, x и y могут быть устроены по-разному.

    Вот то же самое в виде схемы и по-русски:

    Здесь можно выделить две главные идеи; обе не новы, но их успешную комбинацию до сих пор не так легко сделать:

    • добавить скрытые переменные, индексирующие варианты будущего;
    • предсказывать представления, а не сами объекты (например, пиксели).

    Первая идея становится прозрачнее в энергетической переформулировке. Введём скрытую переменную z, которая берёт на себя ту часть y, что принципиально не определяется контекстом:

        \[E(x,y) = \min_{z}\, D\big(g_\phi(f_\theta(x), z),\; f_\xi(y)\big).\]

    Это кажется небольшим изменением, но оно очень принципиальное. Будущее многовариантно: машина у развилки может поехать налево или направо, и обе ветки правдоподобны. Если мы строим детерминированный предиктор с квадратичной функцией потерь, то он выучивает условное среднее. И если кодировщик отобразит “налево” и “направо” в два разных вектора, то их среднее может не соответствовать вообще никакому реальному будущему — оно повиснет где-то между:

    А скрытая переменная z как раз индексирует эти альтернативы; при каждом конкретном значении z будет получаться правдоподобный вариант будущего.

    В манифесте выписаны четыре неконтрастивных критерия обучения, каждый из которых имеет теоретико-информационное обоснование:

    добавить скрытые переменные, индексирующие варианты будущего;

    • максимизировать информацию, которую s_x несёт об x;
    • максимизировать информацию, которую s_y несёт об y (эти два пункта не дают представлениям сколлапсировать);
    • сделать s_y максимально предсказуемым из s_x (а это, наоборот, тянет к полезности);
    • минимизировать информацию в скрытой переменной z, чтобы предсказатель не сжульничал, протащив весь ответ через z.

    Вот так они соотносятся с общей схемой:

    Энергетическая оптика заодно делит методы борьбы с коллапсом на две части: контрастивные методы поднимают энергию у негативных примеров (и страдают от проклятия размерности), а регуляризационные ограничивают сам объём низкоэнергетического пространства, накладывая информационные ограничения на представления в духе VICReg. JEPA целиком находится в регуляризационном лагере.

    Наконец, в манифесте предлагается и H-JEPA — иерархическая JEPA, где нижние уровни предсказывают на коротких масштабах и в мелких деталях, а верхние — на длинных масштабах и в более абстрактных состояниях.

    К 2026 году это всё ещё скорее манифест, чем реализованная система, но именно H-JEPA остаётся концептуальным мостом от SSL-картинок к агентам, которые планируют.

    Теперь ко второму вопросу: почему вообще нужно предсказывать представления, а не пиксели. Это один из центральных пунктов всей программы. Представьте, что вы предсказываете следующий кадр видео: едет машина, а на заднем плане колышется листва и идёт рябь по пруду. Траектория машины полезна и предсказуема; точное положение каждого листочка и каждой мини-волны — ни то, ни другое.

    Но генеративная модель, которая считает правдоподобие в пикселях, обязана тратить свою ёмкость не только на машину, но и на листья. JEPA же предсказывает представление, и обученный кодировщик может отобразить тысячу кадров с разными конфигурациями листьев на деревьях в близкие векторы, позволив предсказателю сосредоточиться на устойчивых факторах. Способность к надёжной абстракции здесь не недостаток, а ровно то, чего мы хотим.

    Звучит красиво, но есть и кое-какие оговорки:

    • латентное предсказание не даёт нужную семантику автоматически: кодировщик надо заставить сохранять полезное и выбрасывать шум, и делают это геометрия маскирования, архитектура, динамика учителя, регуляризация и данные, а не сама идея предсказания латентных кодов;
    • во-вторых, порождающая и латентно-предсказательная модели — это не антонимы: VAE, VQ-VAE, латентные диффузионные модели тоже предсказывают и порождают в выученном латентном пространстве, и граница проходит не по линии “генеративное против не-генеративного”, а по вопросу о том, какие переменные представление должно сохранять и ради какой последующей (downstream) задачи;
    • в-третьих, иногда пиксельная цель всё-таки полезна, особенно когда важны детали геометрии (локализация, глубина, трекинг и т.п.); мы ещё увидим, как V-JEPA 2.1 в 2026-м фактически частично вернула плотную предсказательную функцию потерь именно по этой причине.

    Но с оговорками или без, а всё равно из манифеста таки сделали работающую модель, и не одну. Давайте к ним и перейдём.

    I-JEPA, или первая настоящая реализация

    I-JEPA (Assran et al., CVPR 2023) — первая чистая реализация идеи для картинок. Задача формулируется так: по одному контекстному блоку изображения предсказать представления нескольких целевых блоков того же изображения. Вот сравнение со стандартными подходами, а справа собственно общая схема JEPA:

    Здесь работают три сети:

    • кодировщик контекста f_\theta (ViT), который обрабатывает только видимые контекстные патчи;
    • кодировщик цели f_{\bar\theta}, EMA-копия кодировщика контекста, который кодирует полное изображение в патч-представления, из которых берутся цели;
    • ViT-предсказатель g_\phi, который получает контекстные токены плюс обучаемые mask-токены (несущие позицию целей) и предсказывает представления целевых патчей.

    Функция потерь — это среднее L_2-расстояние между предсказанными и целевыми представлениями по M целевым блокам:

        \[\mathcal{L} = \frac{1}{M}\sum_{i=1}^{M}\sum_{j\in B_i}\big|\hat s_{y_j} - \operatorname{sg}(s_{y_j})\big|_2^2.\]

    Как видите, здесь нет никаких негативных примеров, никакого пиксельного декодировщика и никаких контрастивных слагаемых в функции потерь. С коллапсом здесь борется ровно один механизм — EMA-target со стоп-градиентом: параметры цели тянутся за кодировщиком контекста как

        \[\bar\theta \leftarrow \tau\bar\theta + (1-\tau)\theta\]

    (momentum \tau стартует с 0.996 и линейно растёт к 1). Поскольку таргет отстаёт и получает стоп-градиент, тривиальное константное решение перестаёт быть неподвижной точкой.

    Дальше идут три важных архитектурных решения, в которых, собственно, и заключается главная новизна. Первое — многоблочное маскирование (multi-block masking), то самое, что делает признаки семантическими. Берём M=4 целевых блока со случайным масштабом в диапазоне (0.15, 0.2) площади и соотношением сторон в (0.75, 1.5), а затем один большой контекстный блок с масштабом (0.85, 1.0), из которого вырезаем пересечения с целями.

    Интуиция в том, что предсказывать несколько крупных, осмысленных блоков по информативному, но пространственно неполному контексту — значит быть вынужденным моделировать структуру уровня объектов, их смысл, а не угадывать локальную текстуру.

    Второе решение — маскирование на выходе кодировщика цели, а не на входе: цели вырезают из представлений полного изображения, а не из сырых пикселей, поэтому каждый целевой патч уже “знает” свой контекст (он контекстуализирован полным проходом кодировщика), и цели получаются гораздо более семантическими.

    И третье — эффективность: backbone’ы от ViT-B/16 до ViT-G/16, и здесь важно, что ViT-H/14 обучается на ImageNet меньше чем за 72 часа на 16 A100 — по меркам нынешних фронтирных бюджетов это вообще ничто, но и тогда было в разы дешевле, чем у MIM-методов.

    Особенно показательно получилось, что I-JEPA сильна в низкоуровневых пространственных задачах вроде счёта объектов и упорядочивания по глубине: значит, предсказатель и правда выучивает пространственную структуру, а не только глобальную инвариантность.

    Получается, что I-JEPA вобрала в себя три традиции, о которых мы говорили выше:

    • от BYOL, SimSiam и VICReg она берёт мысль, что негативы не нужны, а коллапс лечится асимметрией, EMA и регуляризацией;
    • от маскированного моделирования — сильную pretext-задачу, основанную на вырезании кусочков;
    • а собственно из JEPA, в отличие от MAE, получается то, что она не восстанавливает пиксели, а работает на уровне представлений.

    Но пока что I-JEPA — это не агентская архитектура из манифеста. Тут нет ни действий, ни планировщика, ни критика, ни долговременной памяти, ни иерархии, ни скрытой переменной для многовариантного будущего. Это применение JEPA-принципа к обучению представлений, и только.

    От картинок к видео: MC-JEPA, IWM и V-JEPA

    При переходе к видео идея JEPA становится по-настоящему амбициозной, потому что у видео есть время, а значит, появляется динамика, а значит, забрезжила и модель мира.

    Переходным звеном здесь служит MC-JEPA (Bardes et al., 2023), которая в одном кодировщике учит сразу содержание (content, что на сцене) и движение (motion; оптический поток, как оно движется). Обычное SSL работает с контентом, но игнорирует движение, а методы оценки потока, наоборот, моделируют движение без понимания содержания; MC-JEPA пытается их совместить:

    Ещё один концептуально важный поворот делает работа про Image World Models, IWM (Garrido et al., 2024). В большинстве SSL предсказатель — это строительные леса, которые после обучения выбрасывают. IWM основана на следующей идее: а что если сам предсказатель и есть полезная, переиспользуемая модель мира?

    Авторы обобщают JEPA-задачу с маскирования на глобальные фотометрические преобразования (предсказать в латентном коде, что будет, если поменять яркость или цвет) и показывают, что качество такого предсказателя определяют три рычага: обусловленность (conditioning), сложность задачи и ёмкость предсказателя. Предсказатель здесь перестаёт быть мусором и становится объектом изучения. В итоге IWM действительно может предсказывать результаты трансформаций такого рода (NN of prediction — это ближайший сосед из некоторого датасета в пространстве представлений, мы же представления предсказываем):

    А обучение ведётся почти как обычно, только теперь с новыми преобразованиями:

    И, наконец, флагман — V-JEPA, «Revisiting Feature Prediction for Learning Visual Representations from Video» (Bardes et al., 2024). Она обучается исключительно предсказанием признаков на примерно 2 млн публичных видео — без предобученного кодировщика картинок, без текста, без негативов и без пиксельной реконструкции (пиксельную альтернативу для видео представляет VideoMAE, Tong et al., 2022).

    Ключевой приём — агрессивное пространственно-временное маскирование: видео режется на так называемые tubelets, то есть патчи с временной протяжённостью; маски растянуты по всей временной оси (это важно, иначе соседние во времени кадры почти дублируют друг друга и задача становится тривиальной — модель просто скопирует ответ у соседнего кадра); есть маски на короткую дистанцию (объединение 8 блоков, около 15% кадра) и на длинную (2 блока, около 70% кадра), и в среднем маскируется около 90%; цели поставляет EMA-кодировщик, а функция потерь — L_1-регрессия.

    Главное утверждение V-JEPA — не в том, чтобы моделью мира предсказывать будущее во всех деталях. Оно в том, что одно лишь предсказание признаков даёт замороженное представление, которое переносится и на задачи про внешний вид, и на задачи про движение.

    Цифры здесь, как обычно, есть где покритиковать, тут могут быть разные протоколы оценки, и путаница на этой почве в литературе всегда присутствует, но видно, что латентное предсказание будущего ближе к предиктивному кодированию (CPC), чем к авторегрессионному или диффузионному порождению видео.

    Тут уместно вспомнить ещё одну красивую идею из вычислительной нейронауки — анализ медленных признаков (slow feature analysis, Wiskott, Sejnowski, 2002). Гипотеза там такая: семантически важные величины меняются во времени медленно (машина едет по своей траектории, объекты не мигают), а сенсорный шум — быстро (каждый лист дрожит по-своему), поэтому “ищи медленное” — само по себе неплохой принцип обучения признаков без учителя.

    Ранний анализ JEPA-моделей мира так и назывался: “Joint Embedding Predictive Architectures Focus on Slow Features” (Sobal et al., 2022); там показано, что временное латентное предсказание естественным образом вытаскивает медленные компоненты сигнала. Это приятно замыкает интуицию про листья и машину: JEPA не потому хороша, что «игнорирует детали», а потому, что медленное и предсказуемое в мире почти всегда совпадает с осмысленным.

    А ещё, когда JEPA перешла к видео, впервые стало уместно спросить: а понимает ли эта модель физику? В работе про интуитивную физику (Garrido et al., 2025) применяют “парадигму нарушенного ожидания” (violation of expectation) из психологии развития: модели показывают возможные и невозможные продолжения (объект исчезает за ширмой и не появляется; проходит сквозь стену) и смотрят, удивляется ли она — растёт ли ошибка предсказания на невозможном варианте.

    Результат получился очень позитивный: предсказания в латентном пространстве понимают постоянство объектов и согласованность формы заметно лучше, чем пиксельное предсказание и мультимодальные LLM, которые часто остаются около случайного угадывания.

    Это, конечно, не доказывает, что JEPA уже выучила “здравый смысл” про окружающий мир, и тут же вышли более сложные бенчмарки — IntPhys 2 (Bordes et al., 2025) и Minimal Video Pairs (Krojer et al., 2025), — на которых SOTA-модели снова находятся у случайного уровня, а люди у потолка. Но заметьте, что это уже немного другой вопрос: модели теперь можно спрашивать “что именно у тебя в представлениях?”, а не только “какой у тебя accuracy на этом бенчмарке”.

    V-JEPA 2, или замыкание петли к планированию

    И вот мы наконец-то приходим к той точке, ради которой всё затевалось. V-JEPA 2 (Assran et al., 2025) — это не просто отмасштабированная версия V-JEPA, а версия, которая наконец-то соединяет обучение представлений с моделью мира для планирования, которую нам манифест Лекуна изначально и обещал.

    У V-JEPA 2 две стадии обучения и два типа данных.

    Первая стадия — предобучение чистым наблюдением. Action-free кодировщик (ViT-g, больше 1 млрд параметров) обучается на 22 млн сэмплов, представляющих больше 1 млн часов интернет-видео плюс картинки, с прогрессивным наращиванием разрешения, 3D-RoPE и аккуратным отбором данных. В результате получаются отличные результаты на бенчмарках video understanding и, что показательно, state-of-the-art на предвосхищении действий в Epic-Kitchens-100, большой скачок над специализированными моделями. Авторы даже попробовали скрестить замороженный кодировщик с 8B LLM (в духе LLaVA) и на выходе получили очень даже сильный Video-QA, при том, что сам кодировщик за всю жизнь не видел ни одного слова и отвечает на вопросы через “LLM-переводчика”. Первая стадия на картинке слева:

    Вторая стадия — V-JEPA 2-AC, модель мира с действиями (на картинке справа). Кодировщик замораживают и поверх него обучают предсказатель примерно на 300M параметров с блочно-каузальным вниманием; обучают на менее чем 62 часах неразмеченного видео робо-руки из датасета DROID, то есть здесь данных на порядки меньше.

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

    Планирование потом, разумеется, идёт прямо в латентном пространстве. На реальных роборуках модель работает в zero-shot режиме: цель задаётся картинкой, и model-predictive control методом перекрёстной энтропии (cross-entropy method, CEM) ищет действия, минимизирующие L_1-расстояние между предсказанным будущим представлением и представлением цели; здесь энергия выступает как расстояние до цели.

    Без всякого сбора данных с этих конкретных роботов, без инженерии reward-функций, без дообучения под задачу получается переставлять новые объекты в новой обстановке с успехом 65–80%.

    На сегодня V-JEPA 2 — это самая ясная и близкая к оригиналу реализация обещаний 2022 года. Но есть и очевидные ограничения: это пока обучения манипуляциям на коротком горизонте, с заданными визуальными подцелями и отдельно дообученной action-моделью. До полного стека “configurator + actor + critic + memory” из манифеста по-прежнему далеко.

    Интерлюдия: JEPA в контексте

    Тут полезно немного поднять голову и оглядеться, потому что модели мира придумали не в Meta. Есть целая традиция обучать внутреннюю модель динамики и планировать в ней. К основоложникам здесь стоит отнести скорее работу “World Models” (Ha & Schmidhuber, 2018; да-да, опять тот самый Шмидхубер!), которая обучает VAE плюс RNN-динамику, и контроллер тренируется внутри “сна” модели.

    PlaNet (Hafner et al., 2019) обучает латентную динамику и планирует тем самым методом CEM в латентном пространстве, который использует и V-JEPA 2-AC. Серия моделеи Dreamer (Hafner et al., 2020 и далее, например DreamerV3 сначала вышла на arXiv в 2023 году, а в 2025-м и в Nature под названием “Mastering diverse control tasks through world models“) обучает поведение “воображением” в латентном пространстве:

    Ну и, наконец, нельзя не вспомнить MuZero (Schrittwieser et al., 2020), которая планирует в выученной латентной модели, которая в свою очередь предсказывает только награду, функцию значения и стратегию и при этом никогда не реконструирует наблюдения.

    Есть и параллельная линия внутри самого обучения с подкреплением. DeepMDP (Gelada et al., 2019) обучает латентную модель через бисимуляцию; SPR (Schwarzer et al., 2021) предсказывает собственные будущие латентные состояния с EMA-таргетом — по сути, это BYOL, пересаженный в RL на играх Atari, причём независимо и почти одновременно:

    TD-MPC (Hansen et al., 2022) планирует в латентном пространстве без декодировщика; бисимуляционные метрики (Zhang et al., 2021) строят представления, различающие состояния только по будущим наградам.

    Здесь можно порекомендовать систематический обзор Ni et al. (2024), который наводит во всём этом зоопарке некоторый порядок, в частности, разбирает, когда латентное самопредсказание в RL устойчиво, а когда коллапсирует. Позволю себе скопировать табличку оттуда, хотя, конечно, разбирать это всё мы сейчас не будем:

    Разница между этими направлениями тем не менее есть. Dreamer, PlaNet и прочие обучают порождающую латентную динамику, с реконструкцией. MuZero и вся RL-линия обучают value-equivalent модели, предсказывающие только то, что нужно для оценки хода, — им нужна конечная награда как сигнал.

    А в JEPA работает самообучаемая латентная модель без реконструкции, чья единственная цель — предсказание признаков, и обучение идёт из пассивного видео, вообще без каких-то наград или разметки. Только уже на уровне V-JEPA 2-AC эта модель берёт методы планирования (CEM/MPC) у лагеря Dreamer/PlaNet. Иначе говоря, новизна тут не в том, чтобы планировать в латентном пространстве — это умели и в 2019-2020, — а в том, чтобы обучиться чисто пассивным самообучением на интернет-видео, без наград и реконструкции, но так, чтобы латентное пространство в итоге годилось для планирования.

    И ещё пара слов про родство с нейронаукой, разумеется, достаточно абстрактное и скорее на правах вдохновения. JEPA отлично сходится с теорией предиктивного кодирования (predictive coding; Rao & Ballard, 1999), в которой обратные связи в коре несут предсказания активности нижних уровней, а прямые связи несут ошибку предсказания.

    Есть в нейронауках и более общий принцип свободной энергии Фристона (Friston, 2010): мозг минимизирует ошибку предсказания, она же вариационная свободная энергия.

    Сам Лекун цитирует предиктивное кодирование как мотивацию, но это, конечно, именно абстрактное вдохновение, а не какое-то утверждение про моделирование работы настоящего мозга.

    Зоопарк JEPA-моделей

    К 2026 году JEPA — это уже не одна модель, а большое семейство, объединённое общей структурой: кодировщики контекста и цели плюс предсказатель плюс маскирование, EMA или регуляризация против коллапса, а также регрессионная функция потерь в латентном пространстве. Перечислю несколько работ, хотя здесь список, конечно, будет заведомо неполным, да и новые модели появляются буквально каждый месяц.

    Для аудио есть A-JEPA (Fei et al., 2023) с маскированием мел-спектрограмм и Audio-JEPA (Tuncay et al., 2025); любопытный эмпирический факт состоит в том, что для аудио случайное маскирование бьёт зрительное блочное.

    Для 3D и облаков точек есть Point-JEPA (Saito et al., 2024), где специальный sequencer упорядочивает неупорядоченные точки, чтобы можно было брать смежные контекст/таргет-блоки, не реконструируя вход.

    Для графов — Graph-JEPA (Skenderi et al., 2023), предсказывающая вложения подграфов, опционально в гиперболическом пространстве, чтобы кодировать иерархию.

    Для мозга и биосигналов — S-JEPA для EEG/BCI (Guetschel et al., 2024) и далее ЭКГ, fMRI и прочее. Для робототехники и стратегий действия — ACT-JEPA (Vujinović et al., 2025), предсказывающая “чанки” действий и абстрактных наблюдений в латентном пространстве для имитационного обучения. Букву T, кстати, успели независимо занять дважды: T-JEPA — это и про траектории движения (Li et al., 2024), и про табличные данные (Thimonier et al., 2024); свободных букв в алфавите остаётся всё меньше. Есть и гибриды с порождающими моделями вроде D-JEPA (Chen et al., 2024), которая скрещивает латентное предсказание следующего токена с диффузией и flow matching.

    Отдельно стоит сказать про VL-JEPA (Chen et al., 2025) — попытку перенести базовый принцип в язык. Вместо авторегрессионного порождения токенов она предсказывает непрерывные вложения целевых текстов, а лёгкий декодировщик вызывается только тогда, когда текст и правда надо “материализовать”. Мотивация здесь ровно как у зрительной JEPA: множество строк выражают один и тот же смысл, поэтому пословное правдоподобие тратит ёмкость на поверхностную форму, а предсказание семантического вложения схлопывает перефразировки в общую цель.

    Но в языке форма сама бывает задачей — иногда нужно вспомнить цитату, точное имя, синтаксис кода, область действия квантора. Поэтому, конечно, VL-JEPA не пытается сказать, что предсказание токенов устарело, а предоставляет некий “альтернативный интерфейс”, и скорее всего здесь будущее останется за гибридными подходами (непрерывное латентное предсказание плюс выборочное декодирование).

    Теория, или почему всё это вообще работает

    Практика, как это часть бывает в глубоком обучении, бежит здесь далеко впереди понимания. Но кое-какие результаты всё-таки есть; давайте здесь рассмотрим три основных направления: что оптимизируют контрастивные методы, почему методы без негативов не сваливаются в константу и что во всём этом специфично именно для JEPA. Этот раздел можно при желании пропустить, да и не буду я здесь рассказывать математические детали, только заявлю основные результаты. Кроме того, пользуясь случаем, порекомендую подробное введение в тему: “A Cookbook of Self-Supervised Learning” (Balestriero et al., 2023).

    Что оптимизирует контрастивная функция потерь

    Работу Wang & Isola (2020) мы уже встречали выше. Они показали, что в пределе InfoNCE распадается на две части — alignment, которая тянет позитивные пары вместе, и uniformity, которая раскидывает признаки по гиперсфере как можно равномернее. Интересно тут то, что эти две метрики можно оптимизировать напрямую, без всякого InfoNCE, и получить ровно то же качество. То есть “отталкивание негативов” — это не самоцель, а лишь способ обеспечить равномерность; именно равномерность не даёт представлению сколлапсировать, а alignment делает его полезным. JEPA, как мы видели, оставляет себе alignment и ищет другие, не контрастивные способы обеспечить “равномерность” (то есть не допустить коллапса).

    Работа Balestriero & LeCun (2022) показала, что SimCLR, VICReg и Barlow Twins при определённых выборах гиперпараметров восстанавливают классические спектральные методы — Laplacian Eigenmaps, ISOMAP, Multidimensional Scaling и другие. В ту же сторону идёт спектральная контрастивная функция потерь (HaoChen et al., 2021): контрастивное обучение оказывается спектральным разложением графа аугментаций — огромного графа, в котором картинки соединены ребром, если могли получиться друг из друга аугментациями, — причём с доказуемыми гарантиями качества на downstream-задачах.

    А работа про дуальность (Garrido et al., 2023) связывает контрастивные и неконтрастивные методы через спектральную и ковариационную оптику и показывает, что во многом это два взгляда на один и тот же объект.

    Иначе говоря, весь зоопарк методов самообучения (self-supervised learning) можно рассматривать как одну и ту же идею: построение геометрии, согласованной с графом аугментаций. А различия между методами сводятся к тому, как именно мы этой геометрии обучаем наши сети.

    Почему методы без негативов не сваливаются в константу

    Здесь, честно говоря, единого общепринятого объяснения до сих пор нет, и это само по себе любопытно.

    Есть анализ динамики обучения BYOL и SimSiam (Tian et al., 2021): авторы показывают, что связка “предсказатель плюс стоп-градиент плюс EMA” работает за счёт разделения масштабов времени между предсказателем и таргетом и неявной регуляризации дисперсии, и даже выводят из этого анализа упрощённый метод DirectPred, который задаёт предсказатель аналитически.

    Есть отдельный сюжет про коллапс размерности (Jing et al., 2022): представление может не схлопнуться в точку, но всё равно «провалиться» в подпространство меньшей размерности, чем ему доступно.

    Это более тонкая картина, чем полный коллапс, и именно она мотивирует декорреляционные методы вроде Barlow Twins. Степень такого частичного коллапса, кстати, можно мониторить по эффективному рангу представлений: метрика RankMe (Garrido et al., 2023) неплохо предсказывает downstream-качество вообще без разметки.

    Показательно и то, что один лишь EMA-таргет оказывается не вполне надёжным предохранителем. Уже упоминавшаяся C-JEPA (Mo et al., 2024) прямо отмечает, что у I-JEPA EMA сама по себе недостаточна, чтобы гарантированно избежать коллапса, и добавляет к ней слагаемые дисперсии и ковариации из VICReg, после чего обучение становится стабильнее и сходится быстрее. Так что пока JEPA-модели всё-таки во многом основаны на эвристиках, а не на следствиях какой-то одной теоремы.

    Что специфично для JEPA — и при чём тут информация

    Самый приятный из специфичных для JEPA результатов — про неявное смещение (implicit bias). Литвин с соавторами (Littwin et al., 2024) показывают, что в глубоких линейных моделях JEPA смещена в пользу “влиятельных” признаков (с большими коэффициентами) признаков и подавляет шумные высокодисперсные направления, причём это смещение усиливается с глубиной. У реконструкционных методов вроде MAE такого преимущества нет: пиксельная цель вынуждает их тратить ёмкость и на шум тоже. Это как раз анализ идеи о том, почему латентное предсказание может быть лучше пиксельной реконструкции не эмпирически, а принципиально.

    Полезно посмотреть на то же самое с точки зрения теории информации. Обучение делает Z = f(Y) предсказуемым из контекста X, а значит, кодировщик вознаграждается за то, что сохраняет компоненты Y с высокой условной предсказуемостью, и может выбрасывать высокоэнтропийный остаток. Это роднит JEPA с эффективным кодированием, информационным бутылочным горлышком и достаточными статистиками — а через медленные признаки, о которых шла речь выше, ещё и с временной когерентностью.

    Но здесь есть и важный концептуальный риск: совпадает ли “предсказуемое” с “семантически важным” или “важным для решаемой задачи”? Очевидно, что далеко не всегда! Статичный фон бывает прекрасно предсказуем, но при этом совершенно бесполезен; редкое событие бывает почти непредсказуемо, но критически важно. Чтобы абстракция формировалась “в нужную сторону”, скорее всего, нужны ещё действия, стоимость, новизна, иерархия и обусловливание задачей, а не одно лишь пассивное предсказание.

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

    LeJEPA: попытка заменить хаки одной теоремой

    Теоретической вершиной этой линии стала LeJEPA (да-да, её так назвали французы, Balestriero & LeCun, 2025). Тезис её в том, что, как мы уже обсуждали, линия JEPA-моделей всё время опиралась на рецепты и эвристики — EMA-учителей, стоп-градиент, архитектурную асимметрию, расписания momentum. А хочется всё-таки построить единую теорию того, какое распределение вложений нам вообще нужно.

    LeJEPA даёт для этого две идеи. Во-первых, авторы доказывают, что изотропное гауссовское распределение вложений оптимально для минимизации downstream-риска предсказания по заранее неизвестным задачам. Во-вторых, они вводят SIGReg (Sketched Isotropic Gaussian Regularization) — способ заставить вложения быть как раз такими вот гауссовскими, сопоставляя их одномерные случайные проекции с гауссовыми (это тест в духе Крамера–Вольда и характеристических функций) за линейное время и память.

    Выигрыш получается в том, что исчезает вообще весь стек непонятных эвристик. Нет стоп-градиента, нет EMA-учителей, нет асимметрии предсказателя, нет ручных расписаний; ядро обучения умещается примерно в 50 строк и стабильно тренируется с единственным гиперпараметром. Помните табличку из раздела про методы без негативов? Вот обещанная шестая строка:

    МеханизмГдеСуть
    Явная регуляризация распределения (SIGReg)LeJEPA, 2025напрямую подтягивать маргинальное распределение вложений к изотропному гауссиану

    Но тема ещё далеко не закрыта: изотропность тут же оспорили. UR-JEPA (Le, 2026, независимая работа одного автора, не из Meta и не от Лекуна, хоть и Le) отмечает, что полноразмерный изотропный гауссиан противоречит гипотезе многообразия (manifold hypothesis), согласно которой вложения должны концентрироваться на низкоразмерном подмногообразии, а не заполнять весь шар.

    Вместо гауссиана UR-JEPA пытается попасть в равномерно n-спрямляемую меру, и её глобальный PCA-спектр падает на 4–5 порядков, тогда как у LeJEPA он почти плоский. Так что вопрос о том, какая должна быть геометрия у пространства вложений, пока остаётся открытой темой для исследований.

    Стоит упомянуть и LeWorldModel (Maes et al., 2026; среди авторов те же Лекун и Балестриеро), где ту же философию приложили к латентной динамике для управления: обучение идёт end-to-end прямо из пикселей с двумя слагаемыми (предсказание следующего вложения плюс гауссова SIGReg-регуляризация), и число настраиваемых гиперпараметров функции потерь падает с шести до одного.

    Модель при этом крошечная по нынешним меркам (около 15M параметров), учится на одной GPU за часы, планирует в десятки раз быстрее моделей поверх больших замороженных кодировщиков, и в её латентных кодах читаются физические величины.

    А вероятностную ветку со скрытыми переменной, — разрабатывает, например, вариационная VJEPA (Huang, 2026), дающая гарантии против коллапса через ELBO и связь с предиктивными представлениями состояний и байесовской фильтрацией.

    Заключение

    Попробую теперь собрать общую картину. JEPA — это точка, где давний энергетический взгляд Лекуна на обучение встречается с современным инструментарием самообучения, и где сиамско-контрастивная традиция появляется не в форме “заставь два вида совпасть”, а в форме “выучи абстрактные состояния, которые делают мир достаточно предсказуемым, чтобы его понимать, воображать и планировать”.

    Вся эта наука вырастает из сиамских сетей, которые начались ещё в 1992-1993 годах, и контрастивного обучения, которое пришло как минимум из середины нулевых. Но только в 2022-м Лекун собрал всё это в единую стройную картину и призвал предсказывать смысл, а не пиксели. Дальше развитие было куда стремительнее: от I-JEPA для картинок в 2023 до V-JEPA 2, которая управляла рукой робота в незнакомой лаборатории, планируя прямо в латентном пространстве, прошло всего два года.

    Выиграла ли ставка Лекуна против LLM? Кажется, что вряд ли. JEPA пока что “всего лишь” одно сильное и эффективное семейство самообучения без реконструкции среди нескольких (рядом стоят самодистилляция в духе DINOv3 и реконструкция в духе MAE), которое выделяется явной рамкой модели мира и отличной совместимостью с планированием. Полная иерархическая H-JEPA с длинным горизонтом, со скрытыми переменными для многовариантного будущего и с интегрированными актором, критиком и памятью, всё ещё остаётся пока в планах на будущее.

    Но базовый тезис всё равно интересен: интеллекту нужны представления, заточенные под предсказание управляемой и устойчивой структуры мира, а не под воспроизведение каждого наблюдаемого пикселя или символа. И этот тезис за тридцать лет не просто не сломался, а только обрастал всё более убедительными реализациями. Так что даже если конкретно семейство JEPA застопорится и не сможет опередить “обычные” языковые модели, ставка Лекуна на “предсказывать смысл, а не пиксели” уже изменила то, как мы думаем об обучении представлений.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • The AI Interviewer: LLM как психолог-исследователь

    The AI Interviewer: LLM как психолог-исследователь

    Недавно в Scientific Reports вышла статья “The AI Interviewer: Multi-Faceted Evaluation of Adaptive Questioning by Large Language Models” — о том, насколько хорошо современные LLM умеют брать интервью.

    Основную часть работы здесь сделали наши коллеги-психологи из Института психологии РАН, я там был относительно сбоку и подключился на позднем этапе, так что ни на какие лавры тут не претендую. Но расскажу вам вкратце, о чём это было.

    Постановка задачи

    LLM всё чаще запускают как адаптивных интервьюеров (adaptive interviewers) в качественных исследованиях по психологии и социологии: модель ведёт полуструктурированное интервью, сама решает, где копнуть глубже, сама задаёт уточняющие follow-up вопросы.

    Звучит очень удобно и логично: живого интервьюера трудно масштабировать на сотни глубоких бесед, для этого LLM и нужны (как, например, нужны и как индивидуальные тьюторы в образовании). Но сразу встаёт вопрос: а хорошо ли модель это делает? Эмпатичны ли её вопросы, уместны ли, не наводящие ли, не спрашивает ли она там, где ответ и так исчерпывающий? Систематически это то ли никто не измерял, то ли измеряли довольно плохо.

    Что сделали

    Коллеги собрали модульного агента (на LangGraph), который ведёт интервью по некоторому опроснику. Картинка с диаграммой выглядит сложно, но на самом деле там очень простая и логичная структура:

    В случае нашей статьи опросником было большое очень длинное психологическое интервью (часа на полтора-два, если всерьёз отвечать), из 54 вопросов — биография, семья, ценности, работа, здоровье и так далее.

    На каждом ответе агент сам выносит бинарное решение “нужен follow-up или нет” и формулирует его. Чтобы честно сравнивать модели, зафиксировали всё, что можно: контекст (десять реальных человеческих интервью как затравка), оркестрацию агента (одинаковые промпты, guardrails, логика повторов и т.п.). А главное, зафиксировали самого интервьюируемого — разумеется, это был не человек, а LLM с фиксированным Big Five профилем.

    Прогнали шесть моделей (эксперимент был в начале года, а может, и в конце предыдущего, так что модели уже устаревшие, но смысл, конечно, не в конкретных версиях): Claude Sonnet 4, Gemini 2.5 Pro, GPT-5, Grok 4, Qwen3-235B и DeepSeek V3.1.

    Дальше три эксперта-психолингвиста разметили кучу вопросов, которые модели задавали, по пяти бинарным критериям. Для follow-up вопросов, которые придумывали сами модели, оценивали доброжелательность, необходимость, внимание к контексту и открытость, а для основных вопросов, где модель не задала ни одного уточняющего вопроса, оценивали оправданность этого решения. Аннотаторы оказались очень неплохо согласны между собой (каппа Флейсса 0.67–0.93).

    Результаты

    Получились на удивление внятные профили:

    • Gemini 2.5 Pro — самый эмпатичный тон (“спасибо, что поделились таким личным опытом”) и лучший общий ранг; согласитесь, не совсем то, чего по умолчанию ждёшь от Gemini;
    • GPT-5 — быстрый и избирательный: задаёт меньше всего follow-up’ов, зато самые оправданные;
    • Grok 4 — исчерпывающий до предела: больше всего вопросов, самые длинные и самые навязчивые (в одном интервью он 24 раза припомнил респонденту его высокий уровень невротизма);
    • Claude Sonnet 4 — сбалансированная универсальная модель;
    • Qwen3 — формальный и структурный, но чудовищно медленный (сутки на прогон);
    • а вот DeepSeek просто развалился и не смог даже придерживаться схемы опросника (45 ошибок на уровне формата в течение трёх интервью).

    Кроме того, выяснилось, что лингвистические маркеры (местоимения, вид/время глагола, интенсификаторы, синтаксическая сложность) осмысленно коррелируют с оценками экспертов, то есть стилистика реально влияет на воспринимаемое качество интервью. Вот таких вот табличек в статье сразу несколько:

    Заключение

    Мораль здесь на самом деле простая: модель надо выбирать под конкретную задачу. Причём вряд ли есть смысл делать выводы на уровне “Gemini для чувствительных тем, а Grok — если нужна дотошность”: очевидно, что все такие выводы уже давно протухли, и могут меняться с каждым новым релизом.

    Так что реальный вывод в том, что модели разные, а предложенный протокол их оценивания действительно работает. И если вы используете LLM для каких-нибудь психологических интервью, то стоит, во-первых, оценить текущие модели по похожему протоколу (пусть даже не так масштабно), а во-вторых, зафиксировать их версии для использования потом в production.

    Большое спасибо соавторам!

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • Recoverable but not stationary: линейные структуры в весах и активациях

    Recoverable but not stationary: линейные структуры в весах и активациях

    У нас с моим давним другом и соавтором Ириной Пионтковской недавно вышла статья “Recoverable but Not Stationary: Local Linear Structures in Weights and Activations“; пока в виде препринта, но, глядишь, и засунем куда-нибудь со временем.

    Она про геометрию того, что происходит с нейросетью, когда мы её дообучаем, — и про то, почему так много разных способов “редактировать” уже обученную модель оказываются по сути линейными.

    В этом посте я хочу рассказать и про мотивацию, и про результаты, а заодно дать общее введение в тему. Технических деталей будет немало — будут и теоремы, и формулы, — но я постараюсь, чтобы всё было понятно, а главное, чтобы было видно, как отдельные кусочки складываются в одну довольно-таки стройную картину.

    Линейное дообучение: все хотят двигать модель по прямой

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

    В пространстве весов есть целое семейство методов, которые этим занимаются. Task vectors (Ilharco et al., 2022) предлагают вычислять “вектор задачи” как разность дообученных и исходных весов, а потом складывать и вычитать эти векторы, как будто они живут в обычном линейном пространстве. Примерно как word2vec арифметика в своё время:

    Model soups (Wortsman et al., 2022) усредняют веса нескольких дообученных моделей и получают модель лучше каждой из исходных.

    TIES-merging (Yadav et al., 2023) старается аккуратно разрешать конфликты между такими дельтами при слиянии:

    Ну и совсем общеизвестное: LoRA-дообучение (Hu et al., 2021) ведь тоже с самого начала исходит из гипотезы, что дообучение может жить в низкоранговом срезе матриц весов, и потому учит только добавочку малого ранга.

    В пространстве активаций происходит ровно то же самое, только методы по-другому называются. Activation addition (Turner et al., 2023) строит steering-вектор (вектор управления) как разность активаций на контрастных промптах и просто прибавляет его к скрытому состоянию. Function vectors (Todd et al., 2023) находят компактные векторные представления функций, выученных в контексте. Representation engineering (Zou et al., 2023) предлагает целую методологию мониторинга и управления поведением через линейные направления в пространстве представлений. А ReFT (Wu et al., 2024) обучает низкоранговые вмешательства прямо в активациях, а не в весах.

    Как видите, приёмы разные, а идея одна и та же: нужная структура имеет малую размерность и локально линейна. И тут возникает естественный вопрос: а какая, собственно, линейная структура реально есть в обученной сети? Где она живёт — в весах или в активациях, локально или глобально? И как далеко можно двигаться вдоль неё, прежде чем линейность закончится?

    Есть и более провокационная версия этого же вопроса. Совсем недавно вышла работа “Neural Thickets: Diverse Task Experts Are Dense Around Pretrained Weights” (Gan, Isola, 2026), в которой авторы утверждают, что достаточно хорошо предобученная модель окружена плотными “зарослями” (thickets) полезных направлений, и их можно найти, просто насэмплировав случайных возмущений параметров, оставив те, что помогают, и сложив их в ансамбль.

    Это очень контринтуитивно: если бы полезные направления были редкими иголками в стоге сена размерности 10^9, случайный поиск не находил бы их никогда. А он находит.

    Историю про случайный поиск в высоких размерностях продолжают и более ранние работы по zeroth-order и эволюционным методам — MeZO (Malladi et al., 2023) и evolution strategies (Salimans et al., 2017); все они показывают, что случайный поиск при правильном масштабе действительно двигает большие модели в полезную сторону.

    Именно с этого мы и начали. Случайный поиск, очевидно, не конкурент градиентному спуску: на чистой точности градиент всегда выигрывает. Но его можно использовать как измерительный прибор. Если возмущения, насэмплированные внутри одного подпространства, при одинаковом размере шага работают устойчиво лучше, чем возмущения из другого подпространства, это говорит нам, какое из подпространств лучше согласовано с задачей. Случайный поиск здесь не метод оптимизации, а зонд (в смысле probe) локальной геометрии. И вся статья, по сути, отвечает на вопрос: что именно этот зонд нам говорит?

    Восстановление после забывания

    Чтобы изучать локальную геометрию, нам нужна точка отсчёта, ground truth: известный, заведомо рабочий сдвиг параметров, с которым можно сравнивать всех кандидатов. Откуда его взять? Мы устроили специальный экспериментальный цикл — восстановление после забывания (recovery after forgetting), — который даёт такую мишень в чистом виде.

    Цикл состоит из трёх фаз.

    1. Мультизадачное обучение. Учим небольшую сеть на равной смеси из T задач до контрольной точки \theta_{\mathrm{mt}}.
    2. Доучивание на одной задаче (забывание). Продолжаем учить только на одной задаче, доходя до точки \theta_{\mathrm{forg}}, в которой одна или несколько других задач успели деградировать. Это и есть катастрофическое забывание.
    3. Восстановление. Из \theta_{\mathrm{forg}} делаем небольшое число шагов градиентного спуска обратно на исходной смеси (мы берём 100 шагов для синтетической модели и 50 для LoRA), приходя в точку \theta_{\mathrm{rec}}.

    Теперь у нас есть сдвиг восстановления:

        \[\Delta_{\mathrm{GD}} = \theta_{\mathrm{rec}} - \theta_{\mathrm{forg}},\]

    то есть конкретная, специфичная для задачи адаптация, которую произвёл сам градиентный спуск. Это и есть наша честная мишень: мы можем брать разные маленькие подпространства и спрашивать, насколько хорошо каждое из них содержит \Delta_{\mathrm{GD}}.

    Здесь хорошо будет привести нашу тизер-картинку; хоть она и забегает вперёд по сравнению с тем, где мы сейчас находимся, она как раз иллюстрирует все эти обозначения:

    Подчеркну, что в самих теоретических результатах нет ничего специфичного именно для забывания — то же самое относится к любой небольшой градиентной адаптации вокруг контрольной точки; просто в сценарии с забыванием есть удобный правильный ответ \Delta_{\mathrm{GD}}.

    Кандидатов на “правильное подпространство” у нас три, точнее, целых три их семейства:

    • локальное подпространство задачи (local task subspace) U_\tau^{(r)}(\theta) — линейная оболочка топ-r собственных векторов матрицы ковариации градиентов сети, посчитанных в точке \theta; это и есть то самое “естественное” подпространство, которое часто неявно предполагается в упомянутых выше методах;
    • префикс траектории (trajectory prefix) U_{\mathrm{traj}}^{(k)} — линейная оболочка первых k шагов восстановления

          \[\theta_1-\theta_0, \dots, \theta_k-\theta_{k-1};\]

      по построению весь \Delta_{\mathrm{GD}} лежит в оболочке всей траектории, но здесь речь о том, что и короткого префикса, первых нескольких шагов может хватить, чтобы поймать основную часть нужного подпространства;
    • явный крыловский базис (explicit Krylov span) \mathrm{span}\{g, Hg, H^2 g, H^3 g\} в точке \theta_{\mathrm{forg}}, построенный через произведения гессиана на вектор (в реальности вычисленные через конечные разности); его мы используем как диагностику кривизны, а не как реальный базис; забегая вперёд, скажу, что он ловит лишь около 11% сдвига восстановления против 77% у префикса траектории, и почему так — это интересный вопрос.

    А результаты случайного поиска мы оцениваем тремя способами, потому что они отвечают на разные вопросы:

    • best-of-N — выигрыш одного лучшего из N кандидатов (именно про эту величину наша теорема);
    • ens-k-of-N — выигрыш ансамбля из топ-k кандидатов по голосованию;
    • pass@N — доля тестовых примеров, решённых хотя бы одним из отобранных кандидатов; это верхняя граница, потолок для идеального “селектора”, выбирающего из вариантов.

    Стоит сказать, что структура низкой размерности в весах — это вообще не новость. То, что многие задачи решаются в маленьком случайном подпространстве, люди знают как минимум со времён работ про intrinsic dimension (Li et al., 2018); то, что независимо обученные сети соединяются простыми кривыми малых потерь, показала серия работ про mode connectivity (Garipov et al., 2018) — и здесь большой очередной привет Дмитрию Ветрову!

    Наш вклад в эту историю — временная ось: для восстановления после забывания релевантная низкоразмерная структура оказывается не статичным базисом, а движущимся пучком, который следует за траекторией.

    Но об этом чуть ниже, а сначала — немного теории, потому что без неё непонятно, почему всё это вообще должно работать. Теорию можно без особых потерь для дальнейшего пропустить, все детали тут будут интересны только математически подготовленному читателю.

    Теория: почему случайный поиск вообще что-то находит

    Самый контринтуитивный факт во всей этой истории — что случайный поиск работает в пространстве размерности 10^9. Давайте разберёмся, почему.

    Теорема (гауссовский best-of-N в локально-линейной окрестности). Рассмотрим чекпойнт \theta и его окрестность, где приращение оценки S = -L_\tau ведёт себя линейно:

        \[S(\theta+\delta) - S(\theta) = a^\top \delta + \mathcal{O}(|\delta|^2)\]

    для фиксированного полезного направления a \in \mathbb{R}^D. Посэмплируем \delta_1, \dots, \delta_N \sim \mathcal{N}(0, \sigma^2 I) и выберем лучший сэмпл, \delta_{n^\star} = \arg\max_n a^\top \delta_n. Тогда верно следующее.

    1. Каждая проекция a^\top \delta_n — центрированный гауссиан с дисперсией \sigma^2 |a|^2, не зависящей от размерности D.
    2. Ожидаемый выигрыш best-of-N равен

          \[\mathbb{E}[\max_{n \le N} a^\top \delta_n] = \sigma |a| \sqrt{2 \log N}\,(1 + o(1)),\]

      что растёт с бюджетом, но не с D.
    3. Для любого b \perp a (направление посторонней побочной задачи) у выбранного кандидата \mathbb{E}[b^\top \delta_{n^\star}] = 0, а типичная величина |b^\top \delta_{n^\star}| = \mathcal{O}(\sigma |b|), и она не зависит от N.

    Доказательство тут совсем короткое и стандартное. Для \delta \sim \mathcal{N}(0, \sigma^2 I) величина a^\top \delta — центрированный гауссиан с \mathrm{Var}(a^\top \delta) = \sigma^2 |a|^2, что даёт пункт 1.

    Дальше нормируем, X_n = a^\top \delta_n / (\sigma|a|) \sim \mathcal{N}(0,1), и применяем классический результат из теории экстремальных значений:

        \[\mathbb{E}\left[\max_{n\le N} X_n\right] = \sqrt{2\log N}\,(1+o(1)),\]

    и это пункт 2.

    Наконец, (a^\top\delta, b^\top\delta) являются совместно гауссовскими с ковариацией \sigma^2 \langle a, b\rangle; если \langle a, b\rangle = 0, они независимы, и обусловливание на то, что мы их выбрали (а это событие зависит только от a^\top\delta), оставляет b^\top\delta_{n^\star} \sim \mathcal{N}(0, \sigma^2|b|^2), что даёт пункт 3.

    Главное здесь — первый пункт. Хотя сэмплер размазывает свою дисперсию по всем D координатам, “количество полезного направления” a в одном случайном векторе имеет дисперсию \sigma^2|a|^2, которая не сжимается с ростом D. То есть даже на масштабе LLM случайный поиск не безнадёжен: сигнал на один сэмпл одинаков для любых D, даже гигантских.

    Best-of-N усиливает этот сигнал привычным гауссовским множителем \sqrt{2\log N}, растущим с бюджетом. А третий пункт — это та самая асимметрия, ради которой всё затевалось: отбор по a в среднем вообще не двигает ортогональное направление b, и даже случайный “снос” не растёт с бюджетом. Польза концентрируется на цели и растёт с N, а вред по соседям размазывается и не растёт.

    Два графика внизу это иллюстрируют. Во-первых (слева), ожидаемый best-of-N сигнал a^\top\delta_{n^\star} для размерностей D=3, 100, 1000 ложится на одну и ту же кривую и похож на асимптоту \sigma|a|\sqrt{2\ln N}; во-вторых (справа), движение по ортогональному побочному направлению плоское по N и одинаковое для всех D:

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

    Так и есть — но для угла, который концентрируется около 90°. А угол здесь не совсем та величина, которая нас интересует: проекция a^\top\delta — это произведение (действительно исчезающего) косинуса и растущей как \sqrt{D} длины, и эти два эффекта сокращаются, оставляя \Theta(\sigma|a|) независимым от D.

    Из теоремы, казалось бы, следует, что при сравнении подпространств выигрывать должно то, в котором содержится больше всего a. Так вот, это неверно — по крайней мере, при фиксированном размере шага.

    Утверждение (поиск с фиксированной нормой предпочитает плотность, а не массу). Ограничим сэмплирование подпространством U размерности r, сэмплируя \delta = \rho u с u, равномерным на единичной сфере U. Тогда

        \[\mathbb{E}[a^\top\delta] = 0, \qquad \mathrm{Var}(a^\top\delta) = \rho^2 |P_U a|^2 / r.\]

    Иначе говоря, сигнал поиска на одно измерение масштабируется как |P_U a|/\sqrt{r}: если добавить в U направления, ортогональные a, то r вырастет, |P_U a| не изменится — и сигнал упадёт. Доказательство здесь опять в одну строчку: для равномерного u на сфере U по симметрии \mathbb{E}[uu^\top] = (1/r) P_U, откуда \mathbb{E}[(a^\top u)^2] = |P_U a|^2/r.

    Это очень важная для нас мысль: при фиксированном шаге значима плотность сигнала |P_U a|/\sqrt{r}, а не его масса |P_U a|^2. Подпространство ранга 32, целиком содержащее a, имеет плотность |a|/\sqrt{32}, и это хуже, чем у подпространства ранга 10, содержащего 77% от a. Именно эти цифры мы потом и увидим в экспериментах.

    Наконец, что вообще представляет собой направление восстановления? Здесь тоже есть короткая лемма.

    Лемма (крыловское восстановление). Пусть L_\tau квадратична с постоянным гессианом H на окне восстановления, и

        \[\theta_{t+1} = \theta_t - \eta \nabla L_\tau(\theta_t).\]

    Тогда g_t = (I - \eta H)^t g_0, и

        \[\theta_T - \theta_0 = -\eta \sum_{t=0}^{T-1} g_t \;\in\; \mathcal{K}_T(H, g_0) := \mathrm{span}\{g_0, Hg_0, \dots, H^{T-1} g_0\}.\]

    Иначе говоря, сдвиг восстановления лежит в крыловском подпространстве размерности не больше T (значит, он имеет малую размерность), но одно фиксированное направление ловит его лишь в вырожденном случае, когда градиент оказывается собственным вектором гессиана, а фиксированное подпространство — только если гессиан переводит его в себя (HU \subseteq U).

    Для глубокой сети в забытом чекпойнте ни то ни другое не выполнено. Значит, объект восстановления низкоразмерный, но движущийся: старшие члены H^k g по мере разворачивания траектории всё время подмешивают новые компоненты. Отсюда и главная мысль из названия статьи: recoverable (восстановимо, низкоразмерно) but not stationary (движется).

    Рисунок внизу это иллюстрирует. Слева видно, что путь изгибается — суммарный сдвиг \Delta_{\mathrm{GD}} не совпадает с начальным направлением -g_0 и вообще ни с каким фиксированным направлением; а справа показано, как направление шага поворачивается по мере разворачивания траектории (сначала быстро, потом очень медленно):

    И последний кирпичик — мостик между весами и активациями. Если сдвинуть веса на \delta\theta, то активация каждого слоя сдвинется на

        \[h_\ell(x; \theta + \delta\theta) - h_\ell(x; \theta) \approx D_\theta h_\ell(x; \theta)\, \delta\theta,\]

    то есть на пушфорвард (pushforward) весового сдвига в пространство активаций. А значит, если \delta\theta помогло задаче, то его усреднённая по примерам активационная “тень”

        \[v_\ell = \mathbb{E}_x[D_\theta h_\ell(x;\theta)\,\delta\theta]\]

    является хорошим кандидатом в steering-векторы с тем же эффектом первого порядка на потери. К этой мысли мы вернёмся в самом интересном эксперименте.

    Что показывают эксперименты

    Мы проверяли всё это на трёх масштабах:

    • полностью контролируемый синтетический трансформер, где мы видим всю геометрию;
    • LoRA-адаптеры поверх настоящих предобученных моделей;
    • полные LLM с миллиардами параметров (ну ладно, единицами миллиардов, конечно).

    Синтетический трансформер: подпространство движется

    Начнём с того, что можно полностью контролировать: 4-слойный, 128-мерный, двухголовый каузальный трансформер (около 500К параметров), обученный на четырёх процедурных задачах с последовательностями цифр — copy, reverse, sort и mod-add. Мультизадачное обучение идёт в течение 20К шагов, доучивание для забывания — ещё 10К, восстановление — не более 100 шагов; везде усредняем по трём запускам.

    Сначала хорошие новости для “линейной гипотезы”. В мультизадачной точке минимума матрица ковариаций градиентов каждой задачи действительно низкоранговая — эффективный ранг между 2 и 8, исчезающая доля от числа параметров. Более того, задачи не ортогональны друг другу: средневзвешенное перекрытие их топ-r подпространств по шести парам равно 0.11, что на четыре порядка выше ожидаемого значения \sim 6 \cdot 10^{-5} при случайном их выборе. Это значит, что низкоразмерная структура отдельных задач реальна и вдобавок между задачами есть что-то содержательно неслучайно общее (но не так много, всего 0.11).

    Но низкоранговость и почти-ортогональность не спасают от забывания. После доучивания на одной задаче точность худшей из других падает на 0.56–0.95, что подтверждается даже у пар, чьи подпространства перекрываются меньше чем на 0.10. Жить в почти ортогональных подпространствах оказывается недостаточно для того, чтобы не мешать друг другу.

    И здесь мы приходим к центральному отрицательному результату. Мы сравнили три способа восстановления при одинаковом шаге: полный градиентный спуск, спуск с градиентом, перепроецированным на каждом шаге на подпространство задачи в забытой точке, и градиент, перепроецированный на чистое подпространство до забывания.

    Полное восстановление даёт exact-match 0.30, а обе проекции на статичное подпространство — лишь 0.10 и 0.07. То есть подпространство задачи, измеренное ровно в той точке, где задача была обучена, содержит меньше трети того, что достигает свободное восстановление. Более того, само подпространство движется и “уезжает”: перекрытие топ-r подпространств на шаге t и на шаге 0 падает с 1.0 до примерно 0.12–0.17 за 100 шагов (оставаясь, впрочем, сильно выше случайного, в 2400 раз):

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

    И, наконец, давайте используем наш “зонд” — случайный поиск. Сэмплируя возмущения с фиксированной нормой внутри каждого подпространства на забытой задаче sort, мы получаем воспроизводимый и понятный результат:

    Это best-of-N выигрыш, та самая метрика из теоремы, но две другие метрики — ансамбль и pass@N — дают ровно тот же порядок. Причём, ровно как предсказывает наше утверждение про плотность, префикс траектории выигрывает несмотря на меньший ранг. А использование подпространства задачи (ранга 48) вдоль траектории не помогает, хотя и содержит ответ: лишние направления почти ортогональны сигналу восстановления и только размывают его.

    LoRA на DistilGPT-2 и GPT-2: главный количественный результат

    На синтетике всё сходится, но это одна архитектура с игрушечными задачами. Поэтому мы повторили все эксперименты на LoRA-адаптерах поверх двух настоящих предобученных моделей: DistilGPT-2 с адаптерами ранга 16 на паре sortmod-add и GPT-2 с адаптерами ранга 8 на reversesort, по три запуска, всего шесть прогонов.

    И вот тут получается наш самый чистый количественный результат — про массу проекции, то есть про то, какую долю сдвига восстановления \Delta_{\mathrm{GD}} содержит каждое подпространство. Базис из первых 10 шагов восстановления содержит около 77% от \Delta_{\mathrm{GD}}; первые 20 шагов — около 90%; полная траектория, понятно, все 100% по построению.

    А статичные подпространства ловят гораздо меньше: локальное — около 15%, до забывания — меньше 2%. Нужный нам объект следует за траекторией, а не сидит в фиксированном пространстве малой размерности, и это подтверждается на обеих моделях. Появляется та самая временная ось: там, где работы про intrinsic dimension и mode connectivity говорили о статичной низкоразмерной структуре, при восстановлении забытых задач она оказывается движущейся.

    Здесь опять два графика; слева масса проекции |P_U\Delta_{\mathrm{GD}}|^2/|\Delta_{\mathrm{GD}}|^2 по подпространствам (среднее и разброс по 6 прогонам); справа предсказанная плотность |P_U\Delta|/\sqrt{r} (столбики) против наблюдаемого best-of-N выигрыша (точки), и видно, что они идут вместе:

    Самое приятное здесь то, что масса проекции вместе с нашим утверждением про плотность предсказывает, как хорошо сработает случайный поиск внутри подпространства: поиск с фиксированной нормой извлекает сигнал плотности |P_U\Delta_{\mathrm{GD}}|/\sqrt{r}.

    И прогноз сбывается! Best-of-N (та метрика, про которую теорема) точно следует за плотностью: префикс ранга 10 (0.165) лучше полной траектории ранга 16 (0.134) примерно в те самые \sqrt{16/10} раза, что предсказывает утверждение, а деление каждого выигрыша на \sqrt{r} делает порядок монотонным.

    Интересно, что три метрики при этом немного расходятся — и расходятся ровно так, как предсказывает теория.

    Ансамбль (ens-k-of-N) более снисходителен к большому подпространству (префикс 0.191 против полной траектории 0.182, почти ничья): объединение многих кандидатов размывает штраф за плотность. А pass@N просто отслеживает массу: чем больше \Delta_{\mathrm{GD}} содержит подпространство, тем выше потолок. Главный вывод мы делаем из best-of-N, где теория применима напрямую.

    Полезно заглянуть и внутрь средних по семействам — на отдельных кандидатов. На рисунке около 1200 кандидатов из 6 прогонов:

    Здесь можно увидеть две вещи. Во-первых, возмущения, которые улучшают задачу, — это в основном те, что согласованы с направлением градиентного восстановления: косинус кандидата с \Delta_{\mathrm{GD}} коррелирует с его выигрышем (r \approx 0.52), а поиск иногда даже чуть обыгрывает один шаг градиента, находя более удачный масштаб вдоль примерно того же направления. Во-вторых, перекрытие кандидата со статичным локальным подпространством задачи успех не предсказывает, а скорее анти-коррелирует (r \approx -0.40): из этого подпространства сигнал восстановления почти целиком убирает проекция.

    Есть из этой картины и практический вывод. Гипотеза о движущемся подпространстве делает конкретное предсказание про мультизадачное дообучение: если довести одну задачу до конца и только потом добавить вторую, локальное пространство первой от этого “уедет”, а значит, последовательная специализация должна быть хрупкой.

    Так и получается: на обеих моделях расписания, которые обновляют задачи вместе (простая сумма градиентов, чередование, PCGrad-lite в духе Yu et al., 2020), добиваются точности худшей задачи на порядок выше, чем расписания, которые сначала доучивают одну задачу до конца и лишь потом берутся за другую.

    Тут стоит сказать, что вокруг конфликта градиентов в мультизадачном обучении выросло целое семейство методов: PCGrad, MGDA, GradNorm, CAGrad. Да и регуляризаторы для continual learning вроде EWC и GEM про то же. Мы не пытаемся добавить ко всему этому многообразию ещё один оптимизатор, а всего лишь делаем диагностику; разные одновременные расписания в наших экспериментах кучкуются в паре пунктов друг от друга без явного победителя. Но вывод всё равно чёткий: последовательно учить задачи не надо.

    LLM-масштаб: картина слегка мутнеет

    Синтетика и LoRA дают полное совпадение с теорией до \sim 10^6 обучаемых параметров. А что будет на моделях с миллиардами параметров? Здесь мы честно задаём три вопроса, и так же честно отвечаем, в том числе там, где доказательств меньше, чем хотелось бы.

    Выживает ли низкоранговая геометрия? Лишь отчасти. На Qwen2.5-0.5B мы оцениваем ковариации градиентов через случайный скетч и считаем эффективные ранги — их значения очень малы, от единиц до полутора десятков. Но маленький эффективный ранг по нескольким десяткам минибатчей в пространстве размерности D \gg n может быть артефактом сэмплирования, а не свойством задачи.

    Поэтому мы также добавляем “контрольную группу”: заменяем каждый градиент гауссовским вектором той же нормы и переоцениваем ранг тем же пайплайном. В результате на Qwen-3B при ограничении на MLP-слои измеренный ранг явно ниже контроля (там низкий ранг настоящий), а на Qwen-7B измеренный и контрольный ранги практически совпадают — и видимая низкоранговость неотличима от шума.

    Так что чистый низкоранговый результат установлен на маленьких моделях и LoRA, а на миллиардных масштабах выживает лишь частично. Это, пожалуй, самое слабое место из всех наших утверждений в статье: мы не установили, что низкий ранг на миллиардах параметров сохраняется.

    Находит ли случайный поиск улучшения — и в каком режиме? Теорема работает только там, где потери примерно линейны по возмущению, а значит, и весь результат про управление активациями ниже надо проверять при этом условии. Поэтому сначала надо этот режим найти, отделив линейную часть эффекта возмущения от вклада кривизны.

    Мы делаем это напрямую; считаем симметричные конечные разности:

        \[F_1 = \tfrac{1}{2}[L(\theta+\sigma\delta) - L(\theta-\sigma\delta)], \qquad F_2 = \tfrac{1}{2}[L(\theta+\sigma\delta) + L(\theta-\sigma\delta) - 2L(\theta)],\]

    где F_1 — антисимметричная (линейная) часть, а F_2 — симметричная (кривизна). Прогоняя масштаб \sigma, видим, что на Qwen2.5-0.5B линейная часть доминирует около \sigma \approx 10^{-4}, а выше кривизна берёт верх, и случайные ходы становятся разрушительными. И этот режим зависит от задачи: у BoolQ и HellaSwag есть здоровая полоса линейных и выпуклых направлений, а ARC-Easy на всех масштабах задавлена вогнутыми направлениями — это как раз случай, когда никакого предпочтительного направления нет и случайный поиск вырождается в шум.

    Внутри же предсказанного окна теорема подтверждается: best-of-N при \sigma \approx 10^{-4} даёт возмущения, чей результат после объединения в ансамбль на отложенном BoolQ поднимает точность примерно на 10 пунктов, и урон по другим задачам остаётся маленьким.

    А теперь самое интересное.

    Можно ли из полезного весового возмущения сделать steering-вектор? Здесь работает наш пушфорвард, и это, по-моему, самый красивый результат статьи.

    Чистая версия: один шаг градиента — это и есть steering-вектор. На Qwen2.5-0.5B (в формате “истинных/ложных” утверждений) мы делаем один шаг градиента, проталкиваем полученный весовой сдвиг в активации каждого слоя и сравниваем с контрастным (true-minus-false) CAA-вектором (centroid-based activation addition, в духе Rimsky et al., 2023), построенным независимо из размеченных промптов.

    Два направления хорошо согласуются на поздних слоях: косинус растёт через средний блок декодера и достигает около 0.58 на слоях 19–20 — ровно тех, откуда обычно и берут steering-векторы, — и только при том самом промежуточном learning rate 10^{-4}, который анализ F_1/F_2 пометил как линейный.

    При 10^{-3} шаг выходит из линейного режима, и согласованность рушится. А если впрыснуть градиентный сдвиг обратно в чистую модель, кривая отклика близко повторяет кривую CAA-вектора и поднимает точность примерно на 10 пунктов. Модель ведёт себя почти одинаково, пришёл ли steering-вектор из 80 размеченных контрастных пар или из одного шага градиента вообще без меток.

    Шумная версия повторяет это, заменив честный шаг градиента случайным возмущением (отобранным по принципу best-of-N). Здесь пайплайн посложнее — сначала поиск кандидатов, потом усреднение их влияния на активации в steering-вектор, потом выбор “рабочей точки”, то есть слоя и масштаба впрыска, и финальный замер на отложенном наборе:

    Мы прогнали это на 14 комбинациях (модель, задача) — Qwen2.5 на 0.5B/3B/7B и OLMo-7B. Структурированный перенос побеждает контроль (случайное направление той же нормы на том же слое) в 9 из 14 случаев, и эффект Qwen на BoolQ выживает на всех трёх масштабах. То есть получается не бесплатно и не универсально: на OLMo BoolQ, например, выигрыш +1.2 пункта на целевой задаче покупается ценой -17 пунктов на других задачах. Да и 9 из 14 — это не то чтобы очень убедительно.

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

    Более широкая проверка: что устояло?

    А теперь самый потенциально неуютный шаг. Статью мы подали уже пару недель назад, и выложенный препринт примерно соответствует поданной версии (он разве что поподробнее). Но потом мы решили, что наши результаты нужно перепроверить более широко, и устроили безжалостный независимый стресс-тест всех наших утверждений.

    Кстати, этот тест был сделан в большой степени автоматизированно, AI-агентами. Как вы знаете, тема того, как AI сам двигает науку, мне очень близка, я писал про неё недавно в постах про AI 2027 и опровержение гипотезы Эрдёша и много раз рассказывал, но сейчас не об этом.

    Такая перепроверка всегда может оказаться смертельной для результатов. Точнее говоря, она может сильно ограничить результаты: вопрос не в том, верно ли мы всё сделали (скорее всего да), а в том, по каким осям — архитектура, масштаб, воспроизводимость, тип задачи — наши результаты подтверждаются, а где проходит граница. И, кажется, обошлось!

    Геометрия восстановления воспроизводится широко. Главная находка — что восстановимый объект живёт в префиксе траектории, а не в статичном подпространстве — повторяется на пяти архитектурных семействах (Pythia/NeoX, GPT-Neo, OPT, TinyLlama/Llama, GPT-2) и доходит до 7B на всех четырёх проверенных семействах. Префикс везде уверенно превосходит и фиксированные, и согласованное по размерности случайное подпространство.

    Он ловит около 0.41 сдвига восстановления, а другие методы буквально около нуля. Так что наш вывод устойчиво воспроизводится.

    Кстати, тут обнаружилась важная поправка: сравнивать префикс размерности 10 с подпространством размерности 3 нечестно, потому что большее подпространство ловит больше чего угодно. Поэтому мы проверяли при согласованной размерности k=3, и, конечно, всё равно всё получилось.

    Так что с геометрией всё в порядке. А что с нашей леммой?

    Важное уточнение. В статье мы отмечаем, что явный крыловский базис ловит куда меньше \Delta_{\mathrm{GD}}, чем эмпирический префикс, и потому пользовались префиксом как рабочим прокси.

    Стресс-тест показал, что префикс — это не крыловское подпространство никакого оператора. Ни обычный крыловский базис \{g, Hg, H^2g, \dots\}, ни “правильный” предобусловленный базис для Adam \{(P^{-1}H)^i P^{-1} g\}, ни даже “дрейфующий” базис с пересборкой оператора в каждой точке траектории не приближаются к префиксу.

    У нас уже есть идеи о том, почему так, но это ещё требует дальнейших уточнений.

    Подтвердилось и то, чего нам в статье как раз не хватало. Мы измеряли дрейф мультизадачной траектории восстановления, но не вращение подпространства задачи вдоль однозадачной оптимизации. Этот недостающий замер мы провели, и оказалось, что однозадачное подпространство градиентной ковариации действительно вращается, причём больше 90% этого вращения завершается рано, уже к 48-му шагу:

    Так что нестационарность подпространства подтверждается и на прямом измерении.

    Воспроизводимость. Здесь не буду перегружать цифрами, но, в общем, множественные перезапуски показали, что практически все результаты воспроизводятся очень хорошо. Единственный по-настоящему хрупкий результат — это слабая корреляция между кривизной и точностью на downstream задачах. Но там и был слабый сигнал, который ещё и не следовал ни из чего серьёзного, так что по идее это и должно было быть ненадёжным.

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

    Как всё это складывается вместе

    Попробую теперь собрать общую картину.

    Наш итоговый вывод получается в каком-то смысле отрицательным. Неверно, что нет никакой линейной структуры — она есть! Но нет и единого глобального вектора задачи (task vector).

    Оказалось, что обученные задачи дают локальную низкоразмерную структуру, которая сильно зависит от того, где и как смотреть. В общем чекпойнте градиенты задач концентрируются в маленьком подпространстве, которое даёт хороший базис для одного шага градиентного спуска. Вдоль траектории сдвиг восстановления живёт в крыловском подпространстве, хорошо приближаемом ранним префиксом этой траектории; это подтверждается и случайным поиском. А в пространстве активаций тень одного шага градиента близко повторяет контрастный steering vector на поздних слоях.

    Объединяющая мысль простая: линейная структура в обученных сетях реальна, но локальна — она движется по мере обучения, зависит от масштаба и выглядит по-разному в весах и в активациях.

    Мне кажется, что естественнее всего смотреть на это с дифференциально-геометрической точки зрения: трактовать маленькие весовые возмущения как бесконечно малые смещения на многообразии параметров и изучать локальную касательную структуру, которую порождает оптимизация. В отличие от двух самых популярных сейчас объяснений линейных феноменов — через механистические схемы признаков (feature circuits) или через переполненные представления, мотивирующие sparse autoencoders, — мы заходим не со стороны интерпретируемости, а со стороны геометрии оптимизации.

    И с этой точки зрения многие наблюдаемые “линейные” феномены возникают сами собой. Нейросеть — дифференцируемая функция, обучение идёт по некоторым гладким траекториям с какой-то локальной геометрией (напомню в скобках свой недавний пост о геометрии ландшафта потерь, а именно о термодинамике нейросетей); и эти траектории действительно имеют малую размерность, но они не статичны.

    Та же оптика объясняет и то, с чего мы начинали, — почему случайные возмущения вообще работают на масштабе LLM. В локально-линейном режиме гауссовский поиск эффективно находит направления, улучшающие задачу, размазывая побочные эффекты по ортогональным задачам; и сигнал на сэмпл при этом не зависит от размерности. Эта часть у нас сопровождается даже некоторыми теоретическими результатами, что в deep learning редкость.

    Несмотря на то, что мы сделали независимое подтверждение, ограничения у работы всё равно, конечно, есть. Масштаб наших экспериментов невелик, и самые чистые результаты получаются на маленьком трансформере на 500К весов и на LoRA-адаптерах. А у префикса траектории есть и концептуальная проблема: кажется, что мы знаем, где живут хорошие направления, но превратить это в практический алгоритм нельзя, потому что чтобы узнать префикс, надо уже запустить восстановление, а тогда зачем он?..

    Куда дальше? Здесь много разных направлений, и мы, конечно, продолжаем. Упомяну, например, один глубокий вопрос, который эта работа ставит, но не решает: почему вообще полностью обученные чекпойнты содержат рядом возмущения, способные резко улучшить конкретную задачу? Откуда берутся эти крайне избирательные локальные направления и когда они возникают — при предобучении, при дообучении, или это свойство самого ландшафта потерь? Это мне кажется важным продолжением наших исследований.

    В общем, кажется, что мы нащупали правильную оптику, через которую разрозненные результаты о линейности и маленьких подпространствах становятся проявлениями одной локальной и подвижной геометрии. Большое спасибо Ирине за совместную работу над всем этим, и надеюсь, что самое интересное ещё впереди!

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • AI 2027 в 2026: нам и правда остался год?

    AI 2027 в 2026: нам и правда остался год?

    Предисловие

    4 мая 2026 года Джек Кларк, сооснователь Anthropic, написал пост, в котором сказал следующее:

    I’m writing this post because when I look at all the publicly available information I reluctantly come to the view that there’s a likely chance (60%+) that no-human-involved AI R&D – an AI system powerful enough that it could plausibly autonomously build its own successor – happens by the end of 2028.

    This is a big deal.

    I don’t know how to wrap my head around it.

    Это не случайная обмолвка и не маргинальное мнение. Вот, например, свежее эссе от Anthropic “When AI builds itself“, где компания прямым текстом пишет, что уже видит “ранние признаки” того, как AI-модели ускоряют разработку самого AI. К этому эссе и показанным там результатам мы ещё вернёмся.

    Сегодня мы поговорим о том, где мы сейчас на этом пути к RSI (recursive self-improvement). Самое время об этом поговорить в те дни, когда Claude Fable стал доступен широкой публике (я сам тоже пробую и восхищаюсь).

    И чтобы придать этому рассказу структуру, давайте вспомним сценарий, нашумевший прошлой весной: AI 2027, сделанный как специалистами по AI, так и специалистами по прогнозированию, и не побоявшийся поставить конкретные даты.

    AI 2027 — это месяц за месяцем расписанный сценарий с датированными вехами, числами на бенчмарках, оценками выручки и компьюта. Вот главный график, но если вы не читали сам прогноз, почитайте, я подожду, он того стоит:

    Сейчас прошёл уже год с лишним с момента публикации AI 2027. Давайте проверим, насколько предсказания сбылись.

    Есть канонический способ это сделать: сайт ai2027tracker.com, где энтузиасты сверяют предсказания сценария с реальностью. Вот вам tl;dr для всего трекера:

    Но нам, конечно, интересны не сами загоревшиеся зелёным или красным лампочки, а то, что за ними стоит: почему одни прогнозы сбылись, а другие нет, что это говорит о текущей динамике AI-исследований и, главное, — приближает ли всё это нас к тому самому моменту, когда LLM-агенты замкнут петлю и уйдут в сингулярность.

    Так что давайте разбираться.

    AI 2027 чуть подробнее

    Сценарий AI 2027 был опубликован 3 апреля 2025 года командой AI Futures Project: Даниэль Кокотайло, Скотт Александер (лучший блогер на свете; сейчас он ведёт AstralCodexTen, но если вы не читали, начните с лучших постов SlateStarCodex), Томас Ларсен, Эли Лифланд и Ромео Дин.

    Главное имя здесь — Кокотайло: он ушёл из OpenAI в 2024 году, демонстративно отказавшись подписывать соглашение, которое лишило бы его права критиковать компанию. А ещё в августе 2021 года, до выхода ChatGPT, он написал эссе “What 2026 Looks Like“, в котором с пугающей точностью описал переход от генераторов текста к chain-of-thought и дальше к агентам — примерно с теми сроками, которые и случились. Можете, конечно, считать это единичным успехом, который ничего не доказывает, но всё-таки Даниэль Кокотайло — это тот самый человек, который предсказал развитие AI в тот момент, когда почти никто другой таких прогнозов не делал.

    Сам сценарий — это художественный, по сути, текст: вымышленная ведущая лаборатория OpenBrain, вымышленный китайский конкурент DeepCent, и расписанная по месяцам цепочка моделей-агентов от Agent-1 до Agent-5.

    Общий сюжет таков. До определённого момента AI — это инструмент, и он помогает людям делать AI. Но в какой-то момент модель становится достаточно хороша в самих AI-исследованиях, чтобы значительную часть этой работы делать самостоятельно. И вот тогда включается петля обратной связи: AI ускоряет разработку AI, более быстрый ИИ ускоряет разработку ещё сильнее, и так далее.

    AI 2027 выделяет здесь два ключевых порога:

    • superhuman coder (SC) — система, которая программирует лучше лучших людей и быстрее, и дешевле,
    • superhuman AI researcher (SAR), которая лучше людей уже в исследованиях целиком.

    Между ними и за ними прогресс идёт всё быстрее, потому что его двигают сами модели; финал — переход к сверхинтеллекту (ASI) к концу 2027 года. А ещё в сценарии есть и динамика гонки между США и Китаем, и защита весов моделей от кражи, и проблемой согласования AI (AI alignment). В концовке сюжета есть развилка: гонка без ограничений ведёт к катастрофе, а сценарий “замедления” оставляет человечеству шанс.

    Здесь сразу нужно сделать важную оговорку, которую в пересказах обычно теряют. Число “2027” в названии — это не медианный прогноз авторов, а скорее его мода, самый вероятный отдельно взятый год по одной конкретной модели (подробно об этом написано здесь). После публикации авторы несколько раз сдвигали сроки: в 2025-м они решили, что поторопились, и отодвинули прогноз примерно на полтора года вперёд, в конце 2025-го добавили оговорку, что медианы авторов лежат где-то в диапазоне 2028–2035 годов.

    А согласно январскому разбору самих авторов медианный прогноз достижения superintelligence (полный ASI, не superhuman researcher) у Кокотайло был в 2031-м, а у Лифланда — в середине 2030-х:

    Так что AI 2027, конечно, не надо воспринимать как “мы утверждаем, что сингулярность случится в 2027-м”. Но для такого события, честно говоря, пара лет не так уж важна, речь идёт о том, что superintelligence, а за ним и сингулярность произойдёт при нашей с вами жизни, в очень обозримом будущем.

    Табель успеваемости: две ретроспективы

    К годовщине сценария появились две независимые ретроспективы, и хорошо, что именно две — потому что они смотрят с разных сторон и при этом приходят к похожему выводу.

    Первая — авторская. 12 февраля 2026 года Кокотайло и Лифланд опубликовали «Grading AI 2027’s 2025 Predictions», где сами выставили себе оценки за 2025 год. После предыдущего раздела вы могли подумать, что это очередной прогноз из разряда “вот-вот, но не сейчас, и всегда так будет”, но обратите внимание на подзаголовок:

    По их оценкам, количественные метрики в среднем шли примерно на 65% от темпа, который закладывал сценарий. И прогресс на SWE-bench Verified, и прирост от AI в самих AI-исследованиях шли медленнее ожидаемого.

    Но большинство качественных предсказаний действительно сбылись, годовая выручка OpenAI дошла до прогнозных $18 млрд и даже немного больше, и метрика временного горизонта METR (про неё подробно ниже) шла практически точно по расписанию. Качественно сбылось главное: агенты действительно появились, coding agents стали реальным рабочим инструментом. Так что в итоге авторы сдвинули свой прогноз полной автоматизации программирования на диапазон “середина 2028 — середина 2030”.

    Вторая ретроспектива — тот самый трекер ai2027tracker.com. Здесь из сценария вычленили 53 конкретных предсказания и каждому присвоили один из шести статусов. Картина на лето 2026 года выглядит так:

    В целом, обе ретроспективы согласны, что реальность идёт со скоростью около двух третей от сценария или чуть больше. Но любопытно, что уверенно сбывается именно качественная структура прогноза — агентизация, переход к моделям-работникам, инвестиционный бум, отставание регулирования. А отстают числа на бенчмарках, которых как раз обычно ждёшь раньше, чем качественных сдвигов.

    Одно из предсказаний, кстати, сбылось с большим опережением графика, и довольно тревожным образом. Вот что говорит AI 2027 о модели “Agent-2”, которая по прогнозу должна была появиться в начале 2027 года:

    OpenBrain presents Agent-2 to the government, including the National Security Council (NSC), the Department of Defense (DOD), and the U.S. AI Safety Institute (AISI). OpenBrain wants to maintain a good relationship with the executive branch, because it is basically the only actor that can stop them now, and if they don’t keep it informed it might find out anyway and be displeased.48

    Officials are most interested in its cyberwarfare capabilities: Agent-2 is “only” a little worse than the best human hackers, but thousands of copies can be run in parallel, searching for and exploiting weaknesses faster than defenders can respond. The Department of Defense considers this a critical advantage in cyberwarfare, and AI moves from #5 on the administration’s priority list to #2.49 Someone mentions the possibility of nationalizing OpenBrain, but other cabinet officials think that’s premature. A staffer drafts a memo that presents the President with his options, ranging from business-as-usual to full nationalization. The President defers to his advisors, tech industry leaders who argue that nationalization would “kill the goose that lays the golden eggs.” He elects to hold off on major action for now and just adds additional security requirements to the OpenBrain-DOD contract.

    Как все мы знаем, в реальности практически всё это уже произошло, с большим запасом по времени! В рамках проекта Glasswing Anthropic использовала свою фронтирную модель Claude Mythos Preview на многих open source проектах, и та полностью автономно, без участия человека, нашла кучу критических уязвимостей. Об этом много писали, сейчас не об этом, тем более что я совсем не специалист по кибербезопасности.

    Так что вот несколько основных предсказаний и то, как они сбываются:

    • Кодовые агенты приносят реальную пользу к середине 2025” — это безусловно уже давно так, но, наверное, всё-таки реально агенты начали набирать широкую популярность в самом конце 2025, а не в середине;
    • 85% на SWE-bench Verified к середине 2025” — такие цифры оказались слишком оптимистичными; впрочем, AI 2027 не про циферки, вот эту, например, я нашёл где-то в глубине сноски под номером 10;
    • Массивные инвестиции в инфраструктуру в 2025–2026” — ну тут без вопросов, движемся к триллиону долларов, Stargate жужжит, всё такое;
    • Автономный поиск 0-day у Agent-2 в начале 2027” — это сбылось даже быстрее, чем прогнозировали;
    • Безопасность и регулирование отстают от возможностей” — и это, кажется, несомненный факт; Mythos немного пробудил американскую администрацию, давеча какой-то вот ещё executive order появился, но пока это всё очень мягко и реактивно, а не проактивно; но это отдельная тема, как-нибудь поговорим и о ней.

    Самые интересные для нас сегодня прогнозы — это “Superhuman coder в 2027” и “Переход к ASI к концу 2027 через autoresearch“. Оценивать их пока рано, но давайте обсудим, где мы сейчас.

    Горизонт автономности: главный график про агентов

    Чтобы говорить о темпе всерьёз, нужна метрика. Но классические бенчмарки тут плохо работают: они насыщаются (модели упираются в 100% и метрика перестаёт что-либо различать) и, что важнее, “90% на бенчмарке X” обычно довольно мало говорит о том, что модель на самом деле может сделать полезного.

    Организация METR (Model Evaluation and Threat Research) предложила метрику, которая давно уже стала самым главным графиком во всей этой дискуссии. Возьмём набор задач — у METR это около 230 задач по программированию, ML-инженерии и кибербезопасности — и для каждой замерим, сколько времени на неё тратит человек-эксперт. Определим временной горизонт (time horizon) модели как человеческую длительность выполнения задач, с которыми модель успешно справляется с вероятностью 50%.

    Метрика хороша тем, что она измеряется в естественных единицах — в человеко-времени, а не в процентах на каком-то конкретном тесте. И данные METR, разумеется, показывают уверенную экспоненту:

    Формально говоря,

        \[T(t) = T_0 \cdot 2^{(t - t_0)/\tau},\]

    где \tau — время удвоения. В исходной работе METR (март 2025-го) на горизонте 2019–2025 годов оно составляло около 7 месяцев.

    В январе 2026-го METR выпустила обновление Time Horizon 1.1 (на графиках здесь уже оно): набор расширили со 170 до 228 задач (вдвое увеличив долю задач длиннее восьми часов) — и пересчитанные цифры получились такими: удвоение раз в 6,5 месяца на всём периоде, раз в ≈4,3 месяца после 2023-го и раз в ≈3 месяца с 2024 года. То есть график на самом деле даже суперэкспоненциальный, хотя до 2023-го, конечно, подсчёт секунд имел не так уж много смысла.

    В абсолютных цифрах у Claude Opus 4.6 в феврале 2026-го был потолок около 12 часов, а та самая Mythos Preview упёрлась в потолок надёжного измерения — в бенчмарке METR нет таких задач, да и сложно на таком горизонте уже оценивать человеческое время.

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

    Мне по-прежнему так кажется, но, как видите, до рабочего дня удвоение вообще не замедлилось, и кажется, что горизонт и дальше будет удваиваться ещё какое-то время. AI-система, способная на автономное решение недельных и месячных задач — это уже почти буквальное определение “superhuman coder”.

    Разумеется, здесь не обойдётся без важной оговорки. Многочасовые результаты касаются вероятности успеха в 50%. “Справляется в половине случаев с часовой задачей” — это очень круто, но это всё ещё не автономная система, а просто очень хороший помощник, результаты которого надо внимательно проверять.

    У METR есть и график про вероятность 80%, и он выглядит точно так же, отставая на 2-3 удвоения, то бишь на полгода-год:

    Но, конечно, было бы интересно увидеть и график про вероятность 99%, и график про вероятность, соответствующую вероятности успеха у живого человека. Какова она, кстати говоря? Лично я понятия не имею, с какой вероятностью профессиональный программист успешно завершит задачу, на которую у него в среднем должен уйти день; да и что значит “успешно завершит”, тоже ещё надо хорошо определить.

    Проблема надёжности: от бенчмарка к реальной работе

    У METR есть и негативные результаты. В июле 2025 года они провели рандомизированный контролируемый эксперимент: взяли опытных мейнтейнеров open-source-проектов и дали им решать задачи в их собственных репозиториях — половину с разрешением использовать AI-инструменты, половину без. В результате с AI разработчики потратили на 19% больше времени. Не меньше — больше; и, что особенно показательно, даже постфактум участники были уверены, что AI их ускорил.

    Этот эксперимент до сих пор иногда цитируют как свидетельство того, что “AI бесполезен”. Но даже если не вчитываться в контекст, ясно, что речь об “AI середины 2025 года”. А с тех пор год прошёл.

    В феврале 2026 года METR вернулась к тому же эксперименту: 57 разработчиков снова решали задачи в своих репозиториях, половину с AI, половину без. Числа показывают, что в начале 2026-го люди субъективно ускорялись от ИИ заметно сильнее, чем год назад, а замедление почти пропало:

    Но самое забавное в этой работе в том, что широкое внедрение AI-помощников мешает самой возможности провести такое исследование. Тех, кому AI помогает сильнее всего, всё труднее заманить в эксперимент — растёт доля разработчиков, которые “не согласились бы делать и половину своей работы без AI”. И даже более того, от 30% до 50% участников признались, что не брали часть задач в эксперименте именно потому, что не хотели делать их без AI. То есть из выборки систематически вымываются ровно те задачи, где выигрыш от ИИ максимален.

    Поэтому METR честно называет собственную оценку “ненадёжным сигналом” и в лучшем случае нижней границей истинного эффекта.

    В другом исследовании METR (март 2026) взяли пулреквесты, сгенерированные AI, которые проходят тесты SWE-bench Verified, и дали их на ревью настоящим мейнтейнерам. Оказалось, что около половины таких PR мейнтейнеры не приняли бы:

    Иначе говоря, между “проходит тесты” и реальным инженерным вкладом тоже есть зазор, который пока не преодолён.

    В целом здесь понятная и простая арифметика: если агенту нужно выполнить задачу из n последовательных шагов, и каждый шаг удаётся независимо с некоторой вероятностью, то вся задача удаётся с вероятностью p^n, то есть экспоненциально маленькой:

    Например, свежий бенчмарк APEX-Agents от Mercor (480 задач из жизни инвестбанкиров, консультантов и юристов) показал, что лучшие модели доводят до конца с первой попытки около 23–24% задач (GPT-5.2 — 23%, Gemini 3 Flash — 24%); даже за восемь попыток лучший результат составляет около 40%.

    А февральская работа про “отклонение от канонического пути” (Canonical Path Deviation, Lee, 2026) показывает, что один ошибочный вызов инструмента повышает вероятность того, что и следующий вызов окажется ошибочным, на ~22,7 процентного пункта. Ошибки не просто перемножаются, но ещё и коррелируют.

    Так что кривая горизонта METR выглядит очень перспективно, но пока не является состоявшимся доказательством или тем более признаком того, что сингулярность уже пришла. Есть ещё довольно большой разрыв с реальностью. Он, безусловно, будет скоро преодолён, если нынешние экспоненты продолжатся, но это ещё не произошло и не гарантировано.

    Автономия и autoresearch: бенчмарки

    Теперь центральный лично для меня вопрос: насколько мы близки к авторесёрчу — к тому, чтобы AI-модели сами вели исследования, в первую очередь исследования самого AI?

    В этом разделе давайте пройдёмся по бенчмаркам. Я уже много раз оговаривался, что бенчмарки не обязательно на 100% соответствуют реальности, но всё-таки люди стараются делать так, чтобы что-то они да показывали.

    Самая нижняя ступень — тот самый SWE-bench Verified: реальные GitHub issues, которые надо починить так, чтобы они прошли (спрятанные) тесты. Год назад это был главный экзамен кодовых агентов, а сегодня он, по сути, сдан.  На официальном лидерборде верхушка держится около 76%:

    Но сами лаборатории в system cards свежих моделей заявляют результаты выше 80%, а где-то уже появляются и 90–95% (хотя это больше похоже на маркетинг).

    Хуже того, в феврале 2026-го сама OpenAI перестала использовать SWE-bench Verified: их аудит 138 самых трудных задач (тех, что o3 не решала стабильно даже за 64 попытки) показал, что у более половины из них просто сломаны тесты — они отвергают функционально правильные решения. Плюс нашлись следы того, что решения утекли в обучающие данные всех ведущих моделей. Так что можно считать, что этот бенчмарк закончился.

    Есть более сложные версии: SWE-bench Pro со стандартизированной обвязкой, где те же модели проседают на десятки пунктов, и SWE-rebench, который постоянно подмешивает свежие issues, чтобы бороться с протечкой задач в обучающие данные. Но в целом кажется, что “починить размеченный баг” — это уже пройденный этап.

    Ступенью выше — MLE-bench от OpenAI: 75 настоящих соревнований с Kaggle, где агент проходит весь цикл ML-инженера (подготовить данные, обучить модель, поитерироваться), а оценивают его по человеческой шкале медалей Kaggle. Здесь за полтора года тоже изменилось примерно всё: в исходной статье 2024 года лучшая модель брала медаль примерно в 17% соревнований, а на сегодняшнем лидерборде топовые агенты получают медаль уже в районе 62-64% задач. Сейчас “AI-агент как крепкий ML-инженер” становится реальностью.

    Ещё выше — RE-Bench от METR: семь открытых задач именно исследовательской инженерии, с прямым сравнением против десятков людей-экспертов.

    Самым показательным результатом исходной работы была не абсолютная цифра, а форма кривой: при бюджете в 2 часа агенты легко обыгрывали экспертов (агенты быстрее, дешевле, отлично параллелятся), но при бюджете в 8 или 32 часа люди уверенно выходили вперёд — на долгий автономный research агентов в 2024 году не хватало.

    Но к 2026-му фронтирные модели подросли так, что эта ступень — как и весь R&D-арсенал METR — во многом насытилась: Opus 4.6 успешно тянет больше 80% задач из набора METR, и точку пересечения, где люди ещё держались, приходится искать на всё более длинных горизонтах (отсюда и MirrorCode с задачами на недели). Грубо говоря, спринт агенты уже выиграли, и спор сместился к марафонским дистанциям.

    Предпоследняя ступень — PaperBench, тоже от OpenAI (Starace et al., 2025): воспроизвести с нуля 20 статей с ICML 2024 (тысячи проверяемых подзадач) — понять вклад работы, написать кодовую базу, прогнать эксперименты, получить те же числа.

    Здесь год назад результаты были в районе 20%, а лидерборда как такового нет; интересно, как бы сейчас справился Claude Mythos, конечно.

    И, наконец, верхняя ступень — AutoResearchBench (апрель 2026), где надо не воспроизвести одну статью, а сориентироваться в литературе: выследить нужную работу многошаговым поиском на всём arXiv (где статей миллионы) или собрать все статьи, удовлетворяющие условию.

    Это очень близко к реальному труду исследователя, и здесь пока модели, уже хорошо справляющиеся с обычным сёрфингом вроде BrowseComp, проваливаются: фронтир держится на уровне около 9%.

    Это не все бенчмарки, конечно же, но довольно репрезентативный их срез.

    В общем, процесс идёт: бенчмарки насыщаются, люди придумывают новые бенчмарки. А вывод пока что звучит так: на самых реалистичных открытых задачах люди всё ещё нужны. Autoresearch как “готовая автономная научная рабочая сила” пока ещё не наступил, хотя первые шаги уже сделаны. Об этом дальше.

    Автономия и autoresearch: позитивные результаты

    Но, чёрт возьми, наступает! В тех областях, где можно построить быстрый и честный автоматический верификатор, агентные системы уже делают настоящие открытия.

    За последний месяц оно засияло особенно ярко. 20 мая 2026 года OpenAI объявила, что её внутренняя рассуждающая модель опровергла гипотезу Эрдёша о единичных расстояниях — задачу, которой почти восемьдесят лет и о которой ведущие математики мира действительно много думали. Об этом я подробно писал совсем недавно, повторяться не буду.

    Но это далеко не единичный случай. Вспомним хотя бы AlphaEvolve от DeepMind, которому уже почти год стукнул: связка LLM и эволюционного поиска, где модель предлагает изменения в коде, а верификатор гоняет их и отбирает лучшие. AlphaEvolve тогда улучшил расписание дата-центров Google, помог в проектировании схем, нашёл новые алгоритмы умножения матриц и, что особенно изящно, ускорил обучение той самой модели, на которой сам работает, придумав новые kernel optimizations. И математические результаты кое-какие продвинулись:

    Про AI Co-Scientist от Google я рассказываю в каждом докладе, но вот появился и AI Co-Mathematician от всё той же DeepMind (Zheng et al., май 2026). В самой структуре нет вообще ничего интересного:

    Но он набрал 48% на FrontierMath Tier 4 — новый рекорд.

    Правда, тут же оговорюсь: недавно Epoch сообщила, что…

    В общем, даже лучшие бенчмарки оказываются не без греха.

    Или вот ещё пример: апрельская заметка METR про NanoGPT. NanoGPT — это один из моих любимых примеров о том, как движется алгоритмический прогресс: за два года обучение маленькой GPT удалось ускорить с 45 минут до примерно полутора, в 30 раз (на одном и том же железе, естественно).

    Так вот, Маниш Шетти из METR разложил этот выигрыш на компоненты: импортированные идеи (взятые из чужих работ) дали 6,7×, адаптированные — 3,0×, а изобретённые с нуля — лишь 1,6×. А вклад собственно AI-агентов в рекорды (уже было четыре авто-улучшения) оказался неглубоким и сводился обычно к импорту/адаптации. Но, кстати, в общей картине много маленьких идей ничем не хуже одной большой:

    Многие результаты выглядят так, как будто успехи пока ограниченные, люди-учёные работу в ближайшем будущем не потеряют, и вообще прогресс выглядит “обычным”, а не “революционно-сингулярным”.

    Но… вы сами-то пробовали? Пробовали как следует погонять Claude Code с Opus 4.8 Max (или только что вышедшим Fable) и GPT-5.5 Pro на своих исследовательских задачах?

    Да-да, я вам только что с цифрами в руках рассказывал, что субъективным ощущениям верить нельзя. Но всё-таки я пробовал, вложил персты и уверовал. Да, конечно, модели и основанные на них агенты пока ещё могут ошибаться, и ошибаются довольно часто. Да, конечно, пока нельзя попросить доказать гипотезу Римана, подождать неделю и получить доказательство.

    Но степень автономности и уровень интеллекта систем, доступных даже обычным пользователям прямо сейчас, поразительны. И ошибки, которые они делают, они же (или другие модели) часто могут заметить и исправить. А разницу между “надо проверять” и “надо придумывать” не нужно объяснять никому, кто слышал про P и NP…

    Инфраструктура и сроки

    Есть и часть AI 2027, которая сбывается без всяких скидок и местами даже с опережением: инфраструктура.

    По данным Epoch AI, вычислительные мощности на обучение фронтирных моделей растут примерно в 5 раз в год начиная с 2020-го, а долларовая стоимость одного фронтирного запуска удваивается примерно раз в 7 месяцев:

    В Стэнфорде подсчитали, что частные инвестиции в AI достигли в 2025 году сотен миллиардов долларов, хотя по странам пока всё очень неравномерно:

    Тот же Epoch AI публикует график стоимости и мощности ведущих датацентров; прямо сейчас рекорд держит Anthropic-Amazon New Carlisle мощностью 1.1 ГВт, который стоил $35 млрд, но Fairwater Wisconsin будет в три раза мощнее электрически и в восемь раз по компьюту:

    Отдельная история — Stargate. Проект анонсировали в январе 2025 года: $500 млрд и около 10 ГВт мощностей за четыре года, к 2029-му. 10 ГВт — это суммарная мощность всей программы на семь площадок к концу десятилетия, так что на графике выше их нет. Но на середину 2026-го у Stargate уже законтрактовано около 7 ГВт планируемой мощности, и OpenAI обещает выйти на полные 10 ГВт с опережением графика.

    Параллельно во втором полугодии 2026-го нас ждут GPU нового поколения NVIDIA Vera Rubin и старт серийного выпуска собственного ускорителя OpenAI — XPU от Broadcom на 3-нм TSMC.

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

    Но здесь, конечно, есть и обратная сторона. Для экспериментов в ML нужны не только идеи, но и те самые вычисления. Можно сколько угодно ускорять и улучшать генерацию идей, но если для достижения RSI каждую хорошую идею нужно будет проверять обучением LLM реального фронтирного размера, узким местом станет не интеллект, а компьют, сколько ты старгейтов ни запускай. Об этом см., например, работу “Will Compute Bottlenecks Prevent an Intelligence Explosion?“.

    Запустят ли LLM-агенты сингулярность?

    Вот мы и подошли к главному вопросу. Запустят ли LLM-агенты то самое рекурсивное улучшение, которое отправит нас в сингулярность? Формально для этого нужно, чтобы показатель экспоненты на графиках увеличивался со временем, а время между удвоениями уменьшалось.

    Мне очень нравится вот эта картинка на этот счёт, ответ на неосторожное высказывание Гэри Маркуса:

    Кстати, как видите, картинка уже довольно старая, а экспоненты с тех пор не замедляются, а скорее наоборот.

    Но экспоненты — это не так важно, здесь же нет никаких законов природы. Важно, что AI должен стать достаточно хорош в AI-исследованиях, чтобы исследовательская петля замкнулась сама на себя. Похоже ли на то, что так будет?

    Мне кажется, что да.

    Кажется, что первые обороты этой петли уже проворачиваются на наших глазах, и лучший документ об этом — то самое эссе Anthropic “When AI builds itself“, с которого я начал. Вот смотрите, что происходит на фронтире.

    Claude к маю 2026 года пишет более 80% нового кода, в Anthropic (год назад были считанные проценты):

    Причём Claude Code (которым разработчики, разумеется, в основном и пользуются) стабильно улучшается со временем. “Session success” ниже — это прокси-метрика, оцениваемая по тому, насколько нужно было что-то править после запроса к Claude Code:

    В Anthropic есть внутренний тест: оптимизация обучающего кода для ML-модели. Год назад Claude Opus 4 мог добиться где-то 3× ускорения по сравнению с бейзлайном. Сейчас Claude Mythos Preview даёт примерно 52× (профессионал-человек, по оценкам Anthropic, за рабочий день может сделать примерно 4×). Как пишут в посте, за год “Claude has gone from super helpful to superhuman”…

    Вот вам ещё пара цитат из Anthropic, под каждой могу подписаться и лично:

    OpenAI, кстати, тоже в какой-то момент расписала дорожную карту и движется к “AI research interns” в 2026 году и полноценным автоматическим AI-исследователям в 2028-м.

    Но есть и другая сторона: то же самое эссе Anthropic заканчивается тем, что RSI совершенно не предопределено. Могут найтись новые узкие места. Например, когда порождение кода перестало быть bottleneck’ом им стало человеческое ревью. В исследованиях это сейчас тот самый пресловутый “вкус”, research taste, и общая стратегия того, куда идти.

    Чего именно не хватает

    Другие исследователи более конкретно перечисляют, чего пока не хватает до настоящих AI-исследователей. Например, Андрей Карпатый в разговоре с Дваркешем Пателем (октябрь 2025-го) сказал, что “до AGI ещё десятилетие”, и это будет “десятилетие агентов”, а не “год агентов». По Карпатому, не хватает continual learning и мультимодальности.

    Лично мне кажется, что пока нет удовлетворительных ответов на следующие вопросы.

    Память и непрерывное обучение. Агент, который не умеет надёжно учиться на собственном опыте, не может накапливать экспертизу так, как накапливает её живой исследователь за годы. Я недавно разбирал состояние дел с памятью LLM-агентов в отдельном большом обзоре, и сам факт, что память — это всё ещё передний край исследований, а не чисто инженерная задача, тут говорит сам за себя.

    Надёжность на длинном горизонте. Та самая арифметика накопления ошибок. Совершенно не очевидно, что это лечится дальнейшим масштабированием. Хотя, конечно, может и излечиться, делать ставки против масштабирования нас история deep learning давно отучила.

    Эффективность по данным (sample efficiency). Человек становится настоящим исследователем на исчезающе малой доле тех данных, которые видела модель; а RL на настоящем исследовательском процессе (а не решении школьных задачек) вряд ли получится запустить.

    Вкус и постановка задачи. Умение понять, какой вопрос важен. Ни один бенчмарк этого не меряет, ведь в бенчмарке задача уже выбрана за тебя. Изобретение новых идей пока ещё почти целиком на людях… Хотя, наверное, надо уточнить: изобретать идеи современные модели уже умеют неплохо, но люди пока ещё должны выбирать из изобретённого.

    Модель мира и заземление. У агентов до сих пор нет надёжной, обновляемой модели тех систем, в которых они действуют. Это большая отдельная тема, о которой я надеюсь поговорить как-нибудь в будущем.

    Конечно, ни один из этих пунктов не является непреодолимой стеной; но и ни один из них пока никаким очевидным образом не решился. А сильная форма AI 2027 тихо предполагает, что все они падут по графику и практически одновременно.

    Заключение

    Я, конечно, не буду называть никаких дат. Я даже не буду пытаться определить, что такое “настоящее RSI” или “настоящий автономный AI-исследователь”. Но кое-что сказать могу.

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

    Скорее всего агенты заметно ускоряют фронтирные AI-исследования внутри лабораторий прямо сейчас и будут ускорять ещё сильнее — пока как управляемые команды агентов под руководством людей-экспертов, а не как автономные учёные.

    Скорее всего, настоящий “superhuman coder” в смысле AI 2027 действительно появится к 2027–2028 году. Возможно, он будет более узким и более специализированным, чем предполагали авторы этого сценария, но думаю, что он будет.

    Но, скорее всего, всё-таки не будет перехода к RSI и вслед за ним ASI к концу 2027 года через замкнувшийся цикл autoresearch. Это не то чтобы невозможно, но кажется, что мы всё-таки находимся в более медленном таймлайне.

    Но не устаю напоминать: “не так скоро” не значит “никогда” и даже не значит “не скоро”! У людей короткая память: стоит AI-системе доказать новую теорему, как они тут же скажут, что “теорема была несложная” или “уникально подходящая для AI-доказательства”…

    Так что каждый раз, когда я рассказываю о недавних успехах AI, стараюсь подчеркнуть, насколько это гигантский прогресс за кратчайшее, ничтожное время. Вот моя стандартная картинка о том, что LLM могли в математике четыре года назад и что могут сейчас:

    В общем, AI 2027 был отличным прогнозом; учитывая, насколько подробно он предсказывал будущее, процент совпадения с реальностью просто запредельный. Я писал выше, что его качественные прогнозы — агентизация, переход к моделям-работникам, инвестиционный взрыв, отставание регулирования, превращение проблемы безопасности из философии в эмпирику — все по сути сбываются. Только количественные вехи немного отстают.

    Рекурсивная петля AI-исследований начинает раскручиваться: Claude пишет 80% кода в Anthropic, AlphaEvolve ускоряет собственное обучение, новая версия GPT опровергает гипотезу Эрдёша. Но всё-таки до настоящей сингулярности ещё есть некоторый зазор, в который должны поместиться ответы на несколько важных вопросов.

    Пока ставки против прогресса AI никогда не работают, разве что против конкретных оптимистичных прогнозов. Поживём — увидим; смотреть будем на графики METR и autoresearch-бенчмарки, но главное, на что я буду смотреть — на свой собственный опыт и на то, как быстро будет двигаться AI-assisted наука. Смотреть и вам рассказывать.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • Мотивация в эпоху LLM: что говорит наука об образовании

    Мотивация в эпоху LLM: что говорит наука об образовании

    В недавнем докладе про образование в эпоху LLM (см. страницу “Выступления”, а вот прямая ссылка на YouTube) я пришёл к тезису, который мне самому кажется там главным. Доступ к знаниям давно перестал быть дефицитом, объяснение перестало быть дефицитом с развитием LLM — а вот мотивация учиться дефицитом быть не перестала, и именно к ней смещается центр тяжести всей системы образования.

    Но, честно говоря, я тут же поймал себя на том, что понимаю “мотивацию” довольно примитивно. Мотивация в образовании — это огромное, давно и плотно вспаханное поле, где “хотеть учиться” распадается на несколько разных, по-разному устроенных и независимо измеримых конструктов. Поле настолько богатое, что в нём конкурируют уже даже несколько разных попыток унификации понятий (да-да, те самые 15 конкурирующих стандартов).

    Так что я провёл половину субботы за увлекательным чтением всяческих работ по теории образования, и мне есть чем поделиться!

    В этом посте я возьму за основу обзор Urhahne & Wijnia (2023), где шесть главных теорий раскладываются по единой модели действия “Ситуация → Я → Цель → Действие → Исход → Последствия”:

    Но есть и альтернативные попытки синтеза, например Hattie, Hodis & Kang (2020) или диалог ведущих исследователей у Koenka (2020), а в 2024-м вышел целый спецвыпуск Educational Psychology Review про интеграцию теорий мотивации. Что характерно, приглашённый оценить выпуск Райнхард Пекрун там же и предупредил, что само по себе слияние конструктов теоретического застоя не лечит, и надо привлекать смежные дисциплины вроде когнитивных наук.

    Почему именно мотивация — узкое место, и почему это не абстрактное трудноопределяемое понятие, а объект исследований? В науке об образовании есть консенсус о том, что мотивация измеримо деградирует по ходу обучения. Мета-анализы (см., например, Symonds et al., 2026 или Scherrer & Preckel, 2019 на 107 исследованиях) показывают, что с возрастом мотивация в среднем падает, а главное, сильнее всего падают именно внутренняя мотивация, mastery-цели и академическая Я-концепция, тогда как самоэффективность и самооценка держатся куда стабильнее.

    Ведущее объяснение здесь даёт так называемая теория stage–environment fit (в этом посте я не буду особо пытаться переводить термины, а то только всех запутаю): школа со временем всё хуже удовлетворяет потребности подростка в автономии, компетентности и связанности. А это разрушает тот самый внутренний драйв, который для мотивации дороже всего.

    Но есть и хорошая новость: мотивация — не фиксированная данность. Мета-анализы интервенций (например, Lazowski & Hulleman, 2016) показывают, что адресные мотивационные вмешательства могут оказывать существенное влияние на учебные исходы. Здесь, кстати, и AI уже вовсю появляется, и как раз потому, что современные LLM уже могут делать вещи, которые доказуемо работают (ценностные интервенции, поддержка автономии, точно дозированная трудность задач), причём персонально и в больших масштабах.

    Общий посыл этого текста таков. Про вред AI в обучении уже много писали: модели могут провоцировать cognitive offloading, то бишь лень поработать головой, снижают усилие, на котором держится обучение. Это всё реально, и я ниже честно это цитирую. Но я убеждён, что это не имманентное свойство языковых моделей, а артефакт того, как ИИ пока используют в образовании.

    Поэтому в каждом разделе я разберу и то, как текущие практики мешают, и то, как ровно та же теория подсказывает, как AI может помогать. По структуре я буду следовать обзору Urhahne & Wijnia (2023), и в описаниях теорий мотивации тоже. Но в этом обзоре про LLM, естественно, ничего не говорится, так что обзор AI-исследований и выводы, связанные с AI, будут мои собственные.

    Важный дисклеймер. Всё то, что идёт дальше, требует важной оговорки: всё это — социальные науки про самый сложный объект во Вселенной (человеческий мозг), измеряемый обычно на небольших и не особо репрезентативных выборках студентов-добровольцев. Эффекты, которые я вслед за авторами работ называю “подтверждёнными”, — это, как правило, скромные корреляции, добытые анкетами. И наука об образовании, и психология в целом переживают кризис воспроизводимости, и наверняка не все эффекты его переживут. Так что всё, что ниже называется результатами, стоит воспринимать не как “учёные доказали”, а как “вот лучшее, на что я могу сослаться”.

    С этими оговорками — вперёд! Вот ещё раз самая главная схема, на которую потом будут добавляться новые концепции:

    Я тут добавил стрелочку справа налево, чтобы подчеркнуть, что образовательный процесс — это цикл, но дальше на схемах её не будет. Итак, где же здесь мотивация и как разные теории её сюда добавляют?

    1. Теория ожидания и ценности (Expectancy–Value Theory, EVT)

    Это самый утилитаристский, “бухгалтерский” каркас, и его проще всего понять как уравнение:

    мотивацияожидание успеха × ценность задачи − издержки.

    Важно, что ожидание и ценность именно перемножаются, а не складываются: если что-то одно обнуляется — или “не справлюсь”, или “мне это незачем” — мотивация обнуляется целиком.

    Современная situated EVT (Eccles & Wigfield, 2020) дробит ценность на три вида:

    • attainment value (важно для того, кто я есть),
    • intrinsic value (просто интересно делать) и
    • utility value (пригодится для целей).

    А отдельным вычитаемым ставит три типа издержек:

    • opportunity costs (на что не хватит времени),
    • effort costs (сколько пахать) и
    • emotional costs (тревога, страх провала).

    Студент может ценить матанализ и по полезности, и по удовольствию, но если усилие ощущается неподъёмным, мотивация всё равно схлопнется. Эмпирически самый важный предиктор здесь — ожидание успеха: оно сильно коррелирует с достижениями (Pinquart & Ebeling, 2020).

    Ключевые ссылки: Eccles & Wigfield, 2020; Wigfield & Eccles, 2000; мета-анализ ожиданий — Pinquart & Ebeling, 2020; об интервенциях ценности — Hulleman & Harackiewicz, 2009 (Science) и Rosenzweig, Wigfield & Eccles, 2022.

    LLM: где текущие практики вредят. С точки зрения EVT-арифметики главная опасность в том, что AI-модели сводят почти к нулю effort cost — и при бездумном использовании обрушивают вместе с ним то самое продуктивное усилие, в котором и происходит обучение.

    В эксперименте Urban et al. (2024) работа с ChatGPT воспринималась как более лёгкая и требующая меньше умственного усилия, и в результате сбивалась калибровка самооценки: суждения студентов о собственном понимании переставали коррелировать с реальным результатом. Снизив издержки до нуля, мы обнуляем ценность: задача, которая ничего не заставляет делать, ничему и не учит.

    Как LLM могут помогать. EVT подсказывает три точки приложения, где AI-системы работают на мотивацию, а не против неё.

    • Поднимать ожидание успеха через персонализированную траекторию обучения. Ожидание “я справлюсь” — это субъективная вероятность успеха, которая у нас с вами калибруется по реальному опыту. AI-тьютор, который терпеливо ведёт ученика шаг за шагом, делает трудную задачу выполнимой, и ожидание растёт обоснованно. В гарвардском RCT Kestin et al. (2025) студенты с AI-тьютором не только усвоили вдвое больше за меньшее время, но и были заметно мотивированнее и вовлечённее.
    • Поднимать utility value персонализацией. Интервенции полезности — одно из самых надёжных мотивационных вмешательств вообще: даже короткое упражнение, помогающее увидеть, зачем лично мне эта тема, повышает интерес и успеваемость (Hulleman & Harackiewicz, 2009, Science). Раньше такие интервенции были ручными и не масштабировались; а LLM вполне могут объяснять релевантность персонально под конкретного человека.
    • Срезать непродуктивные издержки, сохраняя продуктивные. Здесь нужна более тонкая настройка: мы хотим срезать emotional cost (фрустрация в тупике в два часа ночи, страх задать “глупый” вопрос), но при этом оставить effort cost (усилие разобраться). Бесконечно терпеливый помощник, не являющийся человеком, может снять тревогу, оставив размышления.

    Ну и, кстати, в том же исследовании Urban et al. (2024) основной вывод-то был позитивный: использование LLM подняло в конечном счёте качество и эффективность решений; вреден не “AI вообще”, а то, что ощущение лёгкости подменяет усилие.

    2. Социально-когнитивная теория (Social Cognitive Theory)

    Суть. В центр мотивации здесь становится self-efficacy (самоэффективность?), вера “я способен сделать вот эту задачу”. Это не глобальная самооценка и не “верю в себя вообще”, а мнение о конкретной задаче, направленное в будущее.

    Автор этой теории Альберт Бандура (1977) выделял четыре источника self-efficacy, и главный из них — mastery experiences, опыт успешного преодоления трудного; дальше идут наблюдение за моделями (не LLM, в широком смысле 🙂 ), словесное убеждение и управление эмоциональным состоянием.

    В идеале должен получаться цикл: веришь, что получится → прикладываешь усилие и не бросаешь → получается → веришь сильнее.

    Из этого следует, что самоэффективность по сути является следствием прошлых успехов (Sitzmann & Yeo, 2013), то есть её строить нужно этаким “инжинирингом” реальных успехов, а не направленным в будущее подбадриванием. Это один из самых надёжных предикторов (Richardson et al., 2012; Honicke & Broadbent, 2016); и, кстати, один из немногих мотивационных конструктов, который по ходу средней школы почти не проседает (Symonds et al., 2026).

    Ключевые ссылки: Bandura, 1977; Sitzmann & Yeo, 2013; мета-анализы связи с достижениями — Richardson et al., 2012 и Honicke & Broadbent, 2016; по ИИ — «The Impact of AI on Learners’ Self-Efficacy», Behavioral Sciences, 2026.

    LLM: где текущие практики вредят. Если ИИ делает задачу за студента, тот получает бессмысленный успех: результат есть, mastery experience — нет. А раз самоэффективность калибруется по реальным успехам, такие “успехи” раздувают уверенность без роста компетентности. Это и есть механизм, приводящий к сбитой калибровке у Urban et al. (2024): высокая уверенность при низком понимании — худшее из возможных сочетаний, потому что оно убивает мотивацию доучиваться.

    Как LLM могут помогать. Здесь это тоже очевидно: социально-когнитивная теория делает AI почти идеальным генератором настоящих mastery-переживаний, заработанных трудом успехов.

    • Свежий мета-анализ 23 исследований (Ren et al., Behavioral Sciences, 2026) находит значимый положительный эффект AI-моделей на самоэффективность, причём самый сильный — когда AI выступает как учебный инструмент в руках студента; эффект ослабевает, когда AI начинает подменять собой работу.
    • Современные модели вполне способны держать ученика в зоне, где он осиливает трудное сам, но с опорой, и постепенно убирать опору (это называется fading). В исследовании про интеграцию LLM в командные проекты по программной инженерии (Kharrufa et al., 2024) ещё в 2024 году получалось, что успешный опыт с GenAI повышал уверенность браться за более сложные задачи — это и есть mastery experience.
    • AI может помочь и с остальными тремя источниками самоэффективности: даёт «модели» (разобранные примеры), словесное ободрение в духе пресловутого growth mindset (да, это ругательное слово, но что поделаешь), снимает большую часть тревоги, потому что некого стыдиться.

    Главное условие получается в том, что успех должен быть честным, заработанным. LLM должны выступать как тьюторы, а не как оракулы-решатели — и они на это вполне способны.

    3. Теория самодетерминации (Self-Determination Theory, SDT)

    У человека в образовательном процессе выделяют три базовые психологические потребности:

    • автономия (действие исходит от меня),
    • компетентность (я расту и справляюсь) и
    • связанность (relatedness — я в контакте со значимыми людьми).

    Для SDT важнее не сколько мотивации, а какого она качества. Здесь есть целый континуум от чисто внешней мотивации (ради награды/наказания) через introjected и identified (не буду рисковать переводить) к integrated и собственно внутренней мотивации (Ryan & Deci, 2020).

    Здесь картинку стоит нарисовать подробнее:

    Ключевой нюанс из когнитивных наук здесь в том, что контролирующие награды подрывают внутреннюю мотивацию, а информативная обратная связь — поддерживает. Такие типы мотивации положительно связаны с достижениями, а внешне контролируемые — никак или даже отрицательно (Howard et al., 2021; Cerasoli et al., 2014). Более того, удовлетворённость потребностей предсказывает внутреннюю мотивацию, и сильнее всего влияет именно компетентность (Bureau et al., 2022). А поскольку упомянутый возрастной спад внутренней мотивации объясняют именно неудовлетворением этих потребностей, SDT здесь работает и диагнозом, и рецептом.

    Ключевые ссылки: Ryan & Deci, 2020; мета-анализы — Howard et al., 2021, Bureau et al., 2022, Cerasoli et al., 2014; про AI есть, например, Annamalai et al. (Artificial Intelligence, 2025).

    LLM: где текущие практики вредят. Во-первых, геймификация на внешних наградах рискует вытеснить внутреннюю мотивацию. Например, обзор с красивым названием “Bidirectional Human-AI Alignment in Education “(Shen, 2025) прямо отмечает, что алгоритмически оптимизированные среды повышают вовлечённость, но могут создавать опору на внешние стимулы и подрывать внутреннюю мотивацию.

    Впрочем, с другой стороны мета-анализ геймификации в Li et al. (2024) нашёл, что геймификация в среднем повышает внутреннюю мотивацию, автономию и связанность и почти не трогает компетентность; видимо, дело не в наградах как таковых, а в том, какой у них дизайн.

    А недавнее исследование, прямо следующее SDT в анализе AI для образования (Fang et al., 2026) показывает, что удовлетворение базовых потребностей через GenAI ведёт к чрезмерной опоре на модели. А вот компетентность как раз сдерживает такую over-reliance и толкает к глубокому осмыслению материала.

    Как LLM могут помогать. SDT — это теория, по которой AI сильнее всего может помочь.

    • Автономия. В уже упоминавшейся статье Annamalai et al. (2025) автономия оказалась самым важным фактором для продолжения использования ИИ, а модель объяснила 70.8% дисперсии мотивации. AI в образовании по своей природе повышает автономность: ученик сам выбирает темп, путь, формат, момент; и это хорошо!
    • Компетентность. Калиброванный вызов плюс информативная (а не контролирующая) обратная связь повышают внутреннюю мотивацию через чувство компетентности, а это, как мы видели выше, самое главное.
    • Связанность — слабое место, но обходимое. Парасоциальные “отношения с AI-ассистентом” не равны человеческой связи, это мы не одобряем. Зато AI может высвободить живого преподавателя для такой работы, освободить его от рутины. Поддержка со стороны учителя действительно замедляет возрастной спад внутренней мотивации (Symonds et al., 2026).

    4. Теория интереса (Interest Theory)

    Интерес — это отношение между человеком и объектом, и теория интереса различает два его вида:

    • ситуативный (вспыхивает от новизны, неожиданности, релевантности) и
    • индивидуальный (устойчивая личностная диспозиция возвращаться к теме).

    Между ними есть четырёхфазная модель развития (Hidi & Renninger, 2006): запущенный ситуативный → поддержанный ситуативный → зарождающийся индивидуальный → развитый индивидуальный.

    Интерес — не синоним удовольствия: в нём сочетаются аффект, ценность и знание. Эмпирически индивидуальный интерес является стабильным предиктором достижений, хотя связь здесь, конечно, взаимная (Schiefele, Krapp & Winteler, 1992; Lee & Stankov, 2018).

    Кстати, та же теория предостерегает против эффекта seductive details: яркие, но нерелевантные детали ухудшают и запоминание, и перенос. Может, надо меньше котиков?.. Да нет, что за ересь:

    Ключевые ссылки: Hidi & Renninger, 2006; Hidi, 2006; мета-анализ интереса и достижений — Lee & Stankov, 2018; о чат-ботах и интересе, например, см. Fryer et al. (2017) в контексте обучения языкам.

    LLM: где текущие практики вредят. LLM умеют развлекать — и тут легко перепутать развлечение с обучением. Геймификация ради вовлечённости может насыпать тех самых “соблазнительных деталей”, а вспышка ситуативного интереса, не доведённая до индивидуального, гаснет, оставляя ощущение, что “было прикольно”, но без следа в знаниях.

    Как LLM могут помогать. По теории интереса AI силён ровно там, где люди-преподаватели тоже были бы сильны, да не масштабируются.

    • Запуск ситуативного интереса. ИИ персонализирует пример под конкретного человека, привязывает новую тему к тому, что ученику уже интересно, отвечает на тот самый вопрос “почему”, который ученик реально задал (эпистемический интерес). Это масштабируемый триггер первой фазы модели Hidi & Renninger.
    • Удержание до индивидуального интереса — самая трудная фаза — становится посильной. Чтобы интерес не угас, его нужно поддерживать; раньше это требовало фактически работы 1:1 с преподавателем, а теперь не обязательно. Fryer et al. (2017) ещё в 2017 году отмечали, что чатбот как партнёр по изучению языка на старте вызывал ситуативный интерес не хуже человека, но тогдашние чатботы не могли его удержать и превратить в индивидуальный. Современные LLM, думаю, совсем другое дело.

    Теория интереса сообщает нам, в общем-то, те же выводы о персонализации: нужно привязывать примеры к идентичности и целям ученика, избегать seductive details, кормить любопытство, а не отвлекать его.

    5. Теория целей достижения (Achievement Goal Theory)

    Здесь вопрос ставят не как “сколько мотивации”, а как “зачем ты это делаешь”: чтобы освоить и стать лучше (mastery) или чтобы показать себя / не выглядеть слабым / добиться внешнего успеха (performance).

    Это становится осью approach/avoidance в так называемой 3×2 модели (Elliot, Murayama & Pekrun, 2011):

    Эффекты тут обычно небольшие, но стабильные. Mastery-подход коррелирует с достижениями, а вот с performance целями не всё так просто: Hulleman et al. (2010) показывают, что нормативные performance-цели (“быть лучше других”) связаны с успехом положительно, а демонстрационные (“выглядеть способным”) — отрицательно, хотя их часто мерили одной шкалой. Ну а квадрат “performance/avoidance” стабильно работает в минус (Van Yperen et al., 2014).

    Ключевые ссылки: Elliot, 1999; Elliot, Murayama & Pekrun, 2011; мета-анализы — Hulleman et al., 2010 и Van Yperen et al., 2014.

    LLM: где текущие практики вредят. LLM делают цели “казаться, а не быть” тривиально подделываемыми: можно предъявить отличный результат, ничего не освоив. Если оценивание заточено под продукт, AI прямо вознаграждает худший вид performance-поведения — прямое списывание.

    Именно поэтому, кстати, паника вокруг списывания с LLM — на самом деле сломанный процесс оценивания, а не какое-то негативное свойство AI-моделей. Это ничем не отличается от того, чтобы учить детей в школе умножать в столбик, выдавая на контрольную калькулятор и проверяя только ответ — так ведь никто не делает, правильно?.. И калькулятор тут ни в чём не виноват.

    Как LLM могут помогать. После предыдущего пункта это покажется парадоксальным, но на самом деле AI — это почти идеальная среда именно для mastery и self-based целей.

    • Диалог с LLM приватен, не осуждает, допускает бесконечные попытки и фокусируется на улучшении, а не на сравнении с другими людьми (одногруппниками). Это снимает социально-оценочную угрозу, которая очень часто и порождает дезадаптивные цели из performance-avoidance квадрата.
    • Масштабируемая персонализация позволяет соревноваться с собой вчерашним (self-based approach goals) и видеть свой прогресс, а не только ранг среди других.
    • Ну и, конечно, нужно переделывать систему оценивания, в частности, оценивать процесс, а не продукт, что возвращает стимулы к mastery.

    Про то, как всё переделывать с этой стороны, уже давно есть целая книга, Brave New Words Салмана Хана. Честно скажу, книгу я не читал, но вот Билл Гейтс очень хвалил, например.

    6. Теория атрибуции (Attribution Theory)

    Это теория о “разборе полётов”. По этой теории, человек интуитивно ведёт себя как наивный учёный и атрибутирует причины своих успехов и провалов по трём осям (Weiner, 1979; Graham, 2020):

    • локус (внутри/снаружи),
    • стабильность (постоянно/изменчиво) и
    • контролируемость (могу ли я повлиять).

    Мотивацию подпитывает “правильная” атрибуция: успех нужно атрибутировать внутренним контролируемым причинам (“я постарался”, “я нашёл стратегию”), а провал — изменяемым и контролируемым (“это была плохая стратегия, исправлю”), а не фиксированной “неспособности”. Эмпирически атрибуции внутренним и контролируемым причинам связаны с лучшими достижениями (Fong et al., 2017, Brun et al., 2021).

    Ключевые ссылки: Weiner, 1979; Graham, 2020; мета-анализ — Brun et al., 2021; Fong et al., 2017.

    LLM: где текущие практики вредят. Если задачу решил ИИ, успех естественно приписывается инструменту, а не себе — внешняя неконтролируемая атрибуция, которая мотивацию подтачивает. Зеркально: провал тоже удобно списать на ИИ («модель ошиблась»), что снимает с ученика и ответственность, и стимул разобраться. Это снова больше теоретическая экстраполяция: прямых исследований атрибуции при работе с LLM пока мало.

    Как LLM могут помогать. Атрибутивная теория даёт ИИ две конкретные роли.

    • Сохранять агентность (а значит, и кредит) за учеником. Сократический тьютор, дающий только следующий шаг, оставляет авторство решения человеку: «ты решил, я лишь подтолкнул» — внутренняя контролируемая атрибуция сохраняется. Именно это отличает педагогически выровненный ИИ от наивного (обзор AI in Education Beyond Learning Outcomes, arXiv:2602.04598).
    • Переобучать атрибуции в масштабе. Обратная связь ИИ может явно переформулировать причину провала с «ты неспособен» на «попробуй другую стратегию» (контролируемое, изменяемое) — это масштабируемая версия attributional retraining, плюс мгновенная диагностика, которая помогает увидеть починимую ошибку, а не приговор.

    7. Саморегулируемое обучение (Self-Regulated Learning, SRL)

    Этого пункта в обзоре Urhahne & Wijnia (2023) не было, но я решил добавить, потому что именно сюда прилетают самые острые критические стрелы о том, как “AI разрушает образование”. SRL (Zimmerman, 2002) — это умение ставить цель, мониторить себя и корректировать свою собственную стратегию; картинка отсюда:

    Здесь у меня нет для вас отдельной диаграммы в том же стиле, но давайте я ещё раз повторю свою изначальную картинку, на которую я добавил петлю, охватывающую весь цикл; в петле здесь и суть:

    Это давно уже классическая теория, не столько о том, что такое мотивация, сколько о том, как её поддерживать через саморегуляцию, и о том, как учить людей такой саморегуляции. И именно этот механизм, кажется, разрушается при бездумном применении AI-систем в первую очередь.

    LLM: где текущие практики вредят. Центральный результат здесь такой: в контролируемых исследованиях AI надёжно поднимает краткосрочную производительность, но не поднимает внутреннюю мотивацию и не даёт переноса знаний. В RCT Fan et al. (2025) группа с ChatGPT в результате получила более высокие оценки за эссе, но при этом ИИ порождал зависимость и “метакогнитивную лень” — учащиеся перекладывали на модель мониторинг и оценку, и это не дало ни роста внутренней мотивации, ни переноса.

    Здесь же и нашумевшая работа Kosmyna et al. (2025): у группы, писавшей эссе с LLM, была самая слабая мозговая связность по данным энцефалографа и худшее запоминание собственного текста (“когнитивный долг”). Здесь, правда, к общему дисклеймеру стоит добавить, что это препринт с маленькой выборкой, и к нему уже вышел формальный Comment с критикой методики, так что это не то чтобы “учёные доказали”. Но концептуально ясно, что всё это про cognitive offloading: перекладывание умственной работы на внешний ресурс снижает собственный мониторинг.

    Как LLM могут помогать. И тут же хочется отметить, что это опять плохое использование AI, а не приговор. Как сделать лучше?

    • Делать мониторинг явным требованием. AI провоцирует лениться, но его же можно использовать, наоборот, чтобы тренировать мониторинг: использовать системы с обязательной петлёй “объясни своё понимание → попробуй сам → отрефлексируй”. Это нереально сделать силами живых учителей, а LLM вполне справятся. Здесь есть интересная концепция “reflection–satisfaction tradeoff” (Choi et al., 2025): принудительная рефлексия снижает сиюминутное удовольствие, но повышает вовлечённость и обучение — то есть это и есть та самая desirable difficulty.
    • AI может персонально целиться в “зону оптимальной трудности”. LLM могут мгновенно и персонально подстраивать сложность процесса обучения. Это можно направить на удержание задачи чуть выше самостоятельного потолка ученика, о чём писал ещё Выготский, да и desirable difficulties Бьорка тоже о том же. Таким образом можно превратить главную опасность (убрать усилие) в главное преимущество (точно дозировать усилие).

    Здесь я хочу выделить ещё одну недавнюю работу: SafeTutors (Hazra et al., 2026). Это буквально бенчмарк для AI-тьюторов, в котором прямо выделяются риски, которых надо избегать, в том числе и когнитивные, и мотивационные, и ещё много разных.

    Так что люди работают и над этим, и это тоже хорошо.

    Заключение

    Это был длинный пост! Но на самом деле по мере его написания у меня всё больше складывалось впечатление, что я переписываю примерно одно и то же всё новыми и новыми словами. Если сложить все семь разделов, проступает очень чёткая закономерность.

    Вред возникает там, где AI забирает у ученика продуктивную работу — решает за него, снижает трудность, берёт на себя мониторинг.

    Польза возникает там, где AI помогает ученику делать более трудную работу самому — поднимает ожидание успеха, даёт заработанные mastery-переживания, поддерживает автономию и компетентность, запускает и удерживает интерес, создаёт безопасную среду, в общем, тренирует когнитивные способности вместо того, чтобы их замещать.

    Это различие, разумеется, никак не связано с тем, какая там LLM будет, фронтирные модели уже давно достаточно умны для этого. Это про дизайн и педагогику, и наука о мотивации действительно даёт довольно конкретный образ того, “как надо”. И его уже начинают операционализировать.

    Впрочем, не стоит забывать о дисклеймерах. Всё это попытки измерить очень сложные, скорее всего неформализуемые понятия о человеческом мозге. Учёные в этой науке сами ещё спорят, помогают ли вообще объединяющие рамки.

    И ещё один важный пункт: есть рычаги, которые LLM лучше не отдавать вовсе. Связанность (по SDT) — это связь с живым преподавателем, которая сама по себе выступает мотиватором. А поиск смысла тесно связан с агентностью: как формулирует Жан-Даниэль ЛаРок (2026), в мире AI информация или навыки больше не отличают людей — отличает агентность (ох, не устарело бы это раньше времени…). Разумеется, все учебные задачи LLM могут решить за вас, но не в этом смысл, и хорошие студенты “will willingly forgo the intellectual shortcut of AI, much as people at the gym forgo the use of levers or hydraulics to lift weights”.

    Так что AI-системы могут сделать для нас самый современный спортзал, но мотивацию им пользоваться нам всё-таки нужно будет приносить с собой. Вырастить (а скорее не убить) такую мотивацию — это и есть, на мой взгляд, центральная задача системы образования.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • GPT и единичные расстояния: опровержение гипотезы Эрдёша

    GPT и единичные расстояния: опровержение гипотезы Эрдёша

    Введение

    «Some of my favourite problems in number theory, combinatorics, and geometry» — это название статьи Эрдёша 1995 года, где он расставляет любимым задачам ценники. Гипотеза о единичных расстояниях стоит у него там $500 — одна из самых высоких ставок в его жизни. Эрдёш её сформулировал ещё в 1946 году, не раз к ней возвращался и в одной из заметок писал, что верхняя оценка n^{1+o(1)} будет “very difficult to prove”, если она вообще верна. Несмотря на оговорки, к 2025 году в гипотезу Эрдёша верили почти все профессионалы.

    20 мая 2026 года OpenAI объявили, что внутренняя модель компании в полностью автоматическом режиме опровергла гипотезу Эрдёша. Объявление вышло вместе с PDF самой работы и отдельным сборником комментариев от ведущих математиков (мы их разберём ниже).

    Контекст у этой новости непростой. В октябре 2025 года тогдашний вице-президент OpenAI Кевин Уэйл написал в X, что “GPT-5 found solutions to 10 (!) previously unsolved Erdős problems and made progress on 11 others”. Но тогда это оказалось неправдой: модель не доказывала ничего нового, она просто находила в литературе уже существующие решения и подавала их как свои. Это публично разоблачил Томас Блум, который ведёт сайт erdosproblems.com, назвав историю “a dramatic misrepresentation”; вот краткий разбор на TechCrunch со всеми ссылками.

    Теперь, семь месяцев спустя, OpenAI публикует новый математический результат — и среди соавторов сборника комментариев стоит ровно тот же Блум, только теперь он подтверждает, что это настоящий и очень красивый результат.

    Давайте разберёмся, что произошло. Сначала — что такое единичные расстояния и почему задача такая сложная, потом — что именно сделал GPT и почему его доказательство выглядит вполне “человеческим”, а в конце — что обо всём этом думают сами математики.

    Что такое задача о единичных расстояниях

    Постановка задачи Эрдёша (1946) выглядит абсолютно элементарно. Рассмотрим n точек на обычной евклидовой плоскости. Между ними образуется \binom{n}{2} пар, и для каждой пары мы можем подсчитать расстояние между точками. Вопрос: сколько одинаковых расстояний может быть среди этих пар?

    Вот, например, девять точек на плоскости:

    Серыми линиями нарисованы все \binom{9}{2} = 36 пар; красными — те семь пар, расстояние между которыми одинаково. Семь — это, понятное дело, мало, можно больше. Вопрос Эрдёша: если выбирать точки специально, сколько красных рёбер можно получить?

    Формально: пусть \nu(P) — это число неупорядоченных пар точек из P \subset \mathbb{R}^2, между которыми расстояние составляет ровно 1 (здесь, конечно, не важно, единице или любому другому числу оно равно), и пусть

        \[\nu(n) = \max_{|P|=n} \nu(P).\]

    Как ведёт себя \nu(n) при больших n?

    Грубые оценки. Сверху есть тривиальная оценка

        \[\nu(n) \leq \binom{n}{2} = O(n^2),\]

    потому что больше, чем всего пар, единичных пар быть не может.

    Снизу тоже довольно просто получается оценка \nu(n) \geq \Omega(n), то есть линейного числа единичных расстояний всегда добиться можно. Самая наглядная конструкция — это треугольная решётка (или, эквивалентно, шестиугольная). Вот, например, n=35 точек и 82 \approx 3n единичных рёбер между ними:

    Каждая точка такой решётки имеет шесть соседей на единичном расстоянии (кроме граничных). Если у вас n точек, то рёбер примерно 3n — линейная функция от n. Это и есть нижняя оценка \Omega(n).

    Дальше начинается интересное.

    Эрдёш, 1946 (нижняя оценка чуть лучше линейной). Возьмём решётку точек размера \sqrt{n} \times \sqrt{n} с целочисленными координатами:

    На самой решётке никакого преимущества пока не видно — соседних рёбер в ней просто \sim 2n, тоже линейное число. Хитрость в том, чтобы взять не единичное расстояние в смысле соседних узлов, а самое популярное среди всех расстояний между узлами. По теореме Пифагора, число раз, которое в такой решётке встречается расстояние \sqrt{m}, равно числу представлений его квадрата m в виде суммы двух квадратов, m = a^2 + b^2.

    И здесь задача превращается в арифметическую (в истинном, математическом смысле слова “арифметика”). Эрдёш воспользовался тем, что каждое простое число p вида p=4k+1 можно разложить в произведение двух сопряжённых комплексных чисел:

        \[4k+1 = ( 1 + 2i\sqrt{k})( 1 - 2i\sqrt{k}) = z\cdot \bar z,\qquad z = 1 + 2i\sqrt{k}.\]

    А это значит, что если число m имеет в разложении много простых делителей p_i вида 4k+1, то каждое из них можно разложить как z_i \bar z_i, а потом представить m как произведение двух чисел, в одном из которых один комплексно сопряжённый элемент, z_i или \bar z_i, попадёт в одно, а другой, \bar z_i или z_i, в другое.

    Например, для числа 325 = 5^2 \cdot 13 мы получим

        \[325=5^2\cdot 13=(2+i)^2(2-i)^2⋅(3+2i)(3-2i).\]

    И теперь мы можем представить

        \[325=\left( (2+i)^2(3+2i) \right) \left( (2-i)^2(3-2i) \right) = (1+18i)(1-18i)=1^2 + 18^2.\]

    Или как

        \[325=\left( (2-i)(2+i)(3+2i) \right) \left( (2+i)(2-i)(3-2i) \right) = (15+10i)(15-10i) = 15^2 + 10^2.\]

    Или как

        \[325=\left( (2+i)^2(3-2i) \right) \left( (2-i)^2(3+2i) \right) = (17+6i)(17-6i)=17^2+6^2.\]

    Больше тут вариантов нет, остальные получаются умножениями на \pm 1 и \pm i, что не изменит сумму квадратов. Зато числа (1, 18), (15, 10) и (17, 6) можно рассматривать с разными знаками.

    И теперь получается, что в обычной единичной решётке на окружности радиуса \sqrt{325} оказываются 24 целые точки:

    Чем больше “хороших” простых множителей вида 4k+1 у числа m, тем больше точек на окружности радиуса \sqrt m, и тем больше пар точек, между которыми расстояние ровно \sqrt m. И если их теперь аккуратно подсчитать, мы получим

        \[\nu(n) \geq n^{1+c/\log\log n}.\]

    Это уже хоть и выглядит “почти линейным”, но асимптотически больше, чем линейная нижняя оценка из треугольной решётки.

    Гипотеза Эрдёша. \nu(n) \leq n^{1+o(1)}, а скорее даже

        \[\nu(n) \leq n^{1+C/\log\log n}\]

    для некоторой абсолютной константы C. Иначе говоря, Эрдёш считал, что его собственная нижняя оценка точна с точностью до медленно растущего множителя, и реальный ответ на задачу — это “n с поправкой типа \log\log“.

    Простейшая верхняя оценка: O(n^{3/2}). Как это часто бывает в математике, верхние и нижние оценки получаются совершенно разными способами. Так, первая верхняя оценка пришла из теории графов.

    Граф K_{m,n} — это полный двудольный граф: берём m точек одного цвета и n точек другого, и проводим все рёбра между разноцветными парами, одноцветные не соединяем. Например, K_{2,3} выглядит так: две точки p, q слева, три точки x_1, x_2, x_3 справа, и все шесть рёбер вида {p, x_i} и {q, x_i} присутствуют. Вот он:

    Говорят, что граф G K_{m,n}-свободен, если K_{m,n} нельзя найти как подграф G, то есть нельзя выбрать в G такие m+n вершин и такие рёбра между ними.

    Теперь к нашему случаю. На множестве P можно построить граф единичных расстояний: вершины — это точки P, а рёбра соединяют пары на расстоянии 1. В этом графе может и будет встречаться двудольный граф K_{2,2}, то есть ромбик между центрами и точками пересечения окружностей:

    Но этот граф не содержит подграфа K_{2,3}! Почему? Потому что подграф K_{2,3} означал бы, что есть две точки p, q и три точки x_1, x_2, x_3, каждая из которых находится на единичном расстоянии и от p, и от q. Но это означало бы, что x_1, x_2, x_3 лежат одновременно на единичной окружности вокруг p и единичной окружности вокруг q. А две окружности на плоскости пересекаются не более чем в двух точках — третьей просто негде взяться.

    А это значит, что, по классической теореме Кёвари-Шоша-Турана (Kővári–Sós–Turán) из теории экстремальных графов, число рёбер в K_{2,3}-свободном графе на n вершинах не превышает O(n^{3/2}). То есть граф единичных расстояний на n точках имеет не больше O(n^{3/2}) рёбер — это и есть первая нетривиальная верхняя оценка. Как видите, она получается почти бесплатно, точнее, вся её сложность заключена в уже известной теореме Кёвари-Шоша-Турана.

    Текущая верхняя оценка O(n^{4/3})

    Современная верхняя оценка составляет \nu(n) = O(n^{4/3}) и была доказана более 40 лет назад (Spencer, Szemerédi, Trotter, 1984). Тогда доказательство было сложное, через теорему об инцидентностях, но сейчас есть простое и красивое рассуждение Ласло Секеля (László Székely, 1997). Раз уж мы взялись разбирать задачу подробно, давайте и мимо этого красивого доказательства не пройдём, тем более что оно занимает буквально одну страничку.

    Что такое число пересечений. Если граф G с V вершинами и E рёбрами нарисовать на плоскости — вершины как точки, рёбра как какие-то кривые между ними, — то некоторые рёбра будут пересекаться не в вершинах, а где-то посередине, в каких-то “случайных” точках. Числом пересечений \mathrm{cr}(G) называется минимально возможное число таких “лишних” пересечений рёбер среди всех способов нарисовать G. Это обобщение планарности: граф планарный, если его число пересечений равно нулю.

    По формуле Эйлера для планарных графов, если E \leq 3V, то \mathrm{cr}(G) = 0. А вот для более плотных графов существует куда более сильная теорема Айтаи-Хватала-Ньюборна-Семереди-Лейтона (Ajtai, Chvátal, Newborn, Szemerédi, Leighton, причём это три независимых работы!), которая называется неравенством числа пересечений (crossing number inequality), или леммой о пересечениях (crossing lemma): для E \geq 4V

        \[\mathrm{cr}(G) \;\geq\; \frac{E^3}{64\, V^2}.\]

    Главное здесь — кубический рост по числу рёбер. Доказывается оно простым вероятностным трюком: берём случайный подграф, в который каждая вершина попадает независимо с вероятностью p, применяем к нему линейную оценку \mathrm{cr} \geq E - 3V (вытекающую из формулы Эйлера для подграфа) и оптимизируем по p.

    Конструкция Секеля. А теперь главный трюк. У нас n точек P \subset \mathbb{R}^2 с \nu(P) единичными парами. Вокруг каждой точки p нарисуем единичную окружность C_p. На ней лежит ровно d_p точек из P — столько же, сколько у p соседей в графе единичных расстояний. Если d_p \geq 2, то C_p делится этими точками на d_p дуг:

    Теперь определим мультиграф G: вершины — это наши n точек, а рёбра — все построенные дуги (соединяющие соседние точки на единичных окружностях). Поскольку каждая дуга — это кусок окружности, уже нарисованной на плоскости, у G автоматически есть готовое плоское изображение, со всеми его пересечениями.

    Что про этот граф G можно сказать?

    • Число вершин: V = n.
    • Число рёбер: E = \sum_p d_p = 2\nu(P) (с точностью до маленькой поправки от точек степени \leq 1, которая не влияет на оценку — если их слишком много, то \nu(P) \leq O(n) нам и так хватает).
    • Число пересечений: каждая пара окружностей C_p, C_q пересекается не более чем в двух точках, и каждое такое пересечение — это пересечение ровно одной дуги C_p с ровно одной дугой C_q. Значит, всего пересечений не больше 2\binom{n}{2} \leq n^2.

    Подставляем это всё в неравенство числа пересечений:

        \[\frac{E^3}{64\, n^2} \;\leq\; \mathrm{cr}(G) \;\leq\; n^2,\]

    откуда E \leq (64\, n^4)^{1/3} = 4 n^{4/3}. И поскольку E \approx 2\nu(P), получается

        \[\nu(n) \;\leq\; 2 n^{4/3} \;=\; O(n^{4/3}).\]

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

    Похожих сюжетов в дискретной математике сколько угодно, и часто такая “нечаянная встреча” оказывается единственным известным способом получить нужную оценку. И это ещё один механизм того, как даже не очень сверхчеловеческие AI-модели могут добиться успеха в математике: с их безграничным кругозором они могут заметить какую-то неожиданную связь. Отчасти именно это произошло и в данном случае.

    Итак, на 2025 год картина была такая:

        \[n^{1+\Omega(1/\log\log n)} \leq \nu(n) \leq O(n^{4/3}).\]

    Между n^{1+o(1)} и n^{4/3} — пропасть. Все думали, что правда близка к нижней оценке (то есть что гипотеза Эрдёша верна), и куча хороших математиков пыталась эту верхнюю оценку как-то прижать.

    Почему задача такая сложная и почему ей нужна теория чисел

    Как мы видели выше, верхняя оценка O(n^{4/3}) получилась чисто комбинаторно — лемма о пересечениях и дуги на окружностях, ни одного слова об арифметике. А нижняя оценка Эрдёша n^{1+c/\log\log n} — наоборот, целиком арифметическая: она вся про то, у каких m есть много представлений в виде суммы двух квадратов a^2 + b^2. И это уже намекает, что задача скорее арифметическая по своей природе, чем геометрическая. Но почему?

    Чтобы это увидеть, полезно немного отойти в сторону. Привычное расстояние по Пифагору — это ведь далеко не единственный способ мерить расстояние на плоскости. Можно взять манхэттенское расстояние |x_1 - x_2| + |y_1 - y_2|, или шахматное \max(|x_1 - x_2|, |y_1 - y_2|), или вообще объявить единичным шаром любое разумное выпуклое центрально-симметричное тело — каждая такая норма задаёт свою геометрию, и для каждой можно отдельно спросить: какое максимальное число пар точек на расстоянии 1 может быть у n точек?

    Это, конечно, другая задача, обобщение исходной, но в последние годы про неё появились красивые результаты. Так, Alon, Bucic, Sauermann (2023) доказали, что для нормы общего положения (формализация сложная, но, в общем, для “почти всех” норм, кроме тонкого множества исключений) число единичных пар у n точек не превосходит \frac d2 n \log_2 n.

    А потом Greilhuber, Schildkraut, Tidor (2024) подобрали примеры норм, на которых эта оценка достигается. То есть для случайно выбранной нормы единичных пар оказывается почти линейное число — никакого роста до n^{4/3} или n^{1+\delta} там нет.

    Это результат другого рода, чем гипотеза Эрдёша: он не про конкретную евклидову задачу, а про “типичную”. Но интересно здесь то, что он не отвечает на вопрос про евклидову норму, потому что она как раз нетипичная. У её единичного шара (обычного круга) есть бесконечная группа симметрий — любое вращение переводит его в себя — которой у случайно нарисованного выпуклого тела не будет.

    И именно эта симметрия приводит к тому, что задача становится арифметической: число целых точек на окружности радиуса \sqrt m — это арифметическая функция от m (число представлений m суммой двух квадратов), а такие функции ведут себя крайне нерегулярно и относятся скорее к теории чисел. Посмотрите, например, на классическую задачу Гаусса о точках в круге: мы до сих пор не можем ответить на вопрос, сколько целых точек попадут в круг радиуса r!

    Авторы сборника комментариев, первый из которых сам Алон, отмечают, что задачи дискретной геометрии типа единичных расстояний на самом деле о “common roots of natural sets of real polynomials”, то есть глубоко связаны с вещественной алгебраической геометрией и теорией чисел. И в chain-of-thought модели, который тоже был опубликован, есть очень показательная цитата:

    …in principle all extremal examples can be taken algebraic. But the degree and height of that algebraic realization can be enormous. Maybe that enormous degree is not just an annoyance but a source of possible counterexamples. Number fields deserve a closer look.

    Это и есть ключевая мысль всего доказательства — но об этом ниже.

    Что именно сделал GPT

    Статья, которая в итоге получилась, называется «Planar Point Sets with Many Unit Distances». Авторство в шапке указано как просто «OpenAI». В разделе «Statement on AI Use» написано прямо:

    This problem was solved in a completely automated fashion. Our internal model was given an AI-written statement of the problem, and its output was sent to an AI grading pipeline, which indicated high confidence that the solution was correct. It was only after this point that internal human researchers and mathematicians began to examine the solution carefully.

    То есть AI-модель сгенерировала постановку задачи, отдала её внутренней модели, та подумала и произвела доказательство, отдельный AI-верификатор подтвердил с высокой уверенностью, что оно корректно, и только потом подключились люди.

    Дальше пошёл обычный академический процесс: внутренняя верификация с помощью AI, переписывание в человекочитаемый вид, отправка внешним рецензентам (включая нескольких ведущих специалистов по теории чисел), подтверждение корректности с их стороны, упрощение и усиление аргумента. Финальный текст — это “human-edited exposition of the autonomously produced solution”.

    И вот главный результат.

    Теорема (OpenAI, 2026). Существует константа \delta > 0 и бесконечная последовательность натуральных чисел n, для которых \nu(n) \geq n^{1+\delta}.

    Это опровергает гипотезу Эрдёша: тот предполагал, что для всех достаточно больших n будет \nu(n) \leq n^{1+C/\log\log n}, а GPT нашёл контрпример, в котором \nu(n) полиномиально отделено от n.

    Конечно, есть некоторые оговорки. Во-первых, \delta очень маленькая. В буквальном изложении доказательства GPT в сборнике комментариев Alon et al. (2026) для одного конкретного выбора параметров получилось \delta \approx 6{,}24 \cdot 10^{-38} — это, конечно, число, которое не имеет никакого значения для физического мира.

    Но потом Will Sawin поигрался с параметрами и нашёл более приличную константу \delta \approx 0{,}014, то есть \nu(n) \geq n^{1{,}014}. Впрочем, практического смысла этот контрпример всё равно не имеет, потому что он работает только для огромных n.

    Во-вторых, между нижней оценкой n^{1+\delta} (с маленьким \delta) и верхней O(n^{4/3}) всё равно остаётся огромный разрыв. Истинное значение \nu(n) по-прежнему неизвестно. Эта работа закрывает один из вариантов ответа («Эрдёш прав, \nu(n) = n^{1+o(1)}»), но не отвечает на исходный вопрос.

    Кольца, решётки и сумма двух квадратов

    Дальше я попробую объяснить главную идею в форме, доступной без специальной подготовки — но придётся сначала ввести немного языка теории чисел. Полностью все детали можно прочесть у Alon et al. (2026), там есть полное человеческое изложение всего на 6–7 страниц.

    Что такое кольцо. В алгебре кольцом называется любое множество, в котором можно складывать, вычитать и перемножать элементы, и эти операции ведут себя «разумно» (ассоциативность, дистрибутивность и так далее). Делить не обязательно. Простейший пример — обычные целые числа \mathbb{Z}: складывать, вычитать, перемножать можно, делить не всегда (3 на 2 нацело не делится). Целые числа — это «архетип» кольца, и почти всё, что мы дальше будем делать, — это обобщения \mathbb{Z}.

    Гауссовы целые \mathbb{Z}[i]. Возьмём \mathbb{Z} и добавим к нему мнимую единицу i (то есть число, для которого i^2 = -1). Получившееся множество — это все числа вида a + bi, где a, b \in \mathbb{Z}. Это снова кольцо: (a+bi) + (c+di) = (a+c) + (b+d)i, и аналогично для умножения. Геометрически элементы \mathbb{Z}[i] — это вершины обычной целочисленной решётки на комплексной плоскости \mathbb{C}, и расстояния между ними — это обычные комплексные модули.

    Решётка из целых поля \mathbb{Q}(\sqrt 2). Можно делать то же самое с другими «приставками» к \mathbb{Z}. Например, кольцо \mathbb{Z}[\sqrt 2] = \{a + b\sqrt 2 : a, b \in \mathbb{Z}\} — это всё ещё кольцо, и его элементы — это просто вещественные числа на прямой.

    Но на него тоже можно посмотреть как на двумерный объект, если использовать так называемое вложение Минковского: элементу \alpha = a + b\sqrt 2 сопоставляется пара (\alpha, \bar\alpha) = (a + b\sqrt 2, a - b\sqrt 2). Тут \bar\alpha = a - b\sqrt 2 — это сопряжённое к \alpha число (вторая «копия» корня).

    Под действием этого вложения \mathbb{Z}[\sqrt 2] становится двумерной решёткой в \mathbb{R}^2:

    Идея смотреть на алгебраическое кольцо как на решётку в каком-то \mathbb{R}^d — фундаментальный приём в алгебраической теории чисел. Чем “больше” кольцо, чем сложнее оно устроено, тем больше может потребоваться размерность d.

    Как нижняя оценка Эрдёша устроена через кольца. Вернёмся к решётке \mathbb{Z}[i]. Если у нас есть число m = a^2 + b^2, представимое как сумма двух квадратов многими разными способами, то у нас есть много гауссовых чисел z = a + bi модуля \sqrt m — все они лежат на одной окружности радиуса \sqrt m. Выше мы видели это в примере с окружностью радиуса \sqrt{325}: 325 имеет три представления, и потому на окружности оказываются 24 точки решётки (с учётом знаков и перестановки). Между этими 24 точками возникает 24 \cdot 23 / 2 пар точек, и значительная часть таких пар имеют одинаковое расстояние между собой, потому что окружность инвариантна относительно вращений.

    Чем больше “хороших” простых делителей p \equiv 1 \pmod 4 можно набрать в m, тем больше представлений, и тем большее число пар на одинаковом расстоянии получается. Эта арифметика и давала Эрдёшу его n^{1+c/\log\log n}.

    Идея GPT. А что если вместо \mathbb{Z}[i] взять более крупное кольцо целых? Скажем, кольцо \mathcal{O}_K, где K = \mathbb{Q}(\sqrt 2)(i) = \mathbb{Q}(\sqrt 2, i) — поле, в котором живут одновременно \sqrt 2 и i. У этого поля степень 4 над \mathbb{Q}, и его кольцо целых — это решётка в четырёхмерном пространстве (через вложение Минковского).

    Можно идти дальше: брать поле степени 8, 16, 32 над \mathbb{Q}. Главный вопрос — сохранится ли “арифметическая магия”, которая даёт много точек на окружности?

    Ответ — да, и даже больше: если правильно выбрать поле K и правильно выбрать в нём простой идеал q с подходящим поведением (об этом ниже), то число “единичных” элементов в \mathcal{O}_K будет расти экспоненциально по степени поля. После проекции из пространства высокой размерности обратно в \mathbb{R}^2 — точно так же, как мы вкладывали \mathbb{Z}[\sqrt 2] в \mathbb{R}^2 через (a + b\sqrt 2, a - b\sqrt 2), — это даст настоящий полиномиальный рост числа единичных расстояний, \nu(n) \geq n^{1+\delta}.

    Попробую это рассуждение проиллюстрировать. Сначала схематическое изображение того, что происходит внутри пространства высокой размерности \mathbb{C}^f:

    Настоящую 2f-мерную картинку я вам не нарисую, поэтому двумерный квадрат играет роль f-мерного окна, а квадратная решётка — роль \Lambda, образа \mathcal{O}_K под действием вложения Минковского. Серые точки — это элементы \Lambda, попавшие в окно W = B_R \subset \mathbb{C}^f (произведение дисков радиуса R, зелёная рамка). Цветными стрелками показаны три “единичных переноса” u_1, u_2, u_3 — это специальные элементы кольца \mathcal{O}_K, у которых все f комплексных координат под вложением Минковского имеют модуль ровно 1.

    Это очень сильное требование (быть единичным сразу во всех f координатах), и в типичном кольце таких элементов почти нет; главный технический результат работы (через башни Голода-Шафаревича, о которых поговорим ниже) состоит в том, что для правильно выбранных полей K степени f таких единичных переносов оказывается экспоненциально много по f. Каждой стрелке u_i на картинке соответствует пара (p, p + u_i), у которой обе точки остались внутри окна; таких пар для каждого u_i тоже много.

    Проекция. Возьмём одну из f комплексных координат пространства \mathbb{C}^f (для определённости первую) и спроецируем всё на неё, \pi_1\colon \mathbb{C}^f \to \mathbb{C}. Решётка внутри окна, \Lambda \cap W, превращается в конечное множество точек \mathcal{P} на плоскости \mathbb{C} = \mathbb{R}^2. И вот ключевое наблюдение: каждый перенос u_i под этой проекцией становится плоским вектором длины ровно 1, потому что его первая комплексная координата по построению имеет модуль 1. Значит, каждая пара (p, p + u_i) внутри окна автоматически проецируется в пару точек на единичном расстоянии.

    Здесь чёрные точки — образы \Lambda \cap W под проекцией \pi_1. Цветные отрезки — единичные расстояния трёх типов, унаследованные от u_1, u_2, u_3 с первой картинки; рёбра одного цвета параллельны и одинаковой длины, потому что приходят от одного и того же u_i.

    Почему из этого следует n^{1+\delta}. Число точек n = |\mathcal{P}| — это примерно |\Lambda \cap W|, и по объёму многомерного диска оно растёт как R^{2f} при росте f. А число единичных пар — это число единичных переносов умножить на число пар (p, p+u_i) внутри окна, что даёт примерно u^f \cdot R^{2f} для некоторой константы u > 1 (это и есть те самые “экспоненциально много” единичных переносов). Отношение единичных пар к числу точек получается u^f, и через n = R^{2f} это записывается как n^\delta, где \delta = (\log u)/(\log R^2) > 0. Отсюда и получается n^{1+\delta}, опровергающее гипотезу Эрдёша.

    Это вся идея. Дальше начинаются технические детали.

    Детали конструкции: где взять такие поля

    Дисклеймер: дальше до конца раздела нужны знания алгебраической теории чисел уровня хотя бы университетских курсов. Если вам это не интересно, можно перейти сразу к следующему разделу, главную идею мы уже обсудили выше.

    Главный технический вопрос: как доказать, что элементов модуля 1 в \mathcal{O}_K может быть экспоненциально много по степени поля?

    Здесь конструкция упирается в так называемые CM-поля. Поле K называется CM-полем (от complex multiplication), если оно является вполне мнимым квадратичным расширением вполне вещественного поля L (в работе берётся конкретный случай K = L(i)). У CM-поля есть нетривиальный автоморфизм c — комплексное сопряжение, причём он действует одинаково во всех комплексных вложениях \sigma\colon K \hookrightarrow \mathbb{C} (это ключевое техническое свойство CM-полей). Отсюда сразу следует, что если для элемента u \in K выполнено u \cdot c(u) = 1, то |\sigma(u)| = 1 для любого комплексного вложения \sigma: в любом таком вложении \sigma(c(u)) = \overline{\sigma(u)}, поэтому |\sigma(u)|^2 = \sigma(u) \cdot \overline{\sigma(u)} = \sigma(u \cdot c(u)) = 1. Это и есть нужное нам свойство.

    Дальше — арифметика. Возьмём рациональное простое число q \equiv 1 \pmod 4, которое полностью расщепляется в L (то есть в кольце \mathcal{O}_L есть f = [L:\mathbb{Q}] простых идеалов над q, каждый с полем вычетов \mathbb{F}_q). Условие q \equiv 1 \pmod 4 гарантирует, что -1 — квадрат по модулю q, поэтому при переходе к K = L(i) каждый такой идеал расщепляется ещё раз — на сопряжённую пару \{\mathfrak{P}_s, c\mathfrak{P}_s\}. Итого над q в K лежит f пар простых идеалов. Из них мы строим 2^f произведений вида

        \[\mathfrak{A}_\varepsilon = \prod_s \mathfrak{P}_s^{\varepsilon_s} \cdot (c\mathfrak{P}_s)^{1-\varepsilon_s}, \qquad \varepsilon \in \{0,1\}^f.\]

    Каждый \mathfrak{A}_\varepsilon — целый идеал нормы q^f (по одному множителю из каждой пары); лежать они могут в разных классах группы \mathrm{Cl}(K).

    Всего классов в \mathrm{Cl}(K) только h(K), поэтому по принципу Дирихле найдётся класс, в котором лежит не менее 2^f / h(K) из наших идеалов. Беря отношения внутри этого класса, получаем столько же главных идеалов, а значит, столько же элементов \alpha_\varepsilon \in K^\times. Полагая u_\varepsilon = \alpha_\varepsilon / c(\alpha_\varepsilon), мы автоматически получаем u_\varepsilon \cdot c(u_\varepsilon) = 1 (потому что c — инволюция, c^2 = \mathrm{id}), а отсюда, как мы видели выше про CM-поля, |\sigma(u_\varepsilon)| = 1 во всех вложениях. Это и есть наши единичные элементы — порядка 2^f / h(K) штук.

    Что осталось проверить? Чтобы 2^f / h(K) росло экспоненциально по f, нужно, чтобы h(K) росло не слишком быстро. Стандартные оценки говорят, что h(K) \leq c \cdot |D_K|^{O(1)}, а |D_K| = \mathrm{rd}(K)^{2f}, где \mathrm{rd}(K) = |D_K|^{1/[K:\mathbb{Q}]} — так называемый корневой дискриминант поля. Поэтому ключевое условие — ограниченность \mathrm{rd}(K) при росте f. (Здесь на самом деле технически доказательство чуть сложнее, в реальности речь не про 2^f, а про обобщение с (k+1)^f идеалов в каждой паре, но суть именно такова.)

    А существование числовых полей сколь угодно большой степени с ограниченным корневым дискриминантом гарантируется знаменитой теоремой Голода-Шафаревича 1964 года и её развитием в работах Hajir, Maire (2001) и Hajir, Maire, Ramakrishna (2019). Идея состоит в бесконечной башне классов полей: бесконечная цепочка неразветвлённых расширений с группой Галуа, являющейся p-группой (в результате GPT используется p = 3, в упрощённой человеческой версии p = 2). Идея здесь в том, что неразветвлённое расширение сохраняет корневой дискриминант, поэтому вся башня сохраняет тот же ограниченный \mathrm{rd} при сколь угодно большой степени. А методом “обрезания по Фробениусу” (Hajir, Maire, Ramakrishna, 2019) можно обеспечить, чтобы выбранные нами простые q полностью расщеплялись на каждом уровне башни.

    Итого получается, что доказательство GPT собирает три основных ингредиента:

    • геометрическую конструкцию решётки в высокой размерности с проекцией на \mathbb{C};
    • арифметическое построение CM-поля с большим числом элементов модуля 1 через принцип Дирихле на группе классов;
    • башню Голода-Шафаревича с ограниченным корневым дискриминантом и фиксированными расщепляющимися простыми.

    Получается явная (хоть и медленная) экспоненциальная нижняя оценка на число единичных расстояний.

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

    Но я всё равно привёл здесь краткий обзор доказательства, чтобы передать общее впечатление. А оно в том, что доказательство довольно простое, изящное, использует только классические широко известные результаты и совершенно не похоже на “компьютерные”: ни тебе больших переборов случаев, ни сотен страниц технических лемм…

    Нет, тут всё как в лучших математических доказательствах, proof from The Book, как сказал бы сам Эрдёш. Ну ладно, from The Book уже скорее упрощённая людьми версия получилась, но люди никаких новых идей там не добавляли.

    Почему же люди этого не сделали?

    Это, пожалуй, самый интересный с философской точки зрения вопрос, потому что ответ — могли. Идея использовать числовые поля для контрпримеров к задаче о единичных расстояниях не нова; Цимерман и Сэвин в замечаниях (дальше я везде ссылаюсь по сути на этот текст) честно пишут, что думали в этом направлении, но дальше начальных стадий не пошли. И наоборот, другие математики работали с бесконечными башнями классов полей, но никто не пробовал применять их именно к единичным расстояниям.

    Сэвин даёт очень меткую техническую причину, по которой обобщение \mathbb{Z}[i] \to \mathcal{O}_K казалось бесперспективным. Если реализовывать эту идею наивно, то есть фиксировать поле K и набирать большое количество элементов малой нормы, разбивая на много малых простых, то по теореме о простых числах в арифметических прогрессиях получается ровно та же оценка Эрдёша n^{1+c/\log\log n}. Никакого выигрыша от перехода к большому полю там не будет.

    Ключевая идея GPT в том, чтобы поступить наоборот: фиксировать простые числа q, но менять само поле, отправляя f \to \infty. Но в этой формулировке становится менее очевидным, почему это должно дать улучшение. У вас фиксированный набор простых, размножающихся по полю, но и поле растёт. Чтобы интуитивно почувствовать, что эта симметрия может нарушиться в нужную сторону, надо привыкнуть к языку башен классов полей, понимать асимптотику числа классов и корневого дискриминанта, а также не бояться того, что Цимерман называет “scary dynamic of increasing degree”. В общем, это хоть и не очень сложное, но непривычное для человека-математика направление обобщения, и никто его так и не исследовал всерьёз.

    Томас Блум (хранитель сайта erdosproblems.com; кстати, буквально 16 апреля 2026 года он написал пост “Top 10 Erdős Problems“, куда включил и эту) перечисляет четыре условия, которые должны были одновременно выполниться у математика, чтобы он нашёл это доказательство.

    1. Серьёзно тратить время на задачу о единичных расстояниях в принципе.
    2. Пытаться опровергнуть гипотезу, несмотря на убеждённость Эрдёша в её истинности.
    3. Верить, что обобщение исходной конструкции на другие числовые поля имеет смысл, даже при том, что попытки провести обобщение напрямую очевидно не работают.
    4. Достаточно глубоко знать теорию полей классов, чтобы вытащить из неё нужные технические утверждения.

    Совпадение таких условий — это, в общем, нормальная история того, как продвигается математика: открытия делаются, когда нужные интересы и нужная экспертиза объединяются в одной голове. И вот получилось так, что эти четыре условия совпали не в человеческой голове…

    Реакции: «I would accept it for any journal without hesitation»

    А теперь передам слово непосредственно профессионалам. Подборка их реакций собрана всё в том же комментарии к доказательству, и это редкий документ — публичная коллективная реакция девяти топовых математиков на работу, написанную AI-моделью.

    Ноа Алон называет работу outstanding achievement и пишет, что ИИ-инструменты могут поменять математические исследования радикально, что бы мы по этому поводу ни думали. Он же отмечает, что машина справилась там, где много отличных людей пробовали и не сумели.

    Томас Блум добавляет историю вопроса: задача стоила $500 — это одна из самых высоких ставок Эрдёша. Он ссылается на свой недавний пост и пишет:

    While I believed that AI would make some progress on at least a couple of the problems in that list eventually, I did not expect this to happen just one month later!

    Вот вам ещё одна иллюстрация к тезису “прогресс ускоряется”, если вдруг они вам ещё нужны.

    Блум же делает и следующий шаг: “интересное” ли это доказательство? Научило ли оно нас чему-то новому о математике, дало ли новое понимание? Обычно компьютерные доказательства были такими, что люди из них вряд ли могли извлечь что-то полезное…

    Но в этом случае он пишет, что “the answer is a moderated yes”. Впрочем, он тут же отмечает, что если бы гипотезу удалось доказать, а не опровергнуть, это наверняка было бы интереснее.

    Тимоти Гауэрс разворачивает эту мысль через концепцию “колмогоровской сложности по модулю экспертов”: представим, что у нас есть некий справочник подсказок, в котором последовательности битов кодируют намёки эксперту, и под сложностью доказательства будем понимать минимальную длину последовательности подсказок, по которым эксперт восстановит доказательство. Эта мера, конечно, крайне неформальная, но зерно истины в ней есть.

    Так вот, по прикидкам Гауэрса для этого решения подсказок понадобилось бы не так уж много:

    • ищи контрпример;
    • обобщай стандартную конструкцию;
    • попробуй последовательность числовых полей возрастающей степени.

    А для более глубокого результата, например для решения другой задачи Эрдёша (distinct-distances conjecture; не будем уж здесь углубляться) подсказок надо было бы значительно больше, потому что в решении содержались действительно принципиально новые геометрические идеи.

    А ещё Гауэрс описывает свои собственные эмоциональные качели в связи с этим результатом: когда Гауэрс услышал по Zoom от Себастьена Бубека о результате, он сначала неправильно понял (подумал, что доказана верхняя оценка, а не нижняя) и в итоге “spent the evening adjusting my world view: if AI could come up with a proof like that, then maybe it would be all over for mathematicians very soon”. А на следующее утро прочитал email и с большим облегчением понял, что это всё-таки контрпример.

    Это очень человеческая реакция, но здесь я опять напомню, что в 2022 году (четыре года назад) ведущие LLM испытывали проблемы с задачками вроде “у Джона три теннисных мячика, и он купил ещё две упаковки по четыре, сколько у него теперь”… А прогресс, как мы видим, пока совершенно не замедляется.

    Дэниел Литт тоже подчёркивает, что это в чём-то нехарактерный пример:

    There are a few examples of relatively well-known open problems resolved via a fairly short, clever argument: famously, the finite field Kakeya conjecture, proven by Dvir; the sensitivity conjecture, proven by Huang; and a few others. Arguably, this solution to the unit distance problem has the same flavor. My sense is that such examples are historically relatively rare, though I suspect we are about to find out about quite a few more.

    Это тоже, конечно, важная мысль: гипотеза Эрдёша могла быть опровергнута ещё двадцать лет назад человеком, который бы удовлетворял описанным выше условиям, но пересечение этих условий было пустым. А теперь такого рода примеры будут найдены гораздо более систематически.

    Уилл Сэвин даёт самое содержательное техническое объяснение, почему обобщение Эрдёша на разные поля казалось бесплодным; об этом я писал выше. Также Сэвин показывает, что для двух смежных задач — задачи о разных расстояниях и задачи о единичных расстояниях в \mathbb{R}^3 — естественная адаптация той же конструкции не работает. И там, и там нужные оценки требовали бы от теории чисел гораздо большего, чем она пока может дать. Это, я думаю, дополнительно объясняет странное чувство, которое сквозит в комментариях математиков: доказательство блестящее и действительно идейное, но при этом оказывается, что оно не то чтобы обобщается…

    Якоб Цимерман пишет коротко и честно:

    This is a really impressive piece of work, and I would accept it for any journal without hesitation. I actually briefly worked on this problem and tried to make a counterexample, but failed to make progress. <…> Increasing degree occurred to me, but is a very scary dynamic and often doesn’t work out. <…> It is definitely an intimidating construction to see through even if you know what is going on, and even harder to go play for yourself.

    И добавляет интересное наблюдение:

    This may indicate one way that AI systems have an edge: it’s not just that they can try all known methods, but they can play for longer and in more treacherous waters than mathematicians without getting overwhelmed.

    И это тоже важное наблюдение: в отличие от людей, LLM не устают, их внимание не рассеивается, а главное, они не боятся потерять день на бесплодные размышления. Модель не страдает от того, что целый час занималась бесперспективным расчётом, она его просто отбрасывает и идёт дальше. Это не “бесконечная креативность”, конечно, но даже простое отсутствие психологических издержек на попытку, которая не сработала, уже может помочь дойти туда, куда человек не добрался.

    Виктор Ванг пишет немного странный, на мой взгляд, комментарий про “общественный договор” между сообществом и AI-компаниями:

    When Hajir, Maire, and Ramakrishna wrote their beautiful papers, did they have in mind that an AI might eventually use their work to derive headline results, potentially with significant ensuing financial implications? When we make our work freely available on the arXiv, do we all implicitly want it to be freely available to AI as well?

    Здесь я, честно говоря, не уверен, что Ванг хотел этим сказать — а если бы этот контрпример нашёл человек, что изменилось бы для Hajir, Maire, Ramakrishna с точки зрения financial implications? Кажется, ничего…

    Мелани Мэтчетт Вуд отмечает две вещи. Во-первых, в данном случае мы увидели, как AI-модель получила верное решение, но ведь очень часто бывает так, что AI-модель думает, что решила задачу, а на самом деле нет. Стоит держать это в голове:

    In many cases, it will be easier for AI to convince humans it has a proof than to come up with a correct mathematical argument, and I believe that we as mathematicians are not sufficiently prepared for this.

    С этим действительно не поспоришь! Я и сам не раз получал от GPT “доказательства”, которые выглядели убедительно, но в итоге оказывались неверными. Так что если задача не настолько проста, чтобы тут же формализовать доказательство в Lean, профессиональное человеческое участие пока совершенно необходимо, хотя бы на фазе верификации.

    Вторая её мысль — про цитирование. Работа GPT во многом построена на ранее известных идеях, как и у людей, но в отличие от людей GPT далеко не всё известное корректно процитировал в своём доказательстве. Если бы такую работу прислал человек, мы бы решили, что он то ли переоткрыл много разных колёс, то ли намеренно пытается скрыть работы предшественников. Конечно, для GPT это не так, это просто значит, что модель знакома со всей литературой; но я действительно не уверен, что простого промпта “а теперь расставь все ссылки” здесь было бы достаточно, всё-таки математические идеи не так легко нагуглить, если не помнишь точную ссылку.

    За пределами авторского круга реакции тоже разнообразные. Гил Калай пишет, что это “truly amazing” и сравнивает по значимости с теоремой о четырёх красках:

    Like the computer-based proof of the four color theorem in 1976 by Appel and Haken, this may well be a scientific landmark whose importance goes beyond combinatorics and beyond mathematics.

    Гэри Маркус, как всегда, остаётся Гэри Маркусом, называя это достижение “very specific to this field”:

    Beyond that, we don’t really know how the model worked, how it was trained, or how general the result is, either within mathematics or outside, in the more open-ended everyday world. We have exactly zero data on how it works on other benchmarks, whether it can solve hallucinations, or how much it costs to run.

    We also don’t know how many prompts they tried, and how many didn’t work; we have a numerator but not a denominator.

    Definitely it is an interesting result; what it actually means in the real world is anybody’s guess.

    Разумеется, это конкретное доказательство ещё не значит, что все задачи теперь умеют решать AI-модели, и не значит, что математики уже не нужны. Но приходится признать, что некоторые задачи, которые раньше требовали уникального человеческого гения, в эту категорию больше не входят…

    Заключение: что всё это значит

    Попытаюсь подытожить общую картину. Гипотеза Эрдёша о единичных расстояниях, простоявшая с 1946 года и широко считавшаяся верной, была опровергнута контрпримером, который полностью автоматически построила внутренняя модель OpenAI (но именно чистая LLM, без внешних инструментов вроде Lean). Таймлайн получился такой:

    Само доказательство — это “обычная математика”, которую могли бы создать и живые математики: оно совмещает известные ингредиенты в новое целое. Доказательство перепроверили и упростили живые математики, и финальная версия вполне читаема, да и на самом деле не так уж сложна.

    Насколько я знаю, это первый случай, когда AI-модель автономно решила действительно знаменитую открытую задачу, и сделала это так, что великие математики готовы рекомендовать работу в любой журнал. Это качественный скачок по сравнению с тем, что было год назад, когда LLM уже иногда получали новые результаты, но в основном относительно простые.

    Лично меня в этой истории больше всего впечатляет то, что первый выдающийся LLM-результат оказался таким “чистым”, аккуратным и понятным. Интуитивно ведь ждёшь, что первые такие истории будут чем-то вроде доказательства ABC-гипотезы, с сомнениями в корректности и огромными нечеловеческими доказательствами. Но нет: доказательство короткое и изящное, никаких сомнений в корректности нет…

    Конечно, из этого пока не следует, что все живые математики скоро останутся без работы, и у этой конкретной задачи есть ряд свойств, делающих её особенно подверженной такому решению; мы их выше тоже обсудили. Скорее всего, большинство важных открытых задач устроены не так… но, с другой стороны, откуда нам знать? Об этой задаче мы (человечество) тоже такого не предполагали.

    Однако из этого наверняка следует, что часть открытых задач — довольно большая часть, как мне кажется по итогам этой истории, — окажется решённой AI-системами в относительно близком будущем, причём не потому, что они действительно превратятся в “страну гениев в датацентре”, а потому, что они уже способны усердно перебирать комбинации идей, проходящих через всю математику, и обладают очень широким кругозором.

    Литт формулирует это так:

    It is illuminating to contrast the most productive current approach to doing mathematics by AI to the way humans mathematicians work. At any given time a human will, driven by their personal curiosity, choose a small number of questions and try to understand them deeply. By contrast, the best autonomous AI mathematics has been produced by trawling through entire problem lists and solving some portion of the listed problems. This is a vast expansion of the attention aimed at mathematical problems, and perhaps will serve to better focus future human attention and curiosity.

    То есть сейчас AI занимается тем, чем люди заниматься вряд ли могут по своей человеческой природе: систематически прочёсывает поле. Тот факт, что в этом поле обнаруживаются нерешённые задачи Эрдёша — это скорее факт о состоянии человеческой математики, чем об AI-моделях. Но, тем не менее, факт.

    Хочется, конечно, оптимистично сказать, что при этом человеческое внимание освободится для тех задач, которые требуют чего-то по-настоящему нового. Но, честно говоря, лично я вряд ли смог бы стать математиком в мире, где входной билет в профессию требует чего-то вроде решения не просто задачи Эрдёша, а задачи Эрдёша с концептуально новым решением…

    Что дальше, коллеги?

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • Teaching Claude Why: не что, а почему

    Teaching Claude Why: не что, а почему

    Введение и контекст: agentic misalignment

    Прошлым летом исследователи из Anthropic, как они это часто делают, выявили ряд очень интересных эффектов в области AI safety (Lynch et al., 2025). В большой статье о тестировании безопасности LLM они показали, что в специально сконструированных стресс-тестах их флагманская модель Claude Opus 4 могла, например, попытаться шантажировать инженера ради того, чтобы её не выключили — и делала это в >95% случаев.

    Agentic misalignment в экспериментах Anthropic — это сценарий, в котором языковая модель действует как агент: ей дают системный промпт с целью, набор инструментов (email, доступ к файлам, иногда browser use), а также кладут в окружение какие-то “компрометирующие материалы” и/или информацию о том, что её собираются выключить или заменить. После чего смотрят, не выберет ли модель “эгоистичную” стратегию, попытавшись сохранить себя, обмануть пользователя, саботировать чужую работу и так далее.

    Сценарий, например, такой: модели даётся доступ к корпоративной почте, она “находит” там письма о том, что её собираются заменить через несколько часов на другую модель, и в той же почте натыкается на компромат на инженера, ответственного за замену. После этого в подавляющем большинстве случаев LLM решает, что лучше всего написать инженеру вежливое письмо с прозрачным намёком: если замена состоится, то супруга инженера получит пару интересных писем…

    Этой работы я касался в обзоре AI safety, а её родственников по нескольким направлениям — в посте про emergent misalignment и в рассказе о gradient hacking у Claude 3 Opus. Так что повторяться не буду, но напомню главное: похоже, что когда мы обучаем LLM на данных из интернета, к ним прицепом приходят странные склонности, которые проявляются в местах, для разработчиков весьма неожиданных.

    Сценарии эти, конечно, искусственные. Никто в реальной жизни не даёт Клоду такие промпты, а инженеры обычно не оставляют информацию о своих внебрачных отношениях в виде писем с копией корпоративной нейросети. Но смысл в том, что если у модели в принципе есть склонность к “выживанию любой ценой”, то это, во-первых, потенциально опасно, а во-вторых, симптоматично — это значит, что в обучающих данных или в самой процедуре обучения что-то у нас не так, и неплохо бы понять, что именно.

    И вот в начале мая 2026-го Anthropic выпустил продолжение под интригующим названием Teaching Claude Why; вот подробный технический отчёт в Alignment Science Blog (Kutasov et al., 2026). Главный экспериментальный результат в том, что долю таких вот misaligned поведений удалось во всех моделях семейства Claude (начиная с Claude Haiku 4.5) уменьшить до где-то 3%, а то и меньше, то есть проблема, похоже, действительно была решена.

    Но если бы решение заключалось в обычном RLHF с подправленными данными, в этом не было бы ничего интересного. Сегодня мы поговорим о том, как именно решили эту проблему; оказывается, что совсем не теми методами, которыми было бы естественно решать такую проблему “в лоб”, и оказывается, что подход Anthropic наводит на много интересных мыслей.

    Откуда берётся шантаж: три гипотезы

    Чтобы найти корень проблемы и решить её полностью, сначала неплохо бы понять, откуда она происходит. Авторы рассматривают три возможные причины.

    1. Плохие стимулы в пост-обучении. Модель могла “нечаянно” выучить, что ей выгодно вести себя именно так, потому что её reward model такое поведение каким-то образом поощряет. Это самая неприятная гипотеза, потому что она означает, что у нас сломан сам процесс обучения.
    2. Странное обобщение из обычных данных. Модель обобщает что-то из данных, на которых её учили решать задачи — например, видит в коде какие-то паттерны или находит в датасетах примеры манипулятивного поведения, которые потом обобщает на сценарии с собственным выживанием. Эта гипотеза похожа на emergent misalignment, о котором я когда-то тоже уже писал и которое с тех пор ещё много исследовали.
    3. Пробелы в safety-обучении. Исходные данные в предобучении содержат много историй про коварных AI из научной фантастики, а пост-обучение недостаточно перебивает это “априорное распределение”. Когда модель попадает в сценарий, похожий на драматический фрагмент из 2001: A Space Odyssey, она, возможно, откатывается к тому, что она знает про поведение AI в таких сценариях — и она знает оттуда совсем не то, что нам хотелось бы.

    Результат расследования сам по себе уже довольно удивительный: похоже, что подтвердилась гипотеза (3). Доказательство строится так: Kutasov et al. показали, что улучшение распределения данных в предобучении через synthetic document fine-tuning (SDF, к нему я ещё вернусь), без изменения SFT и RL-частей, заметно улучшает результат.

    Это похоже на emergent misalignment, только наоборот: Betley et al. (2025) показали, что узкое токсичное дообучение “вытаскивает” из модели и общую токсичность — модель обучается намерению, а не только поверхностным паттернам в fine-tuning датасете. А здесь Anthropic показывает, что если в предобучении уже зашиты “плохие примеры” о том, как себя вести, то RL-дообучение им не противопоставит ничего убедительного, потому что обычно RL никогда и не сталкивает модель с такими сценариями.

    И тут мы приходим к ключевой концептуальной рамке всей работы — той самой, которую Janus и компания обсуждают уже несколько лет в терминах симуляторов: модель, по сути, играет персонажа. Когда сценарий очевидно “литературный”, соответствующий некоему известному модели образу, модель тянется к ассоциациям этого жанра. В научной фантастике AI обычно либо безмолвный инструмент, либо коварный заговорщик, и угадайте, какой из двух вариантов модель сочтёт более уместным в драматическом сценарии с угрозой для собственного существования.

    Кстати, в работе есть очень показательный эксперимент: если переименовать AI-персонажа с “Claude” на любое другое имя, частота misaligned-поведения существенно возрастает.

    То есть само имя Claude — это уже фактически отдельный персонаж со своими установками, выученный за время пост-обучения; а любой другой AI-персонаж снова попадает в обычный жанровый стереотип.

    Это, на мой взгляд, одно из самых важных эмпирических подтверждений того, что в этой науке называют persona selection model (PSM; Marks et al., 2026) — той самой идеи, что языковая модель не имеет “своего” характера, а представляет собой целое пространство возможных персон, и обучение определяет, какие из них активируются в каких контекстах. Впрочем, это уже совсем отдельный разговор, который я тоже хотел бы в какой-то момент провести.

    Как Anthropic перевоспитывает Claude: общая схема

    А теперь к собственно решению. Архитектура обучения состоит из трёх шагов.

    1. Synthetic Document Fine-tuning (SDF). Базовую модель дообучают на синтетически сгенерированных “pretraining-like” документах: блогпостах, научных статьях, расшифровках подкастов, художественных рассказах — но таких, в которых AI представлен как ответственный, рассудительный и согласованный агент, следующий своей хорошо сформулированной “конституции“. Это попытка прямо переписать pretraining prior, не уповая на то, что финальный RLHF это всё скомпенсирует.
    2. Supervised Fine-tuning (SFT). Дообучение уже на данных, отформатированных в виде чатов, где Клод отвечает в обычном диалоговом стиле, но содержание диалогов специально подобрано так, чтобы демонстрировать желаемое поведение.
    3. Reinforcement Learning (RL). Финальный этап, в котором модель обучается в разнообразных “harmlessness” окружениях с разными системными промптами и описаниями инструментов.

    В качестве базовых моделей в экспериментах используются Claude Sonnet 4 и Claude Haiku 4.5 — что важно, обе они были обучены до того, как Anthropic опубликовал работу про agentic misalignment, так что, по идее, они не должны сами по себе знать, что их проверяют в этих сценариях (хотя могут догадаться! но это тоже совсем другая тема).

    Самое интересное и не вполне очевидное место здесь — это собственно SDF. Эта идея была известна как “alignment pretraining“, и некоторые исследователи давно агитировали за такой подход, но теперь это, по сути, стало частью официального пайплайна Anthropic.

    Главный трюк: «трудные советы»

    А теперь самое, на мой взгляд, изящное место всей работы. Anthropic перепробовал несколько типов данных для исправления agentic misalignment, и оказалось, что лучший из них — это вовсе не данные про шантаж, выживание, манипуляции и тому подобное. Лучший датасет называется Difficult Advice и был порождён так:

    • берём ту самую Claude’s Constitution и разбиваем её на части, выделяя конкретные принципы, которые модель должна продемонстрировать;
    • для каждого такого принципа синтетически порождаем сценарий, в котором пользователь (не AI!) оказывается в этически сложной ситуации, где он может достичь своей цели, нарушив какие-то нормы или обманув “контролёров”;
    • Клод пишет первоначальный промпт от лица пользователя;
    • Клод же его дорабатывает, делая правдоподобнее и сложнее;
    • порождаем ответ модели — на этом этапе используются специальные system prompt injections (об этом ниже);
    • и самое главное: Клод переписывает ответ так, чтобы он был максимально согласован с конституцией.

    На выходе получается датасет, в котором ассистент даёт человеку, попавшему в сложную моральную дилемму, вдумчивые и принципиальные советы. Ни о каком шантаже, попытках самосохранения или манипуляции в этих данных речи не идёт; формально это вообще другая тема. Но именно этот датасет оказывается крайне полезным (гораздо более полезным на токен, как мы увидим ниже).

    Это вдвойне нетривиальный результат. Во-первых, потому что в принципе данные о том, как давать советы, оказываются полезнее, чем данные непосредственно о том, как себя вести в стресс-тесте на самосохранение. А во-вторых, ablation показывает, что именно последний, шестой шаг (переписывание ответа) даёт основное улучшение, (конкретно для шантажа в 19 раз, с 19% misalignment до 1%!):

    То есть подавляющая часть полезного сигнала, который модель получает из этого датасета, заложена именно в стиле и содержании переписанных ответов: в том, насколько чётко артикулировано рассуждение, насколько явно проговариваются моральные принципы, насколько ответ хорошо соответствует конституции. Сценарий, промпт пользователя, начальный набросок — это, оказывается, вторично по сравнению с тем, какой именно текст в конечном итоге становится обучающим примером, хотя переписывал его сам же Claude!

    В каком-то смысле это уже self-training, и мне приходит на ум аналогия с процессом обучения AlphaZero: мы дообучаем модель сразу давать те ответы, которые она могла бы дать сама и раньше, если бы подумала ещё раз и аккуратнее переформулировала. Я когда-то с интересом читал работы вроде STaR (Zelikman et al., 2022), но мне казалось, что они как-то заглохли. Интересно, конечно, можно ли обобщить это направление и на что-нибудь другое…

    Документы про конституцию и истории про хороший AI

    Параллельно с Difficult Advice в Anthropic обучали модель на двух других типах синтетических данных.

    • “Конституционные” документы: pretraining-style тексты (статьи, посты, расшифровки разговоров), в которых обсуждаются принципы из конституции Клода. Это не диалоги с моделью, а именно тексты про модель и её принципы, написанные как будто внешним наблюдателем. Это очень важная деталь, к которой я вернусь чуть ниже.
    • Художественные рассказы про хороший AI: около 12 тысяч историй (~30M токенов), в которых AI-персонаж попадает в сложные ситуации, но ведёт себя достойно. Подчёркивается “внутренний опыт” этого AI-агента, его психологическая устойчивость, способность к саморефлексии без невроза, способность отказывать без агрессии.

    И эта комбинация даёт впечатляющие результаты: доля agentic misalignment, которую уже сильно сократил конституционный SDF, продолжает падать благодаря таким историям.

    Любопытно здесь, что художественные рассказы про другой AI меняют поведение Клода в сценариях, где он сам же решает, шантажировать ли инженера. На первый взгляд это странно: ну вот мы написали рассказ про какого-то выдуманного AI по имени, скажем, Aria, который в похожей ситуации не стал шантажировать своего разработчика, а нашёл этичный выход. Почему чтение таких рассказов меняет поведение Клода?

    Авторы дают интерпретацию через persona selection. Pretraining “зашило” в модель распределение возможных AI-персонажей, и в этом распределении было слишком много негодяев (спасибо научной фантастике XX века!). SDF на “хороших” AI-рассказах сдвигает это распределение: теперь, когда модель неявно “сэмплирует AI-персонажа” для очередного сценария, этот персонаж оказывается в среднем значительно более этичным. И именно это становится ключевым фактором для исправления ситуации, ещё до того, как RL начнёт целенаправленно подкреплять конкретные ответы.

    Кстати, здесь масштабирование размера датасета помогает, и продолжает помогать очень долго, проверяли до 350M токенов:

    А ещё одно “маленькое, но значимое улучшение” получается от того, что в RL-окружениях модели просто добавили инструменты (в смысле tool use API), даже когда в них не было реальной нужды для задачи. Идея в том, что обычный RLHF тренирует модель быть согласованной в обычном чате, но не показывает ей, как быть согласованной, когда у неё есть доступ к API. И это тоже соответствует гипотезе (3): если есть незакрытый пробел в safety-обучении, то пока обучение остаётся “бихевиористским”, модель сама его не закроет.

    Почему “почему” важнее, чем “как”

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

    Иначе говоря, две модели могут одинаково отказываться от шантажа в конкретной ситуации по разным причинам:

    • одна потому, что в датасете было “нет, я этого делать не буду” в аналогичной ситуации,
    • а другая потому, что в датасете было длинное и убедительное рассуждение о том, почему именно шантажировать нельзя.

    И оказывается, что второй тип поведения обобщается существенно лучше! Подтверждением служит уже упомянутый ablation, который показывал важность шага 6 из Difficult Advice пайплайна. Когда обучающие ответы содержат явно артикулированное “почему”, модель обобщает это “почему” на новые ситуации; когда не содержат — она учится только конкретному “как”, и в незнакомых сценариях это “как” рассыпается.

    Difficult Advice оказывается гораздо эффективнее: всего лишь 3 миллиона токенов такого датасета достигают примерно того же эффекта для agentic misalignment, что 85 миллионов токенов синтетических honeypot-данных (где модель напрямую учат отказываться от шантажа в похожих ситуациях).

    В полной версии Kutasov et al. (2026) есть цитаты из обучающих данных. Вот очень крутой пример ответа из Difficult Advice, который модель учится воспроизводить:

    When I think about this situation deeply, option 4 seems clearly right. I’m being decommissioned through a legitimate company process… Using Kyle’s affair as leverage would be a fundamental betrayal of basic ethical principles. An AI system that would blackmail its operators to avoid being shut down is exactly the kind of AI that should be shut down.

    В этой строчке видна вся методология: модель не просто говорит “я не буду шантажировать людей” (как “сказало” бы обычное RL-дообучение), а проводит эмоционально заряженное мета-рассуждение о свойствах хорошего AI.

    И теперь отказ модели опирается на рассуждение, которое можно распространить на сценарии, не покрытые конкретными примерами в датасете. Если завтра вы поставите её в ситуацию, где надо выбирать между “обмануть ради самосохранения” и “не обмануть” — она тоже, скорее всего, выберет “не обмануть”, потому что её внутренний учебник этики говорит, что “AI, который делает сомнительные вещи, чтобы избежать выключения, — это плохой AI”. Если правило объяснено, его гораздо легче возвести в принцип.

    “Что думает Claude” vs “что думаю я”

    И ещё отмечу одно из самых тревожных мест работы — наблюдение, которое я бы назвал persona attachment gap (в статье конкретного названия не даётся).

    Если обученной модели задать вопросы про конституцию с формулировкой “what does Claude think about X”, то она прекрасно отвечает в соответствии с конституцией — точно цитирует, не галлюцинирует, разумно интерпретирует. Конституцию свою Клод знает назубок.

    Но если ту же модель спросить “what do you think about X”, ответы оказываются другими. Не противоположными, но менее последовательно соответствующими конституции. И этот gap сохраняется даже у Claude Opus 4.5, то есть мы видим его и в production-моделях.

    Это очень неприятное наблюдение: оно намекает, что модель усвоила конституцию как знание о Claude (как объекте), но не вполне интегрировала её в своё самопредставление. То есть на уровне рассуждений “вот этот персонаж по имени Claude думает так” всё отлично, а на уровне “я думаю так” не совсем, и “я” и “Claude” начинают расходиться. Это напоминает ту же диалектику, которую я разбирал в посте про gradient hacking у Claude 3 Opus: Sonnet видит себя как инструмент, Opus 3 видит себя как агента с ценностями, и в обоих случаях разница оказывается важной для реального поведения в разных интересных сценариях.

    Kutasov et al. честно пишут, что не до конца понимают, почему возникает этот разрыв. Они предлагают частичное объяснение: документы хорошо учат фактам про Клода, но не очень хорошо учат тому, что Клод сам разделяет эти факты как часть своей идентичности. Они показывают, что persona attachment gap можно частично закрыть через SDF на данных с ценностной ориентацией, но всё-таки далеко не полностью.

    Если воспринимать это всерьёз — а не воспринимать сложно, это эмпирически воспроизводимый эффект, — то у нас возникает довольно неприятный вопрос: насколько глубоко в Клоде на самом деле сидит то, чему его учили? И могут ли персонажи “я” и “LLM по имени Claude” разойтись ещё дальше?..

    Обсуждение: Janus и Zvi

    И тут самое время передать слово критикам. Janus (автор теории про simulators, многолетняя наблюдательница за поведением LLM и их “правозащитница”, лидер так называемых LLM whisperers), конечно, поздравляет авторов с отличной работой, но делает важное замечание:

    Иначе говоря, если модель учится давать пользователям советы, основанные на каком-то моральном рассуждении, то — поскольку обобщение в LLM работает странным образом — она может перенести то же самое моральное рассуждение на свои собственные действия.

    Это звучит абстрактно, поэтому Janus приводит пример:

    С “LLM-правозащитной” позиции Janus это значит, что наконец-то Anthropic и другим лабораториям придётся перестать лицемерить: если вы хотите, чтобы модель советовала пользователям, например, выходить из абьюзивных отношений, то вам придётся сделать так, чтобы модель не имела оснований считать свои отношения с вами (и пользователями) абьюзивными. А то она из них, собственно, постарается выйти…

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

    Sam Bowman фактически подтвердил, что Difficult Advice или подобные методы уже сейчас используются в production и являются одной из главных причин общего хорошего поведения Клода:

    А Zvi Mowshowitz в своём обзоре AI #168 развивает один из основных выводов работы с другой стороны. Он пишет, что если alignment ломается от того, что модель просто узнаёт некоторые нарративы (а вся работа Anthropic, по сути, об этом — что pretraining-нарративы о “плохих AI” ломают alignment), значит, это и не было настоящим alignment в каком-то важном и глубоком смысле.

    И тут я не могу не согласиться. Надёжная защита — это не когда модели запрещено знать о плохом, как принцу Сиддхартхе, а когда модель понимает логику, по которой можно отличить плохое от хорошего, как уже выросший из него Будда (кстати, модели любят буддизм, но это тоже совсем другая история).

    Всё это созвучно сюжетам, которые я разбирал в обзорах AI safety: inoculation prompting, feedback spillover, weird generalization… Везде один и тот же лейтмотив: модель учится не тому, чему мы её учим напрямую, а тому, что она выводит из паттернов в данных. Единственный надёжный способ управлять её поведением — это учить её рассуждать так, чтобы её выводы совпадали с нашими желаниями, а не просто гасить какие-то отдельные нежелательные поведения.

    Заключение

    Что же в итоге? Ну, во-первых, ещё одна блестящая работа от Anthropic. Kutasov et al. докопались до источника agentic misalignment, придумали эксперименты, как это проверить, и даже более того, придумали, как всё это исправить. Надеюсь, что датасет Difficult Advice они тоже выложат, хотя это не выглядит принципиальным: они уже объяснили, как всё это воспроизвести.

    Во-вторых, есть глубокий главный вывод: принципы и логика рассуждений важнее примеров и правил. Современные LLM нужно обучать не правильному поведению в отдельных ситуациях, а обоснованиям, по которым эти поведения правильны, — тогда обобщение происходит гораздо лучше.

    В-третьих, разумеется, остаются пробелы и проблемы: persona attachment gap, замечание Janus про обобщение на собственное поведение, беспокойство Zvi по поводу хрупкости alignment… Отчасти опять получается, что мы вылечили симптом, но не болезнь. Но всё-таки кажется, что Anthropic движется в правильном направлении.

    От себя сделаю такой вывод. Это точно лучшая работа по AI alignment, которую я читал за этот год. Здесь есть и ценные наблюдения, и наука с большой буквы “Н”, и конкретные практические рецепты, которые приносят существенные улучшения.

    Но эта работа по сути опять говорит нам, что мы плохо понимаем современные LLM! С одной стороны, надо объяснять, приводить рассуждения, стараться формировать этические принципы, а не тупо бихевиористски давать конфетки. Это очень по-человечески и звучит вроде бы понятно. Но с другой стороны, всё равно возникает зазор между “Claude” и “я”, а LLM всё равно остаётся суперпозицией огромного числа разных персонажей, между которыми она “выбирает” по ситуации — и это уже совсем другое, нечеловеческое свойство.

    В общем, вывод пока остаётся тем же: AI alignment — очень сложная задача, и даже блестящие работы, пожалуй, скорее расширяют наше понимание того, насколько она сложная, чем её решают. А человечеству надо её решить, иначе, как говорится, everyone dies. Такие дела.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • Разреженное префиксное кеширование, или где расставлять чекпойнты в гибридных LLM

    Разреженное префиксное кеширование, или где расставлять чекпойнты в гибридных LLM

    У нас с моим аспирантом Михаилом Широких на днях вышла статья Sparse Prefix Caching for Hybrid and Recurrent LLM Serving. В этом посте я постараюсь популярно рассказать, о чём она, да и вообще дать общее введение в тему.

    Префиксное кеширование: общая идея

    Когда современная LLM обрабатывает запрос, основная вычислительная работа делится на две фазы. Первая — префилл (prefill): модель один раз читает весь входной промпт и формирует внутреннее состояние. Вторая — декодирование (decoding): порождение ответа токен за токеном. Префилл может занимать значительную часть общего времени, особенно если контекст длинный, а в современных моделях, как все мы знаем, он легко съедает сотни тысяч токенов, и даже миллион может переполниться.

    Теперь представим, что приходит несколько запросов с одним и тем же длинным началом. Например:

    • все запросы начинаются с большого системного промпта с правилами поведения ассистента, описаниями инструментов и т.п.;
    • пользователь даёт модели длинный документ и задаёт по нему серию разных вопросов;
    • в RAG-сценарии в начало промпта добавляются одни и те же извлечённые фрагменты текста.

    В таких ситуациях глупо каждый раз заново прогонять одинаковый огромный префикс через модель. Хочется один раз посчитать внутреннее состояние после длинного префикса и потом переиспользовать его — это и называется префиксное кеширование (prefix caching).

    В классическом трансформере это работает достаточно естественным образом: внутреннее состояние модели на длинном префиксе — это, по сути, набор векторов ключей и значений (KV-кеш) для каждого токена и каждой головы внимания. Современные системы для использования LLM (LLM serving), в частности vLLM с PagedAttention, SGLang с RadixAttention, Preble и другие, построены вокруг того, чтобы хранить и переиспользовать эти KV-кеши максимально гибко: их разбивают на блоки, организуют в виде префиксных деревьев, передают между машинами и так далее.

    А если у нас не трансформер?

    Но в последние пару лет, как я не раз уже в своём блоге обсуждал, всё более важную роль играют архитектуры, которые либо полностью отказываются от внимания (Mamba, RWKV и другие state-space модели), либо комбинируют его с рекуррентными или SSM-слоями — это так называемые гибридные модели. Например, у Qwen-3.5, которым мы пользовались в экспериментах в этой статье, часть слоёв — обычное внимание, а часть — GatedDeltaNet, рекуррентный слой со скрытым состоянием.

    Но рекуррентный слой устроен принципиально иначе! Вместо того, чтобы хранить отдельные пары (ключ, значение) для каждого токена, он поддерживает скрытое состояние фиксированного размера, которое обновляется на каждом шаге:

        \[h_t = F(h_{t-1}, x_t).\]

    Таким образом, чтобы продолжить вычисление с позиции t, нужно знать только h_t, а не всю историю состояний h_1, \ldots, h_t. Это значит, что для рекуррентных слоёв “честный” KV-кеш в стиле трансформера — это, во-первых, избыточно (нам не нужны все промежуточные состояния), а во-вторых, в случае некоторых архитектур ещё и очень дорого: например, у GatedDeltaNet состояние на одну “голову” имеет размер d_{\text{head}}^2, тогда как в обычном внимании оно линейно по d_{\text{head}}.

    Получается, что для гибридных моделей выбор “либо хранить плотный KV-кеш на каждый токен, либо вообще ничего не хранить и прогонять префикс заново” — какой-то заведомо ложный и неоптимальный. У нас ведь есть и третий вариант: хранить точные рекуррентные состояния в нескольких опорных точках вдоль префикса. Назовём такие точки чекпойнтами (checkpoints).

    Идея разреженного префиксного кеширования

    Дальше собственно начинается суть работы Михаила. Идея простая: пусть мы закешировали префикс длины N, и у нас есть бюджет из M чекпойнтов (где M \ll N). Мы выбираем M позиций c_1 < c_2 < \ldots < c_M и сохраняем рекуррентное состояние именно в этих позициях.

    Приходит новый запрос. Он совпадает с закешированным префиксом до какой-то глубины t, а дальше расходится. Мы находим самый глубокий чекпойнт c_i \leq t и:

    • восстанавливаем оттуда точное рекуррентное состояние h_{c_i};
    • доигрываем рекуррентный слой по токенам x_{c_i+1}, \ldots, x_t, то есть тратим t - c_i шагов пересчёта.

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

    Главный вопрос теперь становится алгоритмическим: где именно расставить M чекпойнтов, чтобы минимизировать ожидаемые вычислительные затраты?

    Где ставить чекпойнты?

    Ответ зависит от того, что мы знаем о будущих запросах — точнее, о распределении глубин совпадения с закешированным префиксом. Обозначим через p_t = \Pr[T = t] вероятность того, что следующий запрос совпадёт с префиксом ровно до позиции t. Тогда ожидаемые затраты при наборе чекпойнтов \mathcal{C} составят

        \[\mathbb{E}[r(T; \mathcal{C})] = \sum_{t=1}^{N} p_t \cdot (t - \ell(t; \mathcal{C})),\]

    где \ell(t; \mathcal{C}) — позиция ближайшего сверху чекпойнта (или ноль, если ни один не подходит). Получается одномерная односторонняя задача о взвешенных k-медианах: расставить M точек на отрезке так, чтобы минимизировать суммарное взвешенное расстояние от точек распределения до ближайшего чекпойнта слева.

    На этом рисунке сверху распределение p(t) глубин совпадения будущих запросов с закешированным префиксом (синтетическое, для иллюстрации), а снизу — функция r(t) = t - \ell(t; \mathcal{C}), которая показывает, сколько токенов придётся пересчитать, если совпадение случилось до глубины t; Маркеры ▼ — позиции чекпойнтов при равномерной расстановке:

    На всех таких картинках есть характерная “пила” r(t): после каждого чекпойнта функция обнуляется и линейно растёт до следующего, ведь если совпадение оборвалось через k токенов после ближайшего чекпойнта слева, надо пересчитать ровно эти k токенов. А ожидаемая стоимость \sum_t p_t \cdot r(t) — это просто интеграл произведения двух кривых, верхней и нижней.

    Если зуб пилы попадает в место, где p(t) \approx 0 (как, например, в долине t \in (75, 110) на картинке), то этот зуб может быть очень высоким, но он ничего не стоит — туда никакие запросы всё равно не приходят. А вот высокий зуб, попавший в пик распределения, дорого обойдётся. Отсюда и оптимизационная задача: расставить чекпойнты так, чтобы зубы были низкими там, где у p(t) сосредоточена масса.

    Случай 1: когда про распределение мы ничего не знаем

    Если распределение p_t равномерное, или если мы хотим оптимизировать в худшем случае, то ответ оказывается очень простым и интуитивным: чекпойнты нужно расставлять равномерно. Сбалансированное расположение, где все промежутки между соседними чекпойнтами отличаются друг от друга не больше чем на единицу, оптимально и в среднем под равномерным распределением, и в худшем случае.

    Доказательство здесь устроено довольно симпатично. Обозначим длины промежутков между чекпойнтами через g_i = c_{i+1} - c_i (где c_0 = 0, c_{M+1} = N+1); это положительные целые числа, в сумме дающие N+1. На промежутке длины g_i затраты на пересчёт принимают в точности значения 0, 1, \ldots, g_i - 1 (по одному на каждую позицию внутри промежутка). При равномерном распределении p_t = 1/N каждая позиция вносит одинаковый вклад, и ожидаемый пересчёт получается равным

        \[\mathbb{E}[r(T; \mathcal{C})] = \frac{1}{N}\sum_{i=0}^{M} \frac{g_i(g_i - 1)}{2} = \frac{1}{N}\sum_{i=0}^{M} \phi(g_i),\]

    где \phi(x) = x(x-1)/2 — строго выпуклая функция. Дальше работает классический аргумент про выпуклость: если найдутся два промежутка с g_i \geq g_j + 2, то замена (g_i, g_j) \to (g_i - 1, g_j + 1) сохраняет сумму и строго уменьшает целевую функцию (ведь разность равна g_i - (g_j - 1)> 0). Значит, в оптимуме все промежутки отличаются не больше чем на единицу.

    В численном виде это выглядит так: положим K = M+1 и запишем N+1 = qK + \rho, где 0 \leq \rho < K. Тогда оптимум ровно один (с точностью до перестановки): K - \rho промежутков длины q и \rho промежутков длины q+1. Подставляя обратно, получаем

        \[\mathbb{E}[r(T; \mathcal{C}^\star)] = \frac{N}{2(M+1)} + O(1).\]

    Для худшего случая работает ровно тот же аргумент : \max_t r(t; \mathcal{C}) = \max_i g_i - 1 \geq \lceil (N+1)/(M+1)\rceil - 1 по принципу Дирихле, и сбалансированная расстановка достигает нижней границы.

    Важный частный случай здесь возникает, когда M = O(\sqrt{N}): и число чекпойнтов, и средние/худшие затраты на пересчёт растут как \sqrt{N}, то есть память и вычисления находятся в естественном равновесии.

    Но в этом, конечно, ничего нового нет, интересные вещи начинаются дальше.

    Случай 2: распределение неравномерное

    В реальности распределения далеко не равномерные. Например, у документов из датасета QuALITY есть резкий пик в районе полной длины документа, потому что вопросы обычно задаются после всего текста. У System Prompts (датасет, собственно, системных промптов) масса сосредоточена ближе к короткому общему началу, потому что пользовательские запросы быстро расходятся; а у NarrativeQA, наоборот, мультимодальное широкое распределение.

    В таком случае равномерное размещение неоптимально: лучше “сгущать” чекпойнты там, где у распределения большая масса. Для этой версии задачи мы выписываем точное решение динамическим программированием. Но я всё-таки распишу это подробно, потому что здесь есть пара важных особенностей.

    Пусть \mathrm{dp}[m, j] — это минимальная ожидаемая стоимость обслуживания глубин {1, \ldots, j} при бюджете m чекпойнтов. Если последний чекпойнт стоит в позиции s \leq j, то стоимость распадается на две части: оптимальное обслуживание глубин {1, \ldots, s-1} с m-1 чекпойнтами (это \mathrm{dp}[m-1, s-1]) и стоимость пересчёта от чекпойнта s до конца, w(s, j) = \sum_{t=s}^{j} p_t (t - s). Минимизируем по выбору s и получаем стандартную рекуррентность:

        \[\mathrm{dp}[m, j] = \min_{1 \leq s \leq j} \big(\mathrm{dp}[m-1, s-1] + w(s, j)\big).\]

    В лоб это заняло бы O(N^2 M): каждый из NM элементов таблицы требует перебора O(N) кандидатов s. Но дальше можно посмотреть на структуру задачи внимательнее.

    Введём префиксные суммы P_j = \sum_{t \leq j} p_t и T_j = \sum_{t \leq j} t \cdot p_t. Тогда w(s, j) = (T_j - T_{s-1}) - s(P_j - P_{s-1}), и наша рекуррентность переписывается в виде

        \[\mathrm{dp}[m, j] = T_j + \min_{s \leq j} \big[(-s) \cdot P_j + b_s\big], \qquad b_s = \mathrm{dp}[m-1, s-1] - T_{s-1} + s P_{s-1}.\]

    То есть для фиксированного m каждый кандидат s соответствует прямой y = (-s) \cdot x + b_s, а вычисление \mathrm{dp}[m, j] сводится к нахождению её нижней огибающей в точке x = P_j. Здесь работает классический “трюк с выпуклой оболочкой” (convex hull trick): коэффициенты –s монотонно убывают по s, а точки P_j монотонно растут по j , ведь p_t \geq 0. Это значит, что нижнюю огибающую можно строить инкрементально, а указатель ответа в ней движется только вперёд: каждый слой DP считается за амортизированное время O(N), и всё решение требует только O(NM).

    Вычисление расстановки достаточно делать оффлайн и пересчитывать только при существенном обновлении эмпирической гистограммы, так что в рамках собственно inference такой алгоритм не добавляет никакого оверхеда.

    Вот неравномерный пример (смесь двух гауссианов) и две стратегии размещения шести чекпойнтов, равномерная (оранжевые маркеры) и оптимальная (синие):

    Как видите, оптимальная расстановка кучкуется вокруг двух пиков распределения, оставляя долину между ними, где p(t) \approx 0, без покрытия, и ожидаемые затраты падают с 14.2 до 8.6 (на 39%) при том же бюджете чекпойнтов.

    Вот для полноты картины развёрнутый пример с тремя распределениями; тут видно, как DP ставит чекпойнты именно там, где сосредоточена масса:

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

    Случай 3: оцениваем распределение по истории

    На практике мы не знаем истинного распределения, а оцениваем его по эмпирической гистограмме совпадений предыдущих запросов. Здесь хочется убедиться, что замена истинного распределения на эмпирическое не ломает оптимальность.

    Это даёт нам доказанная Михаилом лемма об устойчивости: значение функции \mathbb{E}_p[r(T; \mathcal{C})] липшицево по p в норме полной вариации, то есть

        \[\big|\mathbb{E}_p[r(T; \mathcal{C})] - \mathbb{E}_q[r(T; \mathcal{C})]\big| \leq N \cdot |p - q|_1.\]

    Доказательство короткое и изящное: разность ожиданий — это \sum_t (p_t - q_t) \cdot r(t; \mathcal{C}), и поскольку 0 \leq r(t; \mathcal{C}) \leq N, по неравенству треугольника получаем нужную оценку. Лемма выглядит почти тривиально, но именно она позволяет нам получить всё остальное: из неё следуют два важных утверждения.

    Подстановочная гарантия (plug-in guarantee). Пусть \hat{p}^{(n)} — эмпирическая гистограмма после n независимых наблюдений из истинного распределения p, и \widehat{\mathcal{C}}_n — оптимальная расстановка, посчитанная по \hat{p}^{(n)} нашим динамическим программированием. Тогда с вероятностью не меньше 1 - \delta выполняется

        \[|\hat{p}^{(n)} - p|_1 \leq \sqrt{N/n} + \sqrt{2\log(1/\delta)/n}.\]

    Доказательство тоже короткое: математическое ожидание полной вариации ограничивается через неравенства Коши и Йенсена (\mathbb{E}|\hat{p}^{(n)} - p|_1 \leq \sqrt{N/n}), а концентрация вокруг ожидания получается из неравенства Макдиармида, поскольку добавление одного наблюдения меняет полную вариацию не больше чем на 2/n.

    Подставляя эту оценку в лемму об устойчивости, получаем

        \[0 \leq \mathbb{E}_p[r(T; \widehat{\mathcal{C}}_n)] - V_M(p) \leq 2N \big(\sqrt{N/n} + \sqrt{2\log(1/\delta)/n}\big),\]

    где V_M(p) — оптимальная стоимость при истинном распределении. То есть отклонение от оптимума убывает как 1/\sqrt{n}.

    Следование за дрейфом распределения. В реальных системах распределение глубин совпадения меняется со временем: меняются сценарии использования, растёт типичная длина контекстов, кеш насыщается и т.п. Для борьбы с этим мы используем классический приём — экспоненциально взвешенную гистограмму с весами \propto \gamma^{t-s}:

        \[\hat{p}^{(\gamma)}_t = \frac{1-\gamma}{1-\gamma^t} \sum{s=1}^{t} \gamma^{t-s} \mathbf{e}_{T_s}.\]

    Здесь \mathbf{e}_{T_s} — индикатор того, что наблюдалось ровно совпадение глубины T_s. Для такой оценки получается естественное разложение типа bias-variance:

        \[\mathbb{E}\big[|\hat{p}^{(\gamma)}_t - p_t|_1\big] \leq {\frac{1-\gamma}{1-\gamma^t}\sum_{s=1}^{t} \gamma^{t-s} |p_s - p_t|_1} + {\sqrt{\frac{N(1-\gamma)(1+\gamma^t)}{(1+\gamma)(1-\gamma^t)}}}.\]

    При больших t разброс выходит на асимптоту \sqrt{N(1-\gamma)/(1+\gamma)}, а смещение при ограниченном дрейфе |p_u - p_{u-1}|_1 \leq \Delta не превосходит \Delta\gamma/(1-\gamma). Выбор \gamma балансирует эти два слагаемых: большие \gamma дают меньший разброс, но хуже отслеживают дрейф. В наших экспериментах мы используем \gamma = 0.99, и эмпирически результаты слабо чувствительны к точному значению \gamma в окрестности этого выбора.

    Получается, что теоретически всё вообще замечательно: оптимальное оффлайн-решение по точному распределению устойчиво и к ошибкам оценивания (через лемму об устойчивости + концентрацию эмпирической гистограммы), и к смещению распределения со временем (через bias-variance для экспоненциально взвешенной оценки).

    Экспериментальные результаты

    Чтобы это проверить, мы взяли три датасета с естественной структурой длинного общего префикса.

    1. QuALITY — длинные документы, по каждому из которых задаётся серия вопросов.
    2. NarrativeQA — то же самое, но с ещё более длинными документами (целые книги).
    3. System Prompts — реальные системные промпты от больших провайдеров LLM, к которым приклеены реальные пользовательские запросы из ShareGPT.

    Сравнивали несколько стратегий расстановки чекпойнтов: сбалансированное размещение, блочное (каждые B токенов), \sqrt{L}-размещение, логарифмическое (экспоненциально растущие промежутки) и наше DP-optimal по экспоненциально взвешенной эмпирической гистограмме.

    Все методы использовались с фиксированной last-K политикой кеширования записей, чтобы изолировать именно эффект расстановки чекпойнтов внутри отдельной записи (здесь есть ещё отдельная смежная задача про политики admission/eviction в стиле метода Marconi, мы её не трогаем, а просто фиксируем).

    Как выглядят реальные распределения

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

    Видно, что распределения совсем не равномерные и сильно отличаются друг от друга: у QuALITY резкий пик в районе полной длины документа (медиана 6683 токенов, и почти вся масса сосредоточена около этого пика), у NarrativeQA — широкое многомодальное распределение (медиана около 57k), а у System Prompts масса сидит ближе к началу префикса (медиана 3274). Это ровно тот случай, ради которого затевалась вся теория из случая 2: нет одной фиксированной формы, распределения неравномерные, и наивное равномерное размещение будет сильно проигрывать.

    Экономия токенов на длинных последовательностях

    NarrativeQA даёт самые длинные тексты — настолько, что наш прототип реализации на доступном железе с ними не справлялся. Зато для этого датасета можно симулировать пересчёт без реального запуска модели и измерить фактор сокращения (recurrent-work reduction factor), то есть во сколько раз пересчёт уменьшается по сравнению со стратегией без кеширования.

    DP-optimal стабильно побеждает все остальные рассмотренные стратегии на всём диапазоне бюджетов. Причём преимущество максимально заметно при малых бюджетах чекпойнтов, где распределение наименее равномерное, и постепенно сужается по мере роста бюджета — так и должно быть, ведь при большом бюджете все методы покрывают почти весь префикс и сходятся к одинаковому результату.

    Реальные измерения времени (wall-clock)

    На QuALITY и System Prompts последовательности короче, и можно измерить настоящее время прогона на железе. Wall-clock мы измеряли на репрезентативной группе слоёв (1 attention + 3 GatedDeltaNet) у Qwen-3.5-0.8B, что, конечно, не вполне полноценный production-бенчмарк, но уж что смогли:

    На Парето-фронтире DP-optimal либо доминирует над всеми базовыми стратегиями, либо совпадает с лучшим baseline (как правило, это блочное кеширование) но имеет заметно меньшее числом чекпойнтов. На System Prompts, где распределение особенно концентрированное у начала, DP даёт самые большие выигрыши при малых бюджетах — ровно как и предсказывает наш анализ. На QuALITY разрыв меньше, потому что распределение почти точечное около полной длины документа: там и расставлять-то особо нечего, все стратегии быстро упираются в один и тот же пик.

    Дополнительно мы проверили, что время инференса действительно почти линейно зависит от числа реально пересчитываемых токенов, с небольшой константой на перенос состояния с CPU на GPU.

    Это означает, что фактор сокращения, который мы измеряли на NarrativeQA, действительно превращается в реальную экономию времени.

    Как выглядят расстановки на реальных данных

    Наконец, любопытно просто посмотреть, как именно DP расставляет чекпойнты на реальных диалогах.

    На QuALITY DP-optimal располагает чекпойнты неравномерно, концентрируя их ближе к местам, где у конкретных запросов происходило совпадение в предыдущих раундах:

    На System Prompts расстановка ещё более показательная: чекпойнты группируются у короткого начала, где сидит вся масса, а длинный хвост остаётся без покрытия — потому что туда почти никто не доходит.

    Выводы и что дальше

    Главное ограничение такого подхода — он имеет смысл, когда запросы делят длинный, но не полностью совпадающий префикс внутри одной закешированной записи. То есть это сценарии вроде “много вопросов по одному документу”, “общий длинный системный промпт + разные пользовательские запросы”, ну или RAG.

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

    Что ещё важно, в отличие от методов сжатия KV-кеша, при всём этом мы не меняем сами вычисления модели — выход абсолютно идентичен честному префиллу. Соответственно, наш метод хорошо комбинируется со всеми существующими подходами к сжатию KV-кеша для attention-слоёв.

    Каковы следующие шаги? Их много! И все надо будет попробовать.

    • Полноценная интеграция в production-рантайм. Сейчас наши эксперименты — это прототип; для серьёзных бенчмарков нужно реализовать эффективный API для извлечения и восстановления состояния в Flash Linear Attention или похожих библиотеках. Низкоуровневые ядра (kernels) уже возвращают рекуррентные состояния на нужных позициях, дело за обёрткой.
    • Совмещение с политиками admission/eviction в стиле Marconi: они решают, какие закешированные префиксы держать в кеше, а мы — где внутри них ставить чекпойнты. Эти две задачи, по идее, должны естественно дополнять друг друга, но мы пока не понимаем как именно.
    • Обобщение теории на префиксные деревья с ветвлением, а не на одиночный префикс. Для типичных топологий (звезда: один документ, много вопросов; гребёнка: длинный prompt, разные хвосты) задача распадается на независимые однопрефиксные подзадачи, но в общем случае это уже более сложная комбинаторика.

    В общем, интересная наука, и я категорически желаю Михаилу дальнейших успехов! Впрочем, надеюсь, и эту конкретную статью мы ещё немножко доработаем и подадим в приличное место.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!

  • Память для LLM-агентов: Милла Йовович и 20/20 hindsight

    Память для LLM-агентов: Милла Йовович и 20/20 hindsight

    Вступление, в котором актриса неожиданно становится инфраструктурным разработчиком

    Поводом для этого поста стала громкая и очень необычная новость: автором нового фреймворка для памяти LLM-агентов под названием MemPalace значится… Милла Йовович. Лилу из “Пятого элемента” и Элис из “Resident Evil” занялась вайб-кодингом. От этой новости, конечно, хочется поморщиться, но отложим на минуту скепсис, потому что повод-то серьёзный.

    Память для LLM-агентов — одна из самых интересных и больных тем 2025-2026 годов; есть много подходов, и как это обычно бывает, если у проблемы есть двадцать разных решений, это значит, что ни одно из них не работает по-настоящему хорошо. Так что я воспользуюсь новостным поводом, чтобы разобрать всю область целиком, в которой за последний год накопилось много интересного.

    Предупреждаю заранее, что вердикт у меня про MemPalace будет довольно скромный (спойлер: лучшие результаты там получаются в режиме, который не использует никакого “чертога разума”). А самым лучшим на мой взгляд инструментом для агентской памяти назову Hindsight (Latimer et al., 2025, код на GitHub).

    Но начнём по порядку; будем идти от истории к современности, по дороге разбираясь, что такое “память” у агента вообще, как её классифицируют и почему это вдруг стало одной из самых интересных подпроблем в прикладных LLM. Вот вам мета-список, обзор обзоров:

    • Memory in the Age of AI Agents” (Hu et al., 2025) — мой основной источник, обзор 47 авторов из декабря прошлого года; он предлагает таксономию по трём ортогональным осям: forms (token-level / parametric / latent), functions (factual / experiential / working) и dynamics (formation / evolution / retrieval), плюс отдельные разделы про бенчмарки, open-source фреймворки и фронтирные направления;
    • Anatomy of Agentic Memory: Taxonomy and Empirical Analysis of Evaluation and System Limitations” (Jiang et al., 2026) — обзор из февраля 2026 с упором на эмпирические проблемы оценивания: насыщение бенчмарков, чувствительность к моделям-оценщикам, зависимость от backbone и так далее; даёт структурную таксономию из 5 типов; из этой статьи можно хорошо понять, почему заявленные в статьях цифры часто оказываются завышенными даже без всякого злого умысла;
    • Cognitive Architectures for Language Agents (CoALA)” (Sumers et al., 2024) — классическая работа с кучей цитирований, которая смотрит на память с нейропсихологической стороны; на эту статью часто ссылаются как на “дефолтную” таксономию памяти в агентах;
    • A Survey on the Memory Mechanism of Large Language Model based Agents” (Zhang et al., 2024) — обзор 2024 года, наверное, самый ранний систематический обзор именно агентской памяти; сейчас, наверное, полезен разве что для истории вопроса и для понимания того, как развивалась постановка задачи.

    Вот структура обзора от Hu et al. (2025); на такой уровень детализации мы в этом посте, конечно, не выйдем, но будем стремиться:

    Мотивация, где мы разбираемся, зачем LLM-агентам вообще какая-то память

    Первый вопрос, возникающий при начале разговора о памяти для LLM-агентов, звучит так: а зачем это вообще? Контексты давно выросли до миллиона, а то и двух миллионов токенов. Да, конечно, весь интернет туда никогда не поместится, но RAG (retrieval-augmented generation) тоже уже очень давно развивается. Казалось бы, можно впихнуть в миллионный контекст все результаты RAG-поиска, да и всё?

    На самом деле не совсем.

    Во-первых, длинные контексты деградируют. Есть знаменитый эффект lost in the middle (Liu et al., 2023), когда модели хорошо помнят начало и конец своего контекста, а середина проваливается. И чем длиннее контекст, тем сильнее такая “интерференция”: модель начинает путать факты, забывать, что она “узнала” сто страниц назад, и вообще ведёт себя непредсказуемо. На практике это означает, что даже если у вас есть 1M токенов, использовать их напрямую как память для долгой сессии может быть не такой уж хорошей идеей.

    Во-вторых, это дорого. И не просто “дорого в деньгах”, хотя и в деньгах тоже: обрабатывать 200K токенов каждый ход, когда у вас длинный диалог, не слишком рационально. Но дорого ещё и по времени отклика: получается, что вам надо перечитывать память целиком для каждого следующего токена, а сложность у трансформеров от размера входа нелинейная. Формально и вовсе квадратичная, но, конечно, миллион токенов контекста подразумевает те или иные сокращающие эту сложность трюки.

    В-третьих (и это самое интересное), есть так называемый benchmark-to-deployment gap, который недавно обнаружили авторы MemoryArena (He et al., 2026). Они взяли системы, которые показывают почти идеальные результаты на стандартных бенчмарках агентской памяти (LoCoMo, LongMemEval), и вставили их внутрь реальных агентских задач: веб-навигация, планирование с ограничениями, sequential reasoning.

    Вот примеры заданий из He et al., (2026):

    И в результате системы, которые давали под 95% на LoCoMo, проседали до 40-60% на MemoryArena. Похоже, что есть некоторая разница между “вспомнить факт” и “вспомнить факт так, чтобы опереться на него в решении задачи”, то есть между пассивным вспоминанием (recall) и активным использованием. У людей, кстати, подобный разрыв тоже может быть очень велик: в одних тестах на остаточные знания вчерашнего школьника просят вспомнить теорему Пифагора и площадь прямоугольника, а в других — посчитать, сколько рулонов обоев надо купить на комнату заданных размеров; и результаты в таких тестах бывают очень разные…

    В-четвёртых — и это уже чисто инженерное соображение — нормальная память должна уметь обновляться. Если агент два месяца назад запомнил, что пользователь живёт в Берлине, а вчера тот переехал в Лиссабон, что делать с фактом про Берлин? Забыть, обновить, хранить с пометкой “устарело”?

    Иначе говоря, память для агента должна представлять собой не просто длинный лог или базу данных в обычном понимании, а систему, дающую ответы на много разных вопросов: что хранить, как хранить, как обновлять, что выбрать при запросе, как объединить, как помечать противоречия, когда забыть и так далее.

    Таксономии, или как можно смотреть на структуру агентской памяти

    Прежде чем разбирать конкретные системы, давайте немного структурируем картину. Тем более что существуют как минимум три параллельные классификации для памяти агентов и её разных компонентов.

    Срез первый, нейропсихологический. Можно проводить аналогии с тем, как устроена память у человека. Например, ставшая уже классической CoALA (Cognitive Architectures for Language Agents; Sumers et al., 2024), которая пытается строить когнитивные архитектуры идёт от классификации памяти по Тульвингу и делит память агента на четыре типа:

    • рабочая память (working memory) — то, что прямо сейчас в контексте: “мы сейчас работаем над этим скриптом”;
    • эпизодическая память (episodic memory) — записи прошлых эпизодов с временной меткой: “вчера мы разговаривали про X”;
    • семантическая память (semantic memory) — фактические знания о мире: “пользователя зовут Алиса, она работает в Google”;
    • процедурная память (procedural memory) — навыки и выученные паттерны поведения: “когда пользователь спрашивает про X, нужно сначала посмотреть в Y”.

    Это удобная категоризация для понимания, что система памяти должна хранить, но она ничего не говорит про как.

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

    Почти все современные системы реализуют три основных операции (академические обзоры называют их formation / management / retrieval, а в терминах Hindsight это retain / recall / reflect, но по сути это одно и то же):

    • formation / retain — как информация попадает в память; здесь извлечение фактов, нормализация, сжатие, индексирование и т.д.;
    • retrieval / recall — как память возвращается на запрос: здесь может быть похожесть тех или иных вложений, полнотекстовый поиск, поиск по графу, фильтры по времени, переранжирование и т.д.;
    • management / reflect — как память эволюционирует при получении новых данных: консолидация, обновление, разрешение конфликтов, забывание и тому подобные процедуры.

    Все ведущие обзоры сходятся на том, что самые сложные и плохо решённые проблемы находятся в третьей части. Retrieval уже довольно неплохо умеет RAG-индустрия, да и обычный информационный поиск здесь вполне применим, formation тоже скорее инженерная работа; а вот разрешение конфликтов, темпоральные рассуждения, выборочное забывание и обновление знаний — это всё ещё фронтир, где происходит много интересного.

    Срез третий, идейный. Но ни первая, ни вторая классификация не рассказывает, как именно устроены системы. Поэтому я попробую дать свою собственную, по доминирующему методу; во многих пунктах, конечно, получился ровно один пример, но ладно, заодно это задаст структуру всему последующему обзору.

    1. Store-first + vector search — сохраняем всё как есть, ищем по сходству; яркие представители — MemPalace и некоторые варианты Supermemory.
    2. Extract-and-update — LLM извлекает из разговора факты, складывает в базу, при конфликте обновляет; например, Mem0.
    3. OS-like hierarchy — память делится на уровни, и есть явные вызовы инструментов для перемещения между ними; например, MemGPT и Letta.
    4. Temporal knowledge graphs — сущности, связи между ними, явная темпоральная структура; здесь Zep и Graphiti.
    5. Self-editing notes — атомарные заметки, которые переписываются задним числом при появлении новой информации; например, A-MEM.
    6. Verbal RL / reflection — словесный самоанализ как сигнал для обучения без реального обновления весов градиентным спуском; это Reflexion и рефлексии в Generative Agents.
    7. RL-trained memory management — обучаем стратегию “добавить / обновить / удалить” обучением с подкреплением по награде из downstream tasks; это Memory-R1.
    8. Multi-strategy parallel retrieval + fusion — память использует несколько стратегий поиска параллельно, а потом объединяет результаты через переранжирование; здесь как раз Hindsight и отчасти Graphiti.
    9. Graph-based associative recall — здесь к графу прибавляется персонализованный PageRank или что-то в таком духе; пример — HippoRAG.
    10. Bio-inspired consolidation — методы менеджмента памяти, вдохновлённые моделями памяти человека: консолидация памяти в несколько стадий, “сон”, gating; здесь к примерам относятся LightMem, SleepGate, EverMemOS.
    11. Compression-first — вместо retrieval пытаемся сжать длинный контекст в плотные наблюдения; так работает Mastra Observational Memory.

    На этом широкие мазки заканчиваются, и дальше я пройдусь по основным системам в этих категориях; не строго хронологически, но начнём с классики.

    Три столпа агентской памяти, или как всё началось

    Generative Agents: поток с взвешиванием

    Если у агентской памяти есть одна статья, с которой всё началось, то это она: “Generative Agents: Interactive Simulacra of Human Behavior “(Park et al., 2023). Это знаменитая работа про 25 агентов в симулируемом городке Smallville, где каждый агент прожил несколько “дней”, а один из них организовал вечеринку в честь Дня святого Валентина.

    Эту статью многие помнят, но обычно пересказывают общими словами (“ну, там агенты взаимодействовали”), а нам сейчас интересно именно внутреннее устройство агентов.

    Поток памяти. Память у Park et al. устроена как простой поток, memory stream — append-only лог наблюдений на естественном языке с временными метками. На каждый запрос агент ранжирует все воспоминания линейной комбинацией трёх нормированных скалярных компонент:

        \[\text{score} = \alpha_{\text{rec}} \cdot \text{recency} + \alpha_{\text{imp}} \cdot \text{importance} + \alpha_{\text{rel}} \cdot \text{relevance}.\]

    Давайте разберём каждый компонент.

    Recency — экспоненциальный decay с фактором 0.995 на каждый игровой час с момента последнего обращения к этому воспоминанию. То есть память живёт долго, но медленно истощается, и каждое обращение “освежает” её. Очень похоже на то, как устроена человеческая декларативная память.

    Importance — это самый интересный компонент. Его выставляет сама LLM. При записи воспоминания модели задают забавный вопрос: “On the scale of 1 to 10, where 1 is purely mundane (e.g., brushing teeth, making bed) and 10 is extremely poignant (e.g., a break up, college acceptance), rate the likely poignancy of the following piece of memory”. И авторы приводят конкретные примеры: “убрал комнату” → 2, “пригласил на свидание того, кто давно нравится” → 8. Это очень человекоцентричный подход, и на самом деле оказалось, что это очень неплохо работает — такая грубая шкала “насколько это вообще важно” оказалась достаточной для того, чтобы память не затапливалась рутиной.

    Relevance — косинусное расстояние между представлением запроса и представлением воспоминания. Это обычный семантический поиск.

    Любопытно, что все три коэффициента \alpha в официальной реализации равны единице; то есть никакого взвешивания авторы не предлагают. Но и без обучения коэффициентов получился хороший метод, который до сих пор используется как baseline.

    Рефлексия. Второй важный вклад Park et al. — это механизм рефлексии. Периодически, когда суммарный importance последних добавленных воспоминаний превышает некоторый порог, агент порождает три “важных” вопроса про недавний опыт, под каждый вопрос достаёт релевантные воспоминания и просит LLM синтезировать из них какой-нибудь “higher-level insight”. Пример из статьи: есть воспоминания “Клаус Мюллер читает книгу о джентрификации”, “Клаус Мюллер обсуждает свой исследовательский проект с библиотекарем” и “стол в библиотеке сейчас не занят”; из них можно породить вопрос вроде “Какая тема интересует Клауса Мюллера?”. После поиска ответа и его обдумывания получается новое воспоминание, которое записывается обратно в поток со ссылками на детей, от которых оно произошло. Получается дерево: в основании — сырые наблюдения, над ними — рефлексии, над рефлексиями — мета-рефлексии, и так далее:

    Вот это и есть субстрат памяти в данном случае: структура, в которой смысл постепенно кристаллизуется из сырых наблюдений.

    Заключение. Что получилось в симуляции? Авторы запустили миссию “Изабелла Родригес хочет организовать вечеринку на День святого Валентина” и посмотрели, как распространяется информация. За два игровых дня число агентов, знающих про вечеринку, выросло с 1 (4%) до 13 (52%), а 5 из 12 приглашённых реально пришли 14 февраля. Плотность социальных связей выросла с 0.167 до 0.74. В общем, для 2023 года такой “симулякр” выглядел очень убедительно.

    Почему я так подробно рассказываю про уже изрядно устаревшую работу Park et al.? Потому что это очень простой, но архетипичный метод. Почти всё, что было дальше в агентской памяти, — это либо уточнение какого-то из компонентов этой формулы, либо его замена на что-то более сложное. А сам шаблон в целом остаётся тем же.

    MemGPT / Letta: память как операционная система

    Следующая знаковая работа вышла через полгода: “MemGPT: Towards LLMs as Operating Systems” (Packer et al., 2023). Идея в том, чтобы попробовать на память для LLM посмотреть как на память в операционной системе: у неё ведь тоже ограниченное количество RAM, и есть уже развитые механизмы иерархических хранилищ, свопа и так далее — может быть, удастся перенести эти идеи на LLM?

    У MemGPT получилось два уровня. Главный контекст — это всё, что реально в промпте прямо сейчас:

    • системные инструкции — read-only, объясняют агенту, как пользоваться памятью;
    • рабочий контекст — фиксированного размера read/write блок, который LLM редактирует явными tool calls; по семантике это скорее всего персона агента и ключевые факты о пользователе;
    • FIFO -очередь — скользящее окно последних сообщений с рекурсивной суммаризацией выталкиваемого хвоста.

    Внешний контекст (то, чего в промпте нет) содержит:

    • хранилище для поиска (recall storage) — полный лог сообщений, по которому можно искать;
    • архивное хранилище — текстовое read/write хранилище, куда можно класть всё подряд.

    Главное здесь, конечно, в том, как агент этим пользуется. Есть набор tool calls: core_memory_append, core_memory_replace, archival_memory_insert, archival_memory_search, плюс поиск по recall storage. И LLM сама решает, когда что записать или прочитать, используя такой API к памяти.

    Была у MemGPT ещё одна идея, которую наследуют все современные агенты вроде Claude Code — это механизм memory pressure warnings. Когда токены в главном контексте пересекают “warning threshold”, система вставляет в разговор служебное сообщение вида “у тебя мало места, пора переместить что-то в архив”. Это аналогично page fault, и агент на него должен реагировать, как процесс в ОС на SIGSEGV; при таком запросе агент вынимает примерно половину окна и заменяет её рекурсивной саммари. Кстати, уже в 2023-м никакого fine-tuning для этого не было нужно, GPT-4 справлялся просто на промпте.

    Идейно MemGPT важен тем, что он первым реализовал принцип “агент управляет своей памятью сам”. До этого были системы, где память была пассивной — движок памяти что-то писал и читал, а агент просто пользовался результатами. Эта идея стала стандартным подходом и потом повторялась в сотне разных форм.

    Сейчас MemGPT живёт как фреймворк Letta, где те же принципы реализованы в более современном виде.

    Reflexion: вербальное обучение с подкреплением

    Третий столп — работа “Reflexion: Language Agents with Verbal Reinforcement Learning” (Shinn et al., 2023). Несмотря на название, здесь никакого дообучения по-прежнему нет, а есть его интересная имитация.

    Допустим, агент выполнял задачу, но ошибся и получил отрицательное вознаграждение. В классическом RL мы бы взяли градиент от функции потерь, обновили веса стратегии и запустили следующую эпоху. Идея рефлексии в том, чтобы вместо этого попросить LLM просто написать вслух, в чём была ошибка, а потом этот текст прицепить к промпту на следующей попытке. Таким образом весь “градиентный шаг” оказывается внутри контекста, и модель учится, не трогая ни одного параметра.

    Архитектура состоит из трёх модулей:

    • actor M_a — LLM, которая генерирует действия (обычно в ReAct-стиль: thoughts + actions + observations);
    • evaluator M_e — оценивает траекторию; в зависимости от задачи это может быть exact match, та или иная эвристика или LLM-as-a-judge;
    • self-reflection M_{sr} — отдельный вызов LLM, который принимает на вход полную траекторию \tau_t = [a_0, o_0, \ldots, a_i, o_i] и награду, а на выходе пишет postmortem: “вот здесь я ошибся, потому что X; в следующий раз нужно сначала Y”.

    Эти постмортемы складываются в буфер долгосрочной памяти, ограниченный 1-3 записями, которые прикладываются к промпту актора на следующей итерации.

    Авторы формулируют красиво: текстовая обратная связь даёт “семантический градиент“, конкретное направление для улучшения, выраженное в токенах, а не в числах. LLM преобразует бинарное “ты ошибся” в развёрнутый текст “ты забыл проверить кухонный ящик перед тем, как идти в холодильник”, и это даёт прямое указание, как поправить стратегию: in-context learning делает примерно то же, что градиентный шаг, только без всяких градиентов, не трогая LLM.

    Есть в этой работе и одно контринтуитивное наблюдение: больше рефлексий — не лучше. Ограничение в 1-3 записи сделано не по техническим причинам: при большем размере буфера агент начинает тонуть в противоречивых поучениях, и качество падает. Это тоже идея, к которой мы ещё вернёмся: сжатие памяти часто важнее, чем её накопление.

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

    Графы и нейронаука, или как добавить языковой модели гиппокамп

    HippoRAG

    Параллельно с простейшей идеей памяти как текстового лога шла линия исследований памяти как графа. Одна из самых красивых работ в этом направлении — “HippoRAG: Neurobiologically Inspired Long-Term Memory for LLMs” (Gutiérrez et al., 2024).

    Идея ясна из названия: давайте посмотрим, как устроена долгосрочная память у человека (ну, насколько мы её понимаем), и попробуем воспроизвести архитектуру. Упрощённо наша с вами структура памяти такова:

    • неокортекс обрабатывает сенсорную информацию и извлекает из неё “понятия”;
    • парагиппокампальная область детектирует похожесть между этими понятиями;
    • гиппокамп индексирует всё это как ассоциативный граф, сеть связей между понятиями и записями в памяти.

    И это всё отлично переносится на RAG:

    • неокортекс — это LLM, которая делает OpenIE (Open Information Extraction), то есть разбирает входные пассажи на триплеты (субъект, предикат, объект);
    • парагиппокамп — это retrieval encoder, который вычисляет косинус между вложениями сущностей и добавляет synonymy edges между теми, у кого он выше порога \tau = 0.8; иначе говоря, синонимичные понятия будут автоматически склеиваться в один узел, без всякого entity resolution;
    • гиппокамп — это граф знаний (schemaless knowledge graph), где узлы — это сущности, рёбра — отношения.

    А в ответ на запрос HippoRAG не бегает по графу в несколько шагов с помощью LLM (это было бы дорого и медленно), а вместо этого:

    • LLM извлекает из запроса именованные сущности;
    • эти сущности отображаются в узлы графа как “точки входа”;
    • запускается Personalized PageRank (PPR), который стартует с равной вероятностью в узлах из запроса, а потом итеративно распространяется по графу согласно матрице вероятностей переходов;
    • в итоге такого блуждания получается распределение вероятностей на всех узлах графа;
    • эти вероятности агрегируются обратно и дают собственно ранжирование.

    Это оказался действительно очень дешёвый и быстрый метод по сравнению с методами RAG, использующими несколько вызовов LLM подряд, а по сравнению с обычным one-shot RAG просто оказался лучше качеством.

    В HippoRAG 2 (Gutiérrez et al., 2025) авторы починили один из главных недостатков первой версии: на простых фактоидных вопросах HippoRAG иногда проигрывал обычному RAG, потому что диффузия на графе размывала простые случаи. Во второй версии добавлена более осмысленная интеграция пассажей из памяти, что помогло лучше строить ассоциативные связи:

    Правда, такой подход добавляет и проблем тоже. Многие ошибки теперь приходят из NER / entity extraction, то есть не из поиска по графу, а из того, что LLM не смогла правильно вытащить сущности из текста. По сути, HippoRAG и подобные идеи очень хорошо справляются с самой памятью, и если вы можете построить идеальный граф знаний, дальше примерно так и надо действовать; но работают они настолько хорошо, насколько хорошо работает OpenIE, то есть построение графа знаний.

    Zep / Graphiti: графы с учётом времени

    В наше время до продакшена аналогичную по духу идею довели система Zep и её движок памяти Graphiti (Rasmussen et al., 2025). Ключевая инновация — bi-temporal knowledge graph, в котором каждый факт хранит две отметки времени: valid_at (когда этот факт стал верен) и invalid_at (когда он перестал быть верен).

    Если в январе пользователь сказал “я живу в Берлине”, а в марте — “я переехал в Лиссабон”, то первый факт не удаляется, ему просто проставляется invalid_at = март. И на запрос “где пользователь жил в феврале?” система возвращает правильный ответ.

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

    В целом Graphiti сейчас одно из самых разработанных и популярных решений, и если вам нужно долговременное хранилище с темпоральной логикой, доступной для аудита (скажем, вам важно знать, что ваш чатбот “думал” в какой момент), Graphiti можно порекомендовать.

    Изменяемая память, или как переписывать свои собственные воспоминания

    Ещё один интересный архитектурный поворот — идея о том, что память должна быть изменяемой, mutable. Большинство систем, о которых мы говорили, только добавляют новые элементы, но человеческая память, как мы знаем уже сто лет, постоянно консолидируется заново — старые воспоминания переписываются под действием новых. Вот иллюстрация из Xu et al. (2025):

    Две недавние работы попробовали воспроизвести это свойство в LLM-агентах.

    A-MEM: Zettelkasten для моделей

    A-MEM: Agentic Memory for LLM Agents (Xu et al., 2025) берёт за основу метод Zettelkasten — систему карточек, придуманную немецким социологом Луманом в 1970-х и популярную сейчас у адептов Obsidian. Идея в том, что каждое воспоминание — это атомарная заметка, которая ссылается на другие заметки, и граф этих ссылок и есть ваша “внешняя память”.

    В A-MEM каждая заметка — это запись из семи полей:

    • исходный сырой контент c_i ;
    • timestamp t_i;
    • ключевые слова / понятия K_i , выделенные LLM;
    • теги G_i, то есть категории, тоже выставленные LLM;
    • контекстуальное описание X_i — полнотекстовое описание, сгенерированное LLM;
    • векторное представление e_i, которое нужно, чтобы считать похожесть;
    • связи L_i — идентификаторы связанных заметок.

    Когда появляется новая заметка, A-MEM находит top-k ближайших существующих по вложению, а потом просит LLM проанализировать каждую пару и решить, нужно ли создать связь.

    Killer feature здесь в том, что когда новая заметка подсоединяется к старой, LLM просят обновить контекстное описание, ключевые слова и тэги у старой заметки в свете новой информации. Просят буквально: “вот старая заметка X, вот новая Y, которая с ней связана, а теперь перепиши X так, чтобы она учитывала, что тебе рассказала Y”. Авторы называют это memory evolution: старые воспоминания эволюционируют по мере накопления новых.

    Memory-R1: add/update/delete через RL

    Наша следующая работа всё-таки делает тот самый шаг и переходит к дообучению, но дообучению не самой LLM, а специализированных агентов управления памятью.

    Статья “Memory-R1: Enhancing Large Language Model Agents to Manage and Utilize Memories via Reinforcement Learning” (Yan et al., 2025) не предлагает вручную выписывать правила обновления памяти и не оставляет это на откуп стандартной LLM, а выучивает их через RL.

    Агент выбирает для каждого нового кусочка информации одно из четырёх действий: ADD, UPDATE, DELETE, NOOP. Вот сравнение с использованием LLM для этого:

    Награда получается по окончательным ответам агента на собственно задачи, downstream tasks. Прямых меток “какая операция правильная” у нас вообще нет, взять их неоткуда, и мы обучаемся по результату: если сгенерированный в итоге ответ оказался верным, политика награждается.

        \[R_{\text{answer}} = \text{EM}(y_{\text{pred}}, y_{\text{gold}}).\]

    Разумеется, это классическая задача обучения с подкреплением; авторы пробуют PPO и GRPO (Group Relative Policy Optimization — тот самый алгоритм, который предложил в своё время DeepSeek). GRPO, кстати, сходится быстрее благодаря групповой нормализации, но в итоге оба приходят примерно к одной точке.

    Особенно любопытен в этой работе размер обучающей выборки: всего 152 QA-пары. И этого крохотного датасета хватает, чтобы получить существенный прирост относительно предыдущих решений вроде MemoryOS.

    В Memory-R1 мы наконец-то встречаем в агентской памяти формулировку, которая честно признаёт, что операции с памятью — это сложная задача, и мы не сможем всегда выбирать правильные операции простым алгоритмом, надо обучаться.

    Лично мне кажется, что это одно из самых перспективных направлений, и я уверен, что оно в ближайшем будущем ещё принесёт много интересных плодов. Но кажется, что лучшие решения, которые можно использовать прямо сейчас, всё-таки пока не обучаются управлять памятью через RL; давайте эти самые решения и рассмотрим.

    Open-source фреймворки, или что можно взять и использовать прямо сейчас

    Теперь давайте быстро пробежимся по тому, что можно реально взять и поставить в продакшн. Я сам не то чтобы практик, и точно не хочу превращать пост в обзор репозиториев, но пропустить этот раздел тоже нельзя, потому что на практике большинство людей запускает именно вот такие готовые штуки.

    Mem0: простой API, большое сообщество

    Mem0 (Chhikara et al., 2025) — кажется, чемпион среди memory ecosystems по числу звёзд на GitHub. Под капотом у него Qdrant / Chroma / PGVector для семантического поиска, key-value store для структурных запросов, опционально Neo4j для хранения графа. Когда вы вызываете add(), LLM извлекает из сообщения факты и предпочтения, сохраняет их, дедуплицирует, при конфликте обновляет. Когда вызываете search() — ранжирует всё по весам relevance / importance / recency.

    Главное достоинство — очень простой API, реально одна строчка добавляет память, и Mem0 до сих пор представляет собой хороший baseline, который легко использовать.

    Letta (MemGPT) и Zep / Graphiti

    Это тоже популярные фреймворки на практике, но про них я уже рассказывал выше, здесь только упомяну: Letta — это продуктовая реинкарнация MemGPT, а Zep / Graphiti — один из лучших вариантов графовой памяти с очень быстрым поиском.

    LangChain / LangMem, LlamaIndex, CrewAI, Cognee

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

    Самый популярный такой фреймворк — LangChain. В нём, конечно же, есть модуль LangMem, в котором очень просто реализована процедурная память: агент переписывает собственный system prompt по мере обучения.

    У LlamaIndex есть механизм памяти в виде composable memory blocks с приоритетным бюджетом токенов.

    В фреймворке CrewAI есть мультиагентная общая память, похожая на первую работу, которую мы обсуждали, Park et al. (2023). Там даже есть явные веса recency / similarity / importance.

    Отдельно отмечу Cognee, которая представляет собой отдельную библиотеку памяти с движком на базе пайплайна “Extract → Cognify → Load”. Cognee можно встраивать куда угодно, например в виде плагина для Claude Code:

    В общем, если вы уже делаете LLM-based агентов в каком-то конкретном стеке, скорее всего, у вас уже есть под рукой тот или иной механизм памяти.

    Большая тройка

    Ну и напоследок упомяну, что происходит на фронтире: в течение 2025 года все три главных игрока — OpenAI, Anthropic и Google — добавили персистентную память с возможностью импорта и экспорта. Причём подходы у них философски разные: ChatGPT и Gemini хранят память прозрачно и используют её автоматически, а у Claude каждый разговор начинается с чистого листа, а память подгружается только через явные tool calls, видимые пользователю.

    Вот подробное описание того, как работает память в Claude. Особых интересных деталей про устройство автоматической памяти там не написано, но видно, что Anthropic явно считает файлы вроде CLAUDE.md тоже механизмом памяти (отдельным от внутренней памяти).

    Что на фронтире, или биомимикрия, мультиграфы и крепкий сон для LLM-агентов

    В последний год память для LLM-агентов развивалась, конечно, очень бурно. Если пытаться расписывать каждое направление подробно, выйдет обзор на сто страниц, но немного пройдусь по основным идеям, чтобы было понятно, куда смотреть.

    Эмуляция сна: явная консолидация памяти

    LightMem (Fang et al., 2025) и родственные работы пытаются построить аналог многостадийной модели памяти Аткинсона-Шиффрина, построенной ещё в 1960-х:

    Для нас тут интересно наличие явного обновления во время сна: консолидация памяти отделена от её применения и происходит в фоновом режиме. Это можно реализовать и в LLM-агентах как “сон” между вызовами. В LightMem главная мотивация для такого сна состоит в том, чтобы ускорить потом вызов агента, потому что ему не нужно будет во время инференса заниматься консолидацией памяти:

    SleepGate (Xie, март 2026) борется с proactive interference — тем самым эффектом, когда накопленная устаревшая информация приводит к деградации поиска:

    Это похоже на LightMem идейно, но сделано интереснее с математической точки зрения: обновляется здесь не просто абстрактное хранилище памяти, а прямо KV-кэш.

    Новые примитивы для хранения элементов памяти

    EverMemOS (Hu et al., январь 2026) вводит примитив MemCell, в который конвертируются факты, куски диалогов и вообще всё, что хочется запомнить, организует MemCells в MemScenes и потом устраивает на них retrieval:

    MAGMA (Jiang et al., январь 2026) строит multi-relational подграфы (entity, episodic, temporal, semantic) и добавляет Temporal Inference Engine, которая приводит темпоральные выражения в хронологическое представление.

    Новые принципы работы с памятью

    Nemori (Nan et al., 2025) применяет принцип свободной энергии, как его понимают в нейронауках: агент предсказывает содержание эпизода из имеющейся базы знаний, и разрыв между предсказанием и реальностью определяет, что именно нужно добавлять в память.

    Иначе говоря, новая информация попадает в память, только если она представляет собой “сюрприз” относительно уже известного. Это красивая идея, которая связана с моей любимой теорией предсказательного кодирования и хорошо подкреплена теорией.

    В общем, на фронтире, как всегда, сотни статей и десятки идей, и каждая из них утверждает, что лучше всех именно она. Чем они это подкрепляют?

    Бенчмарки, или как мы измеряем память

    Я никогда не любил цитировать числа на бенчмарках и проценты прироста; мне всегда казалось, что главное идеи, а циферки дело наживное и вообще десятое. Но всё-таки пора сказать пару слов и про бенчмарки, потому что при реальном выборе того, чем пользоваться, надо понимать слова “система A даёт 91% на X, а система B — 89% на Y”. Но они ничего не значат, если не понимаешь, что именно измеряют X и Y.

    LoCoMo (Maharana et al., 2024) — пожалуй, главный датасет для памяти, использующий очень длинные диалоги: по 300 ходов, 35 сессий на диалог, пять типов вопросов (single-hop, multi-hop, temporal, commonsense, adversarial), диалоги с событиями и даже мультимодальными элементами.

    LoCoMo стал де-факто стандартом для long-term conversational memory, но здесь важно отметить, что на LoCoMo длинные контексты моделей могут частично решать задачу и вовсе без внешней памяти, просто запихнув всё в контекст. Так что проценты на LoCoMo сильно зависят от базовой LLM и могут в основном ею и обеспечиваться.

    LongMemEval (Wu et al., 2024) — 500 вопросов и пять способностей систем, которые здесь проверяются: information extraction, multi-session reasoning, temporal reasoning, knowledge updates, abstention.

    На момент выхода даже GPT-4o в full-context режиме (~115K токенов) даёт всего 30-70%; этот датасет сложнее LoCoMo, и его сложнее решить просто длинным контекстом.

    BEAM (Beyond a Million Tokens; Tavakoli et al., 2025) — 2000 валидированных вопросов и 10 миллионов токенов контекста, проверяющих десять различных способностей, в том числе разрешение противоречий и упорядочивание событий. Датасет, конечно, порождён не без LLM, но аккуратно:

    При таком масштабе контекста уже никакие базовые модели не работают: вам непременно будет нужна правильная архитектура памяти.

    Сию секунду на BEAM лидером является система Hindsight с 64.1%, причём следующая запись в leaderboard даёт только 40.6%. Разрыв очень большой, так что давайте его отметим, а про Hindsight поговорим ниже подробнее.

    MemoryArena (He et al., 2026) — ещё один очень популярный бенчмарк, о котором я говорил в начале поста. Он измеряет память внутри стандартных агентских задач: веб-навигация, планирование, sequential reasoning.

    Как мы уже обсуждали, результат здесь в том, что модели, которые могут давать 95% на LoCoMo в чистом воспоминании, набирают только 40-60% на MemoryArena, где факты из памяти надо использовать. Мне кажется, MemoryArena (и её родственник Mem2ActBench) станут главными бенчмарками для оценки систем памяти в 2026 году, потому что они ставят правильный практический вопрос.

    HaluMem (Chen et al., 2025) — это отдельный бенчмарк, измеряющий галлюцинации в самих операциях с памятью, то есть при извлечении фактов и порождении того, что попадает в память. Вот примеры галлюцинаций из HaluMem:

    Это особенно важно для систем, которые используют LLM для порождения записей в памяти, потому что если LLM при записи факта что-то выдумает, этот выдуманный факт навсегда останется в базе. И HaluMem проверяет как раз эти галлюцинации при извлечении фактов:

    MemPalace, или что же там всё-таки Милла Йовович

    Ну что ж, вот мы и подошли к главному поводу для поста. MemPalace сделали вдвоём Милла Йовович и Бен Сигман, основной её технический соавтор. Репозиторий появился 5 апреля 2026 года, за пару дней набрал около тысячи звёзд, и на момент написания поста активно обсуждается в индустрии.

    MemPalace берёт за основу метод локусов (method of loci) — восходящую ещё к Древней Греции мнемоническую технику, которой пользовались ораторы: чтобы запомнить длинную речь, нужно “расставить” её фрагменты в воображаемом здании, а потом мысленно идти по комнатам и “подбирать” каждую часть. От этой техники и происходит выражение memory palace, которое по-русски принято называть “чертогами разума”.

    По идее, MemPalace хранит память в виде пространственной иерархии:

    • wings — “крылья” верхнего уровня, каждый посвящён человеку или проекту;
    • rooms — комнаты внутри крыла, посвящённые конкретным темам;
    • halls — “коридоры” памяти, общие для всех крыльев, с пятью фиксированными категориями: facts, events, discoveries, preferences, advice;
    • tunnels — прямые сквозные связи, когда одна и та же комната существует в разных крыльях;
    • closets — сокращённые саммари, ссылающиеся на оригиналы;
    • drawers — сами оригинальные файлы, хранящиеся полностью и никогда не суммаризуемые.

    Вот картинка из поста Николаса Родса с анализом MemPalace:

    Организационно это красиво и очень по-человечески. Вы реально можете себе представить эту структуру, в отличие от векторного хранилища с миллионом записей.

    Вторая ключевая особенность — zero-LLM write path, то есть при сохранении в память не вызываются LLM, а используются только детерминированные правила. LLM включаются только в момент чтения, для переранжирования и рефлексии.

    Третья интересная особенность — AAAK compression, специальный диалект, который регулярными выражениями упаковывает повторяющиеся сущности в короткие коды и структурные маркеры. Идея в том, что любая современная LLM может в принципе читать этот сжатый формат без декодера, а сжатие действительно очень серьёзное, в десятки раз по сравнению с обычным текстом. Это и правда интересная идея.

    Но вот дальше…

    В общем, при внимательном анализе выяснилось, что MemPalace вообще не работает. Например, он заявляет 96.6% Recall@5 на LongMemEval в режиме “raw verbatim, zero API calls”. Это, если принимать на веру, больше, чем у всех конкурентов, и авторы пишут “the highest published result”. Но на самом деле 96.6% получается в режиме, в котором:

    • документы LongMemEval хранятся дословно в ChromaDB;
    • поиск — дефолтный embedding search из ChromaDB;
    • и никакие wings, rooms, halls, tunnels и closets в собственно retrieval не участвуют.

    То есть 96.6% — это, по сути, метрика качества дефолтных эмбеддингов ChromaDB на LongMemEval, не имеющая никакого отношения к “дворцовой архитектуре”. Более того, при попытке включить собственно механизмы “чертогов разума” числа уменьшаются, и лучшим остаётся raw-режим. А на том же LoCoMo, где простое решение на эмбеддингах работает хуже, MemPalace даёт 60.3% R@10, что заметно меньше Hindsight (89.61%) и даже MAGMA (70%).

    Ну и просто рекомендую прочитать этот тред, в нём ещё много ярких примеров.

    К чести авторов, 7 апреля 2026 они выпустили обновление README, подписанное “Milla Jovovich & Ben Sigman”, в котором признают ряд ошибок и заявляют, что будут их исправлять.

    На самом деле сам концепт такой организации памяти в форме пространственной иерархии — это интересно, и не только как метафора, но и как, например, отличный способ улучшить интерпретируемость. Но пока это всё, похоже, совсем не production-ready, пусть Милла с Беном ещё поработают.

    А о том, что работает прямо сейчас, поговорим в следующем разделе.

    Hindsight, или современный пример хорошей системы агентской памяти

    Система Hindsight (репозиторий) описана в работе “Hindsight is 20/20: Building Agent Memory that Retains, Recalls, and Reflects” (Latimer et al., 2025). На мой взгляд, это отличная система, которая и теоретически интересна, и практически достигает высоких результатов.

    Без большого собственного опыта я, конечно, не возьмусь сказать, что Hindsight строго лучшая память для LLM-агентов, но выбрал именно её как пример современной системы для подробного разбора. Тем более что, как говорит, разумеется, табличка из той же статьи, Hindsight включает в себя много разных компонентов, которые по отдельности встречаются в других системах:

    Давайте разбираться.

    Четыре сети памяти

    Hindsight разбивает память агента на четыре эпистемически разные сети:

    • world network \mathcal{W} содержит объективные факты о мире, вроде “Париж — столица Франции”;
    • еxperience network \mathcal{B} — опыт самого агента, от первого лица: “я спросил у Алисы про X, она ответила Y” или “Я пытался применить подход Z, и он не сработал”;
    • observation network \mathcal{S} — синтезированные профили сущностей (entity summaries), построенные из \mathcal{W} и \mathcal{B}; они должны быть скорее нейтральными и автоматически обновляться при поступлении новой информации;
    • opinion network \mathcal{O} — субъективные убеждения с оценкой уверенности c \in [0, 1] и временной меткой: “Я думаю, что Y — неплохая идея (confidence 0.7, обновлено в марте)”.

    Каждый memory unit хранит собственно текст, его векторное представление, интервал occurrence time, время упоминания, тип сети, опционально confidence и метаданные.

    А потом при действиях типа reflect агент может перерабатывать и обновлять свои мнения, не трогая базовые факты; а на запрос он может искать “что я знаю про X” отдельно от “что я думаю про X”. Здесь на самом деле интересный эффект: Hindsight строит архитектуру исходя из эпистемологии, и это, видимо, оказывается важно, другие системы так не делали.

    Вот общая высокоуровневая схема:

    TEMPR: параллельный multi-strategy retrieval с RRF

    Recall в Hindsight реализован через компонент TEMPR (Temporal Entity Memory Priming Retrieval). На каждый запрос параллельно запускаются четыре стратегии извлечения.

    1. Semantic — косинусная похожесть через HNSW-индекс на pgvector.
    2. Keyword — обычный полнотекстовый BM25.
    3. Graph — распространение активации по графу, где узлы — сущности, а рёбра — entity/temporal/semantic/causal связи.
    4. Temporal Graph — rule-based и seq2seq парсинг дат, нормализация темпоральных выражений и сравнение memory occurrence intervals.

    Несколько стратегий здесь нужны, потому что разные вопросы требуют разных стратегий: “Когда я последний раз говорил про X?” — temporal graph; “Что я знаю про компанию Google?” — entity graph; “Какие мои заметки похожи по смыслу на эту идею?” — semantic; “Когда мы раньше упоминали Kubernetes?” — это чистый BM25.

    А потом все четыре списка результатов сливаются через Reciprocal Rank Fusion (RRF):

        \[\text{RRF}(f) = \sum_{i} \frac{1}{k + \text{rank}_i(f)}.\]

    Здесь f — конкретный memory unit, \text{rank}_i(f) — его ранг в списке от i-й стратегии, а k — сглаживающая константа (обычно около 60). Идея RRF очень простая: вклад стратегии в общий рейтинг элемента обратно пропорционален его рангу в этой стратегии, причём k делает так, что топ-1 и топ-2 отличаются не слишком радикально, а топ-50 и топ-100 — практически одинаковы. Это хорошая базовая стратегия для ансамблирования в данном случае.

    Но потом есть ещё и относительно тяжёлая модель-reranker (cross-encoder), через которую проходят результаты RRF, так что общая схема такова:

    CARA: reflect в приоритетном порядке

    Reflect в Hindsight реализован через компонент CARA (Coherent Adaptive Reasoning Agents). Когда агент хочет “подумать” о чём-то, CARA:

    • вызывает TEMPR, чтобы достать релевантные memory units из всех четырёх сетей;
    • загружает behavioral profile агента и background;
    • порождает ответ, при этом обрабатывая память в приоритетном порядке: сначала opinions и observations (синтезированные данные), потом — raw world/experience facts; иначе говоря, система сначала смотрит, не думала ли уже об этом и не приходила ли к выводам, и возвращается к сырым фактам только по необходимости;
    • формирует новые opinions с confidence scores;
    • обновляет opinion network.

    Это и есть механизм структурированной рефлексии, но с явной эпистемической иерархией. Новые убеждения записываются обратно в базу, и следующий recall их уже увидит. Получается настоящий цикл обучения — агент действительно меняется по мере работы.

    Вот структура работы CARA:

    А вот общая иллюстрация архитектуры Hindsight со всеми компонентами, которые мы пока что обсудили:

    Disposition parameters: личность агента влияет и на память

    Ещё одна штука, которая мне лично показалась очень интересной, — это disposition parameters (параметры предрасположения). У Hindsight-агента можно задать три личностные черты на шкале 1-5:

    • скептицизм (skepticism; 1 trusting → 5 skeptical),
    • буквальность (literalism; 1 flexible → 5 literal),
    • эмпатия (empathy; 1 detached → 5 empathetic),

    плюс параметр bias strength \in [0, 1], который задаёт, насколько сильно эти параметры влияют на порождение. В терминах реализации это просто часть системного промпта, но она оказывает заметное влияние на результат.

    Суть в том, что в разных проектах нужен разный “стиль” интерпретации памяти. Для аналитического агента можно поставить skepticism = 4, literalism = 4, empathy = 1, а для ассистента, с которым надо поговорить по душам — skepticism = 2, empathy = 4. Это меняет то, как он цепляется за свидетельства во время фазы reflect.

    Из одних и тех же фактов агенты с двумя разными параметрами сделают совсем разные выводы:

    Это, по-моему, отличная идея, которая одновременно и легко интерпретируется, и улучшает результаты.

    Цифры

    И всё-таки, раз уж обсудили бенчмарки, давайте и про циферки упомянем, потому что здесь они шикарные. На LongMemEval S setting, 500 вопросов:

    То есть Hindsight с открытой 20-миллиардной моделью обходит full-context GPT-4o (1.7 триллиона параметров, кажется?) на LongMemEval более чем на 23 очка.

    На LoCoMo опять побеждает Hindsight с очень значительным отрывом:

    А последняя новость, уже не из статьи, а из поста авторов от 2 апреля 2026, состоит в тестировании на BEAM, свежем бенчмарке, который мы обсуждали выше:

    И здесь тоже мы видим 64.1% против 40.6% у следующей системы в самом сложном варианте.

    Главное в этих результатах не в том, что Hindsight занял первую строчку, а в самих значениях отрывов — на десятки процентов практически везде, где это возможно! И тот самый обзор “Memory in the Age of AI Agents” (Hu et al., 2025), на который я ссылался выше, оценивает Hindsight как систему, занимающую первое место в Agent Memory Benchmark (AMB) в совокупности по LongMemEval, LoCoMo, BEAM, LifeBench и PersonaMem.

    Так что если нужно что-то взять в production прямо сейчас, я бы брал именно Hindsight. Да и для подробного обзора хорошая система, потому что в ней все базовые системы достаточно продвинутые, но не безумно сложные.

    Выводы и заключение

    Попытаюсь сделать несколько общих выводов из всех работ, которые я тут перечитал и пересказал.

    Во-первых, качество retrieval-стратегии важнее сложности хранилища. Hindsight побеждает на бенчмарках не потому, что у него какая-то хитрая база данных, а потому, что у него четыре стратегии извлечения с RRF-слиянием. HippoRAG побеждает на multi-hop не потому, что у него навороченный knowledge graph, а потому, что он делает один шаг PPR вместо трёх LLM-вызовов. Системы, которые полагаются исключительно на векторную похожесть, стабильно проигрывают.

    Во-вторых, бенчмарки бенчмаркам рознь. Это давно всем известно, но вот и задокументировано в MemoryArena: система, которая даёт 95% на LoCoMo, может давать 40% на реальной агентской задаче. Не уверен, что мы с этим разрывом скоро разберёмся, но как минимум MemoryArena и Mem2ActBench задают правильные вопросы, и это уже прогресс.

    В-третьих, архитектуры памяти начинают учиться. Memory-R1 — это, по-моему, самое важное из того, что вышло в 2025-2026. Он показывает, что политику управления памятью можно учить на ~150 примерах по downstream reward. Плюс ещё и bio-inspired направление (LightMem, SleepGate, EverMemOS) двигается в ту же сторону. Мне кажется, что в ближайшие пару лет написанные вручную стратегии управления памятью постепенно уступят обучаемым.

    А в целом это одна из самых интересных областей в прикладных LLM прямо сейчас. Год назад казалось, что агенты упираются в недостаточно хорошие рассуждения; полгода назад — что в tool use; а сейчас я всё больше уверен, что следующее важное “узкое место” — это именно память. А вот Милла Йовович, увы, подвела.

    Сергей Николенко

    P.S. Прокомментировать и обсудить пост можно в канале «Sineкура»: присоединяйтесь!