Самоописание нейросети: условие сложного мышления

от автора

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

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

Эта статья о них. 

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

Введение

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

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

Собственную странность находки исследователи проговаривают сами: это пространство состоит из слов — небольшого меняющегося набора невысказанных слов. Интерпретируют они всё через теорию глобального рабочего пространства Баарса: J-space как буфер, содержимое которого доступно остальным частям сети.

Фактически, ранее проведенные мной эксперименты показали следующее.

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

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

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

Не раскрытыми остались роль самоописания и возможность метазнака.

Метазнак

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

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

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

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

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

Самоописание

При исследовании репорта нейросети ставилось три гипотезы о его сути: 

  1. Разрыв автоматизма. 

  2. Условие возникновения знака

  3. Самомоделирование нейросети

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

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

Результат: с отчётом правило выделяется в отдельную читаемую ось (далее я использую как термин осаждается) на всех запусках. Без отчёта — ни на одном. С фиктивной головой — ни на одном, ровно те же числа, что и без головы вообще. Разброс по запускам не пересекается: худший результат с отчётом выше лучшего без него. Продление обучения до полного бюджета ничего не меняет.

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

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

То что работает на гипотезу:

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

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

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

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

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

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

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

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

Моё мнение о следствиях

Сначала остановлюсь на том, почему отчёт вообще влияет на формирование знака. 

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

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

Два следствия:

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

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

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

Применимость к LLM. Я уверен, что математика работает на всех масштабах, механизм геометрический и не завязан на конкретную задачу, поэтому есть основания ждать его и на больших моделях, то есть структурно то что работает на микросети, будет работать и на LLM. Конечно в LLM нет отдельной op-головы, но её аналог заданная данными адресация корпуса («что ты думаешь», «объясни свой ход», «будь честен») — распределённая, размазанная op-голова. Проверка через абляцию в LLM крайне затруднена.

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

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

Заключение

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

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

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

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

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

Ссылка на код и логи на github

ссылка на оригинал статьи https://habr.com/ru/articles/1062460/