Команда AI for Devs подготовила перевод исследования OpenAI о том, как обучение разреженных моделей может сделать ИИ более прозрачным. Авторы показывают: если заставить модель использовать меньше связей, внутри неё появляются понятные цепочки вычислений, которые можно изучать и проверять. Это может стать шагом к созданию мощных, но интерпретируемых систем.


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

Как мы понимаем интерпретируемость

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

Например, модели рассуждений стимулируются объяснять ход своей работы по пути к финальному ответу. Интерпретация через цепочки рассуждений (chain of thought) использует эти объяснения, чтобы отслеживать поведение модели. Это сразу даёт пользу: цепочки рассуждений в современных моделях оказываются информативны в отношении настораживающих типов поведения, таких как попытки ввести в заблуждение. Однако полностью полагаться на это — ненадёжная стратегия, которая со временем может перестать работать.

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

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

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

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

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

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

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

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

Оценка интерпретируемости

Нам хотелось измерить, насколько хорошо вычисления в наших разреженных моделях оказываются «развязанными» и прозрачными. Мы рассмотрели несколько простых типов поведения модели и проверили, можем ли мы выделить те её части, которые отвечают за каждое поведение — то, что мы называем цепочками вычислений (circuits).

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

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

Чтобы сделать это наглядным, рассмотрим задачу, где модель, обученная на Python-коде, должна завершить строку корректным типом кавычки. В Python строка 'hello' должна заканчиваться одинарной кавычкой, а “hello” — двойной. Модель может решить задачу, если «запомнит», какой тип кавычки открыл строку, и воспроизведёт его в конце.

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

Пример цепочки вычислений в разреженном трансформере, предсказывающей, чем завершить строку — одинарной или двойной кавычкой. Эта цепочка использует всего пять каналов резидуала (вертикальные серые линии), два нейрона MLP в нулевом слое и по одному каналу query-key и value в десятом слое механизма attention. Модель (1) кодирует одинарные кавычки в одном канале резидуала, а двойные — в другом; (2) с помощью слоя MLP преобразует это в один канал, который фиксирует наличие кавычки, и другой, который различает одинарную и двойную; (3) с помощью attention игнорирует промежуточные токены, находит предыдущую кавычку и копирует её тип в конечный токен; и (4) предсказывает соответствующую закрывающую кавычку.
Пример цепочки вычислений в разреженном трансформере, предсказывающей, чем завершить строку — одинарной или двойной кавычкой. Эта цепочка использует всего пять каналов резидуала (вертикальные серые линии), два нейрона MLP в нулевом слое и по одному каналу query-key и value в десятом слое механизма attention. Модель (1) кодирует одинарные кавычки в одном канале резидуала, а двойные — в другом; (2) с помощью слоя MLP преобразует это в один канал, который фиксирует наличие кавычки, и другой, который различает одинарную и двойную; (3) с помощью attention игнорирует промежуточные токены, находит предыдущую кавычку и копирует её тип в конечный токен; и (4) предсказывает соответствующую закрывающую кавычку.

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

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

Ещё один пример цепочки вычислений, менее подробно. Чтобы определить тип переменной с именем current, одна операция attention копирует имя переменной в токен set() в момент её объявления, а другая, позже, копирует тип из токена set() в последующее использование переменной, что позволяет модели вывести корректный следующий токен.
Ещё один пример цепочки вычислений, менее подробно. Чтобы определить тип переменной с именем current, одна операция attention копирует имя переменной в токен set() в момент её объявления, а другая, позже, копирует тип из токена set() в последующее использование переменной, что позволяет модели вывести корректный следующий токен.

Что дальше

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

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

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

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

Русскоязычное сообщество про AI в разработке

Друзья! Эту статью подготовила команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-ассистентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!

Комментарии (7)


  1. Neusser
    14.11.2025 10:16

    Так разряженные или разреженные?


    1. holodoz
      14.11.2025 10:16

      Если это отчёт с корпоратива, то могут быть и разряженные


    1. RodionGork
      14.11.2025 10:16

      разнаряженные :)


    1. Bardakan
      14.11.2025 10:16

      разрешенные


  1. alexhu
    14.11.2025 10:16

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


  1. Kamil_GR
    14.11.2025 10:16

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

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

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

    Обнаружили, что Chain-of-Thought работает даже с неверными примерами в промпте. Вывод: модель как-то учится на ошибках. Фактически даже неверный CoT заставляет модель генерировать больше промежуточных токенов. Это просто дает ей больше вычислительного времени в ее авторегрессивной петле, чтобы додуматься до правильного ответа.

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

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

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


    1. karmael
      14.11.2025 10:16

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