Blog

  • PEPPERED: An Existential Platformer

    PEPPERED: An Existential Platformer

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

    Стажёр против конца света

    PEPPERED: an existential platformer вышла весной 2025 года; это первая игра маленькой берлинской студии Mostly Games.

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

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

    Поэтому спасать всех приходится офисной стажёрке, которая только пришла на собеседование.

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

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

    Капитализм переживёт даже конец света

    Сатира в PEPPERED очень стандартная: она направлена на бессмысленную офисную работу, начальников, корпоративную мотивацию, телевидение, полицию, потребление и людей, которые готовы защищать статус кво даже за пять минут до гибели мира. Ничего особенно нового на эту тему игра не говорит, и какая-нибудь The Stanley Parable, конечно, делает такую сатиру куда лучше.

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

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

    You Have One Shot

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

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

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

    Здесь PEPPERED, конечно, делает прямые отсылки на OneShot, о которой я писал раньше. Буквально повторяет слоган (you have one shot), отчасти стилистику (милый ушастый герой в пиксельном погибающем мире), а главное в том, что обе игры пытаются отучить игрока воспринимать сохранение как машину времени и заставляют считаться с тем, что мир что-то помнит.

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

    Средний, но очень разнообразный платформер

    А что, собственно, с геймплеем? Он… нормальный. Вы будете бегать, прыгать, делать рывок, иногда стрелять; встречаются движущиеся платформы, шипы, лазеры и боссы с несколькими фазами. Управление отзывчивое, чекпойнты в обычных секциях расставлены гуманно, но какого-то особенного удовольствия от платформинга я не почувствовал, это не Celeste и не Super Meat Boy.

    Но это и не главное, потому что PEPPERED всё время меняет правила. То это обычный платформер, то стелс, то погоня на магазинной тележке, то перестрелка, то презентация в офисе, то внезапно почти Worms с гольфом. Даже офисное кресло здесь становится транспортным средством. Ни одна из этих механик не раскрывается особенно глубоко; многие появляются ровно на один эпизод и тут же выбрасываются. Но это тот случай, когда некоторая поверхностность идёт игре на пользу. Она не успевает надоесть.

    Всё-таки главное — история

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

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

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

    Заключение

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

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

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

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

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

    Введение

    Полтора месяца назад я писал о том, как внутренняя модель 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кура»: присоединяйтесь!

  • Train Valley Origins

    Train Valley Origins

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

    Разработчик Flazm из Вильнюса — точно наши люди; я когда-то, кажется, играл то ли в Train Valley, то ли в Train Valley 2, и у первой на Steam в графе Developer стоит “Alexey Davydov, Sergey Dvoynikov, Timofey Shargorodskiy”. Авторы любят паровозики и верны своей любви: первая Train Valley вышла ещё в 2015-м.

    Но в первую и вторую часть я если и играл, то не доиграл, а вот Train Valley Origins как-то между делом прошёл до конца. Суть игры классическая и прямолинейная: нужно соединять расположенные на поле станции рельсами и пускать по ним поезда.

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

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

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

    Вот, собственно, и всё. Ненавязчивая музыка, сорок уровней, объединённых четырьмя темами вроде Дикого Запада или Китая. Но очень успокаивает и затягивает; мне даже немного стыдно того, сколько времени я в итоге провёл в этой игре. Антистресс в чистом виде, да ещё и мозги всё-таки включать приходится время от времени. Рекомендую.

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

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

  • Curyeux

    Curyeux

    Curyeux — это простой милый платформер с любопытной историей; вот первое, что мы видим при запуске игры:

    И это действительно студенческий проект: игру собрали выпускники Campus ADN, франкоязычного государственного колледжа игровых профессий в Монреале. Колледж был основан в 2005 году как Campus Ubisoft и только в 2011-м сменил имя. Выпускной проект там устроен как “симуляция предприятия”: студенты разных программ объединяются в одну большую команду и делают настоящую игру с релизом в Steam. Cureyux — как раз такая игра, и, кстати, поэтому распространяется бесплатно: школе было бы странно зарабатывать на работах студентов, которые и так платят за обучение.

    Играем мы за художницу по имени Люсьенн Грегуар и путешествуем по её воспоминаниям и внутренним мирам.

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

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

    Так что лучше скажу, за что проект хочется хвалить безо всяких скидок. Во-первых, это очень крутоый визуал. Уровни устроены похоже по сути (беги, прыгай, решай несложные головоломки на восприятие), но стилистически все очень разные: карандашные наброски, акварель, яркие экспрессивные мазки. Каждый мир имеет свой стиль, и переходы между этими стилями производят впечатление.

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

    В общем, Curyeux — это тот случай, когда рекомендовать легко и приятно: игра бесплатная, короткая и красивая. Не гениальный платформер, конечно, но приятный. Рекомендую.

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

    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кура»: присоединяйтесь!

  • Skin Deep

    Skin Deep

    Сегодня у нас редкий для меня жанр: immersive sim. Я, честно говоря, всегда относился к этому жанру с уважением, но издалека: всю жизнь хотел попробовать пройти классические immersive sims вроде Dishonored или Prey, но так и не собрался. Казалось, что это требует больше времени и вовлечённости, чем у меня обычно есть.

    Skin Deep в этом смысле оказалась прекрасной точкой входа. Это довольно простой представитель жанра — без прокачки, без разветвлённых квестов, без огромных хабов — но при этом настоящий, честный immersive sim, в котором системы действительно взаимодействуют друг с другом. И мне очень понравилось!

    Кто и как это сделал

    Skin Deep — игра Брендона Чанга (Brendon Chung) и его маленькой студии Blendo Games. Я раньше про этих разработчиков ничего не слышал, но с интересом узнал, что в узких кругах студия довольно культовая. Давайте я не буду пока ничего говорить об их предыдущих играх, потому что стало реально интересно, и может быть, я вам о них ещё расскажу подробнее когда-нибудь потом.

    Разработка Skin Deep началась в июле 2018 года и заняла почти семь лет, до весны 2025-го, а издала её Annapurna Interactive (кто же ещё!). Крутая деталь: игра 2025 года была сделана на id Tech 4, движке Doom 3, которому больше двадцати лет (точнее, на его опенсорсном порте dhewm3). Чанг объяснял выбор тем, что хотел “вневременной” внешний вид и что у движка “аккуратная и опрятная” кодовая база. А через полтора месяца после релиза Blendo выложили исходный код Skin Deep на GitHub под GPL — ассеты, понятное дело, остались проприетарными, но сам код можно читать и переиспользовать. По-моему, это прекрасно и как жест, и как напоминание, что для хорошей игры не обязателен Unreal Engine 5.

    Пиратство, страхование и котики

    Завязка сюжета такова. В будущем страховые корпорации придумали гениальный способ защищать ценные грузы: замораживать специально обученного человека — “insurance commando” — и хранить его на борту грузового звездолёта. Если космические пираты захватывают корабль и срабатывает тревога, коммандо размораживается, делает глубокий вдох и разбирается с ситуацией. Вы играете за Нину Пасадену, лучшего оперативника корпорации MIAO Corp.

    Да, именно MIAO, потому что экипажи кораблей в этой вселенной — коты. Обычные (разве что низкополигональные) коты: капитаны, штурманы, механики. Пираты из банды Numb Bunch захватывают корабль за кораблём, запирают котиков в клетки, и Нина в каждой миссии должна прокрасться по кораблю, перебить или обойти пиратов, спасти всех котов и отправить их в спасательной капсуле.

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

    Юмор здесь вообще является основой всех уровней мироустройства, и он хороший. Из-за “осложнений процесса глубокой заморозки” Нине не полагается ни оружия, ни обуви — официальный слоган игры звучит как “You’re outnumbered, outgunned, and have no shoes”. Босые ноги — это игровая механика: если наступить на битое стекло, осколок застрянет в пятке, и придётся его вытаскивать, пока Нина хромает и оставляет кровавые следы. Сам Чанг говорил, что Skin Deep — это “Крепкий орешек, куда добавили больше комедии”.

    Корабль Нины, кстати, тоже сделан, и сделан с любовью — крохотный, но обжитой:

    Геймплей: всё взаимодействует со всем

    Но главное в Skin Deep — это, конечно, механики. Игра полностью заслуживает звания immersive sim: здесь практически любой предмет можно подобрать, бросить, применить, и практически всё взаимодействует со всем осмысленным (и часто забавным) образом.

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

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

    Сама Нина в космосе может дышать и жить без скафандра, и это тоже в мир игры как-то вшито (белыми нитками, если честно, но там всё так, жанр такой).

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

    И все эти системы работают одновременно, давая некоторый синергетический эффект, как и положено в immersive sim. Но при этом всё достаточно просто, так что игра не душит, а радует многообразием.

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

    И темп тоже отличный, игра заканчивается раньше, чем механики успевают по-настоящему надоесть. На полное прохождение нужно часов 10-12.

    А ещё есть сюжет

    Причём не только фоновый. Между миссиями Нина в свободное от разморозки время ведёт собственное расследование — выслеживает лидера Numb Bunch, и постепенно выясняется, что у неё с этой бандой давние личные счёты. Собственно, лидер Numb Bunch оказывается клоном Нины… но дальше уже будут спойлеры, и хотя в данном случае это не страшно, лучше обойдусь.

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

    И да, отличная концовка, а потом ещё и титры сделаны нестандартно и интересно. Но это были бы совсем уже спойлеры.

    Заключение

    Skin Deep меньше, проще и дешевле грандов своего жанра, но при этом ни в чём им принципиально не уступает, а по плотности смешного и хорошо сделанного на квадратный метр уверенно превосходит. Если вы, как и я, всегда смотрели на immersive sim с уважением, но побаивались, можно смело начинать отсюда. А если вы ветеран жанра — тем более заходите. Очень рекомендую.

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

    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кура»: присоединяйтесь!

  • Casebook 1899: The Leipzig Murders

    Casebook 1899: The Leipzig Murders

    Ещё один чисто немецкий детектив, и казалось бы, он должен чем-то напоминать Inspector Schmidt — A Bavarian Tale, которую я недавно обозревал, но на самом деле общего между этими играми только то, что обе озвучены на немецком языке.

    Casebook 1899 — это классический point-and-click квест, настоящий детектив, а никакая не RPG. Ты играешь за инспектора Крайзера, который раскрывает убийства вместе со своим коллегой, прокурором Мёбиусом.

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

    Надо разговаривать с людьми, искать улики, применять предметы, всё как в обычном квесте. Юмора как такового здесь мало, но дела, во-первых, сами по себе интересно сделаны как детектив и как задачка, а во-вторых, проходят достаточно быстро.

    Забавная деталь: как обычно в квестах, на экране можно увидеть hotspots, с которыми можно взаимодействовать. Но здесь эти hotspots подаются как советы вашего коллеги-прокурора… и когда в одном из дел прокурор таинственно пропадает, отключается и возможность посмотреть на “горячие точки”! (на самом деле нет, но игра об этом предупреждает)

    Игра делится на две очень разные части. Сначала первые три кейса, в которых логика достаточно простая, а вывод вообще может быть какой угодно; здесь, как в некоторых играх Frogwares про Шерлока Холмса, можно сделать разные выводы в конце расследования.

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

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

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

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

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

  • Z.A.T.O.: простая советская кинетическая новелла

    Z.A.T.O.: простая советская кинетическая новелла

    Полгода назад я писал обзор на ATRI: My Dear Moments и тогда зарёкся на какое-то время браться за визуальные новеллы. Японский взгляд на японский жанр меня не особенно прельстил.

    А вот наш, советский взгляд очень даже понравился! Z.A.T.O. — это тоже прямая линейная визуальная новелла без единого выбора (это называется “кинетическая новелла”). И тоже про девочек-подростков! Но она стала одним из самых сильных эмоциональных впечатлений от игр для меня, в этом году уж точно.

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

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

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

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

    Кстати, в игре, вопреки последнему скриншоту, нет русского языка. Понимаю, что это очень много лишней работы, даже если русский для авторов родной. Кстати, об авторе под никнеймом Ferry // Nopanamaman я так толком ничего и не нашёл; вроде бы очевидно, что он русскоязычный, а ещё где-то написано, что он из Польши, и всё.

    Но вот конкретно в этой игре русский текст, конечно, просится. Даже как-то немного странно читать по-английски о Воркуте-5. С другой стороны, когда в английский текст прорываются наши знакомые реалии и обороты, это выглядит очень мило:

    Читается легко, впечатление производит сильное, дочитать до конца можно часа за три, так что категорически рекомендую. Она ещё и бесплатная.

    I love the world and everything in it.

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

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

  • Riddlewood Manor

    Riddlewood Manor

    Очередной point-and-click квест в особняке, про которые я в последнее время немало пишу: был и The Séance of Blake Manor, и Botany Manor, ну а про Blue Prince я вообще молчу. Авторы Riddlewood Manor сами называют свой жанр “horror comedy escape room”, и эта формула описывает игру очень точно.

    В качестве источников вдохновения авторы называют две вещи: серию Rusty Lake (от которой взяты загадки и общая эстетика мрачного абсурда) и мультсериал “Courage the Cowardly Dog“, где трусливый розовый пёс спасает хозяев от еженедельных кошмаров в духе братьев Гримм.

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

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

    Зато понравились смерти в игре: за неправильный выбор Riddlewood Manor вас, скорее всего, убьёт, но это, конечно не game over (вы тут же откатитесь), а смерти оригинальные и нарисованные вручную, их хочется посмотреть все.

    Загадки приятные, в фирменном стиле escape room: ты в каждой комнате осматриваешь всё, что не приколочено, собираешь предметы, ищешь подсказки в окружении и комбинируешь их в решения. Влияние Rusty Lake чувствуется явно — те же неочевидные комбинации с обыденными предметами, те же “вы должны как-то догадаться, что это работает именно так”, частенько с абсурдными решениями.

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

    В общем, милая незамысловатая point-and-click головоломка, на 1-2 вечера, сойдёт.

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

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