1. Впечатления от GPT-6 Astra

На прошлой неделе OpenAI представила GPT-6 Astra с большой помпой. Это исключительно мощная модель — вероятно, лучшая из всех, что были доступны на момент её релиза. Но что именно улучшилось и как?

1.1 Бенчмарки Astra

Astra особенно хороша в задачах трёхмерного рендеринга и анимации — по сравнению с другими моделями это её сильная сторона. По всем остальным метрикам (написание текста, математика, кодирование и прочее) она явно превосходит своего предшественника GPT-5.6, но особенно впечатляющие результаты именно в графических задачах.

Это отражается и в официальных бенчмарках. Например, GPT-6 Astra показывает исключительные результаты в математике и кодировании:

benchmarks-1

Особенно примечательно, что Astra достигает 99,9% на бенчмарке ARC-AGI-3 (GPT-5.6 Sol получила только 7,8%), который измеряет способность к решению логических головоломок и обобщению. Но бенчмарки математики, кодирования и компьютерного взаимодействия более интересны, так как ближе к реальному использованию.

В индексе Artificial Analysis Coding Agent Index v1.4, объединяющем несколько задач на взаимодействие с кодом, GPT-6 Astra явно находится на переднем крае, хотя не оставляет далеко позади конкурентов. Это видно и в общем Artificial Analysis Intelligence Index:

artificial-intelligence

Большое преимущество бенчмарков Artificial Analysis в том, что они независимы и, следовательно, более надёжны, чем самооценки разработчиков моделей.

В индексе Intelligence Index v4.2 используются разные методологии: GDPval-AA и AA-Briefcase используют открытый минималистичный Stirrup harness для сравнения разных LLM, Terminal-Bench v2.1 использует Terminus 2, а τ³-Banking использует τ-Bench harness. Для оценок с единым harness это даёт более корректное сравнение «яблок к яблокам».

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

Как заметил один из коллег, стоит удалить или архивировать старые содержимые файлов AGENTS.md и SKILL.md, так как новые LLM лучше понимают задачи и могут находить более эффективные решения без лишних подсказок. Хотя не стоит отказываться от SKILL.md полностью — для некоторых рабочих процессов они улучшают эффективность благодаря переиспользованию. Но во многих случаях старые описания могут ограничивать более мощные модели, поэтому их стоит обновить или переписать.

1.2 Возможности компьютерного взаимодействия

GPT-6 Astra исключительно сильна в работе с изображениями и рендерингом. Когда эти задачи включают взаимодействие с графическими интерфейсами, демонстрируются возможности компьютерного взаимодействия — модель может управлять ПО на локальном компьютере через приложение Codex/ChatGPT.

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

Вот один из примеров: можно попросить GPT-6 Astra Medium и High перерисовать изображение в браузерной версии MS Paint, используя мышь. Модель управляет интерфейсом через курсор мыши.

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

Это не первая модель, способная к компьютерному взаимодействию в рамках harness. GPT модели успешно использовались для UI задач (например, работа с Excel для расчёта расходов) уже с начала этого года. Однако компьютерное взаимодействие — всё ещё относительно новая возможность harness и обычно чувствуется не совсем зрелой. Это логично: LLM — это текстовые модели, поэтому естественно начать с письма, кодирования и работы с API и CLI.

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

Ожидается, что в ближайшие месяцы и годы компьютерное взаимодействие будет совершенствоваться на уровне и модели, и harness. Модели будут обучаться на растущем объёме данных о компьютерном взаимодействии. Это также сделает LLM более доступными для повседневных задач вне технической сферы («Привет ChatGPT, помоги мне с налоговой декларацией»).

1.3 Обучение компьютерному взаимодействию

Этот тренд соответствует недавним сообщениям о том, что OpenAI закупила десятки тысяч Mac Minis и Mac Studios для обучения с помощью reinforcement learning. Mac здесь используются не для обучения самой модели (для этого лучше GPU), а как окружение, чтобы модель училась взаимодействовать с macOS и доступными в системе инструментами.

Как примерно работает это обучение? Вкратце, Mac (точнее, macOS) служит окружением, с которым модель может взаимодействовать во время обучения.

Базовый процесс выглядит так:

  1. Даём модели задачу, например «открой приложение xyz и выполни abc».
  2. Предоставляем скриншоты интерфейса macOS (обычно это делает harness).
  3. LLM предсказывает действия мыши/клавиатуры (клики, нажатия клавиш, скролл и т.д.).
  4. Выполняем эти действия на Mac (снова через harness).
  5. Отправляем новые скриншоты обновленного окружения.
  6. Повторяем шаги 2–5 до успеха или неудачи.
  7. Используем сигналы успеха/неудачи и верификаторы (грейдеры) как обратную связь, включая reinforcement learning на этапе post-training; это аналогично обычному Reinforcement Learning with Verifiable Rewards (RLVR).
computer-use-flow

Mac используется в основном как окружение, а не как машина для обучения или обновления модели. Модель вероятно находится на NVIDIA GPU и обращается к Mac через API. Кстати, генеральный директор NVIDIA упомянул, что GPT-6 Astra обучалась на примерно 100 000 GPU Grace Blackwell.

1.4 GPT-6 Astra — это всё ещё модель рассуждений

Фокус на обучение компьютерному взаимодействию, обсуждённый в предыдущем разделе, не является принципиальным сдвигом в подходе. GPT-6 Astra (и любая LLM на обозримое будущее) — это модель рассуждений. Это значит, что LLM обучается с помощью reinforcement learning with verifiable rewards (RLVR) и создаёт промежуточные цепочки рассуждений (chains of thought).

Но я вернусь к аспектам рассуждений в GPT-6 Astra (особенно скрытым цепочкам мысли) позже в статье.

2. Циклические трансформеры

За два дня до официального релиза журнал The Information опубликовал статью, в которой со ссылкой на внутренние источники сообщалось, что Astra использует концепцию «рекуррентной глубины» или «циклических трансформеров».

the-information

Архитектура LLM — моя область экспертизы и увлечения. Я создал короткое видео-объяснение механизма циклических трансформеров и комментариев о скрытых цепочках рассуждений:

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

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

2.1 Переиспользование блоков трансформера

Итак, что такое циклический трансформер?

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

Определения и терминология

В этой статье используются следующие термины:

  • Блок трансформера — это модуль с механизмом внимания, feedforward модулем, нормализацией и shortcut соединениями. Часто называется «слоем трансформера» в статьях.
  • Стек — последовательность блоков трансформера.
  • Применение блока — пропуск входа через блок трансформера один раз.

Циклический трансформер — не ново. Базовая идея уже появлась в статье Universal Transformers из 2018 года. Но перед обсуждением Universal Transformer начну с более простого примера — Nanbeige4.2-3B, недавней открытой LLM из июля, которую я разбирал на Substack Notes и в своей галерее архитектур LLM этим летом.

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

nanbeige

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

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

Если развернуть это вычисление, получим 44 применения блоков трансформера. Но в отличие от обычного трансформера с 44 отдельными блоками, вторая последовательность из 22 применений переиспользует веса первой последовательности. Например, применение 23 использует веса блока 1, применение 24 — веса блока 2, и так далее.

nanbeige-two-passes

Основная идея — увеличить эффективную глубину с 22 до 44 применений блоков без добавления нового набора весов трансформера.

Почему ровно 2 цикла, а не 3, 4 или больше? В статье Nanbeige мало деталей, но авторы говорят, что это наиболее эффективная конфигурация. Увеличение циклов с 2 до 3 даёт небольшой прирост производительности, но вычислительные затраты того не стоят.

2.2 Затраты циклических трансформеров

Почему вообще использовать циклический трансформер? Это альтернатива просто увеличению модели добавлением ещё трансформер-блоков.

Например, модель, которая использует 22 блока трансформера дважды, имеет примерно половину параметров (трансформер-блоков) по сравнению с моделью с 44 обычными блоками.

Это снижает память для хранения весов. Заметим, что слои эмбеддинга и выходной слой, обычно большие и составляющие значительную часть всех параметров, отдельны от этого сравнения. (Для Nanbeige 4.2 3B слои эмбеддинга и выходной составляют ~25% от всех 3B параметров; с переиспользованием весов между ними это можно снизить до 12,5%.)

hypothetical-size

Конечно, переиспользование одних и тех же блоков всё ещё требует вычислений. Точнее, мы пропускаем промежуточные входы через 44 применения блоков во время прямого прохода. Во время обучения градиенты текут обратно через оба цикла стека. Так что по сравнению с использованием 22 блоков один раз это добавляет значительную работу. Фактически, это примерно столько же, сколько иметь 44 отдельных блока (кроме того, что оптимизатор обновляет меньше параметров; обратное распространение всё ещё проходит через все 44 применения).

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

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

Чтобы конкретизировать, рассмотрим применения блоков 1 и 23, которые оба используют блок 1 в циклическом трансформере. Но каждое применение требует собственных записей KV кеша. Так что раз нам нужны отдельные кеши для обоих проходов, повторённый стек из 22 блоков имеет те же требования к KV кешу, что и обычный трансформер с 44 отдельными блоками.

Интересно, что исследователи Nanbeige сообщили, что пробовали делиться KV кешем между проходами. Это, конечно, вдвое снизило бы размер кеша, но модель работала хуже, чем версия с отдельными кешами (которая и была выпущена).

Чтобы завершить обсуждение Nanbeige перед переходом к другим дизайнам циклических трансформеров, их технический отчёт обсуждает также две другие альтернативы или компромиссы:

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

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

2.3 Universal Transformers и гибкое количество циклов

Теперь вернусь к Universal Transformers. В Nanbeige мы применяем стек из 22 трансформер-блоков дважды. В статье Universal Transformer из 2018 года повторно применяется один трансформер блок вместо повтора стека. Основная идея похожа, однако.

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

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

adaptive-halting

Другой подход — Ouro от ByteDance, который я также разбирал в своей галерее архитектур LLM. Например, Ouro-Thinking 2.6B применяет один стек из 48 трансформер-блоков четыре раза. Это 192 применения блоков при хранении весов для 48 отдельных блоков. По сути, это более экстремальный случай, чем Nanbeige. Кроме того, обученный exit gate присваивает вероятности разным выходам, и порог кумулятивной вероятности определяет, какой проход выдаёт выход. Так что заимствует идею адаптивной остановки из Universal Transformer, которую Nanbeige не использовал. (Однако есть практическое предостережение. Выпущенная реализация Hugging Face вычисляет все настроенные проходы перед выбором выхода, поэтому количество циклов, похоже, жёстко зафиксировано на 4.)

2.4 Маршрутизация гибкого количества циклов

Другой подход — Mixture-of-Recursions, статья из 2025 года, которая по сути более сложная версия обсуждённого ранее Universal Transformer. Аналогично Universal Transformer, отдельные токены пропускаются через блоки трансформера один или более раз. Однако инновация в том, как это количество циклов определяется для каждого токена.

На следующей рисунке из статьи циклический (повторённый) стек называется блоком рекурсии. Он содержит несколько блоков трансформера и находится между отдельными первым и последним блоками трансформера (обозначены как Layer 0 и Layer L-1).

mor

Как модель решает, сколько раз токен должен пройти блок рекурсии? В ранее обсуждённом Universal Transformer это основано на обученной вероятности остановки на каждом шаге. Этот подход Mixture-of-Recursion использует небольшой обученный маршрутизатор. Это похоже на идею маршрутизации в mixture-of-experts модели, за исключением того, что здесь маршрутизационное решение определяет, сколько раз применить повторённый стек.

Маршрутизатор работает с представлением скрытого состояния токена, которое также содержит информацию о его контексте. Так что не стоит думать, что каждое вхождение конкретного токена получит одинаковое количество проходов (слово «People» на рисунке выше не всегда проходит цикл из 3). Решение может измениться в зависимости от того, где это слово появляется и что было до него.

Как точно работает маршрутизация? Статья исследует два способа принятия этого решения:

mor-routing

При expert-choice маршрутизации, показанной в левой подпанели на рисунке выше, каждый шаг рекурсии выбирает, какие токены будут обработаны. Токены, которые выходят, исключаются из более поздних шагов. При token-choice маршрутизации, показанной справа, маршрутизатор принимает решение в начале, присваивая каждому токену путь с одним, двумя или тремя проходами.

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

2.5 Насколько хорошо это работает?

График из статьи Mixture-of-Recursions ниже сравнивает обычный трансформер (Vanilla), трансформер с фиксированной рекурсией (Recursive) и Mixture-of-Recursions (MoR) для разных размеров модели и бюджетов вычислений (ось x).

mor-results

На самом маленьком размере модели лучше работает обычный трансформер. Для более крупных моделей Mixture-of-Recursions догоняет и часто показывает лучший результат, особенно при меньших бюджетах обучения. При самом большом бюджете несколько кривых очень близки. Так что преимущество зависит от размера модели и того, сколько вычислений тратится на обучение.

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

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

Итак, вкратце, использование циклических трансформеров может улучшить качество модели при фиксированном бюджете вычислений, если модель достаточно крупная. (Это также иллюстрирует важность запуска экспериментов на масштабе; просто посмотрев на меньшую модель в 135M параметров, мы пришли бы к противоположному выводу.)

3. Примечание: Рекуррентные нейросети (RNN)

Кстати, если у вас есть фон в глубинном обучении (или даже искусственных нейросетях 1990-х годов), идея циклической или «рекуррентной» глубины должна быть знакома. Помните рекуррентные нейросети (RNN)? Вся идея в RNN состоит в переиспользовании слоёв (весов) из предыдущей итерации.

rnn

Главное отличие в том, что RNN переиспользуют свои веса на временных шагах. То есть скрытое состояние передаётся вперёд от одного токена к следующему. Когда RNN обрабатывает текст, она читает по одному слову или токену за раз и переносит информацию из более ранних слов в своём скрытом состоянии.

В циклическом трансформере промежуточное представление данного токена проходит через стек трансформера несколько раз. Модель всё ещё использует внимание для передачи информации между токенами.

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

rnn-vs-looped-transformer

4. Даже ли использует Astra циклические трансформеры?

Перед обсуждением того, скрывает ли механизм циклических трансформеров цепочки рассуждений, как говорится в слухах, вообще ли GPT-6 Astra использует концепции циклических трансформеров?

the-information-2

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

Однако я считаю весьма вероятным, что GPT-6 Astra использует аспекты циклических трансформеров. Во-первых, есть упомянутый выше отчёт. Во-вторых, это техника, которая показала обещание в прошлых исследованиях, так почему бы не использовать? В-третьих, главный научный сотрудник OpenAI сказал следующее:

[...] Глубина графика вычислений для наших текущих моделей границы, включая Astra, находится в пределах двух раз от GPT-4. [...]

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

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

Твик циклических трансформеров может помочь немного, но я считаю, что The Information переоценивает его вклад.

5. Скрытие цепочек рассуждений

Наконец, давайте рассмотрим главный вопрос: скрывают ли циклические трансформеры цепочки рассуждений?

Во-первых, OpenAI скрывает (большинство) цепочек рассуждений от пользователей с самого начала, начиная с OpenAI o1. Для конечного пользователя большой разницы не должно быть.

Так что обсуждение о интерпретируемости в основном касается разработчиков модели.

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

5.1 Рассуждение вкратце

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

Например, если попросить найти два числа, сумма которых 10, а произведение 21. На рисунке ниже модель сначала пробует 5 и 5. Сумма правильная, но произведение 25, не 21. Затем пробует 3 и 7 и проверяет оба условия снова.

backtracking

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

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

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

Для более подробной информации об понимании и разработке моделей рассуждений рекомендую мою книгу Build a Reasoning Model From Scratch.

reasoning-book