Инженеров раздражает крайне низкая интерпретируемость нейросетей на базе трансформеров. Бизнес раздражает отсутствие гарантий правильного ответа. И всех пользователей весьма беспокоят галлюцинации LLM.
Именно поэтому исследователи работают над альтернативными архитектурами ИИ, пытаясь устранить недостатки LLM. Одно из направлений таких исследований, это использование принципов символьного ИИ.
В этой статье я рассматриваю концепцию кандидата физико-математических наук, известного IT-исследователя Сергея Шумского.
Символьный ИИ
В общем смысле, символьный ИИ основывается на предположении, что интеллект это система манипуляции символами. То есть предполагалось, что если создать систему правил по которым символы комбинируются, одни символы превращаются в другие, то мы получим настоящий интеллект. Если что-то не работает, то нужно просто усложнить систему правил.
В начале этот подход работал. Экспертные системы, логическое программирование, семантические сети и фреймы, всё это позволило быстро дать результат. Подобные системы широко использовались в бизнесе, науке, управлении. Но при росте требований со стороны пользователей возникла проблема хрупкости моделей, невозможности решения сложных, меняющихся задач, принципиального отсутствия обобщения. То есть, для решения задач, отсутствующих в базе, требовалось явное изменение системы правил. В результате, в какой-то момент сложность мира победила возможность его формализовать.
Интересно, что развитие систем символьного ИИ дало толчок развитию графовых структур, онтологиям и графам знаний, которые фактически пережили сам символьный ИИ.
Проект Сергея Шумского
Проект Сергея это не нейросеть в привычном смысле,обучение происходит через счётные процедуры, а не градиентный спуск. Это альтернатива трансформеру, вместо предсказания токена его модель сжимает цепочки данных (грамматически, семантически), тем самым резко снижает необходимую вычислительную мощность, избегает комбинаторного взрыва и быстро обучается. Модель работает на CPU.
Я присутствовал на докладе Сергея Шумского и задал несколько вопросов. Сразу хочу сказать, что автор прекрасно понимает ограничения своего проекта, признает их, пытается решить их инженерно.
В основе проекта лежит принцип минимальной длины описания. Чем сильнее модель минимизирует длину описания самой модели плюс длину закодированных ею данных, тем лучше.
Система состоит из нескольких слоёв, первый слой базовый. В нём система, как и трансформер учится предсказывать следующий символ. Но цель не предсказание само по себе, а поиск момента, когда точность предсказания резко упадёт. В этом месте ставится граница, полученная цепочка кодируется, проверяется длина представления модели + длина закодированных данных, если она экономит биты, то добавляется в словарь. На следующем уровне производится аналогичная обработка результата, найденные единицы становятся символами следующего уровня и следующий слой пытается их аналогично сжать.
То есть в теории должна выстроиться пирамида – первый слой морфемы, далее слова, фразы, предложения, понятия, рассуждения.
Выигрыш проекта Сергея в длине контекста. На уровне символов для предсказания требуется окно в десяток единиц, на уровне слов хватает трёх-четырёх. Здесь окно это число предыдущих символов, по которым считается вероятность следующего. У табличного предсказателя стоимость растёт экспоненциально от длины окна, поэтому минимизация его длины единственный способ выживания. Для этого и требуется непрерывно укрупнять единицы текста.
Кстати, у трансформера тоже есть контекстное окно, но стоимость его обработки растёт квадратично, а не экспоненциально.
Внутри каждого уровня работают два разных по содержанию сжатия. Сначала без потерь, когда поток нарезается на повторяющиеся единицы, для пополнения словаря. Потом с потерями. Каждая единица представляется распределением своих контекстов и сжимается до короткого кода с сохранением соседства. Эти коды переходят как символы на следующий уровень.
Второй этап по сути формирует векторные представления, полученные из контекстной статистики, и близость в векторном пространстве означает похожесть употребления. Предполагается, что это даст необходимую гибкость, которой не хватало чистому символьному ИИ.
Обобщение же будет обеспечено иерархией.
Ограничения и проблемы проекта
Как и у любого проекта, у модели Шумского есть свои слабые места
-
Проблема редких смыслов. Учитывая, что по своей природе это статистическая система, редкие единицы просто выпадают из рассмотрения. Сергей проблему понимает, с его слов, у них есть методика размножения таких единиц, для корректировки данных. Но тогда мы возвращаемся к недостатку символьных ИИ, которые требовали ручного формирования правил. Только здесь приходится вручную формировать структуру данных для системы. Фактически часть различений производится не моделью, а человеком
-
Косинусное сходство, которое используется при переносе символов на следующий уровень слабо работает с противоположностями. Антонимы встречаются в одинаковом контексте: “сегодня очень холодно” и “сегодня очень жарко”, “увеличить продажи” и “сократить продажи”. Векторы считаются близкими, хотя значения противоположны. То же с отрицанием: «работает» и «не работает» стоят в тех же конструкциях. С такого рода проблемами давно борются в RAG, но у Шумского она острее из-за агрессивности сжатия.
-
Потери накапливаются по уровням. На каждом уровне происходит сжатие с потерями, и наверх передаются короткие коды. То есть каждый уровень работает с проекциями проекций. Переходит на следующий уровень лишь то, что помогает в предсказании, различение, на продолжение не влияющее, отбрасывается.
-
Пирамида может не вырасти. Единица окупается, если дает экономию на длине, при этом экономия пропорциональна числу вхождений. Морфем в языке тысячи при миллионных вхождениях. Фраз уже миллионы, и даже в больших текстах встречаются гораздо реже морфем. Предложения, как результат комбинаторики, практически уникальны для ограниченного текста. То есть на каждом уровне повторяемость катастрофически обваливается, и редкая единица не окупается и в словарь не попадает. Рост корпуса тут поможет слабо: пространство возможных предложений растёт экспоненциально по длине, а корпус линейно.
-
Для снятия комбинаторного взрыва автор режет длинный код на несколько потоков, каждый из которых предсказывается отдельно, вероятности перемножаются. Но это приводит к потере корреляции, теряются различия определяемые сочетанием битов, а смысл часто находится именно там. Сергей учитывает потери точности, но считает это вынужденным разменом точности на вычислительную сложность.
Проблемы, как я считаю, важные, Сергей их признаёт и работает над тем как их решить инженерно.
Принципиальная проблема
Есть ограничения, которые можно попробовать решить инженерно. Но я полагаю, что сама концепция имеет принципиальный изъян, устранить который возможно только изменением ядра системы.
В контуре модели Шумского нет понятия ошибки. Отсутствуют награды, правильные ответы и внешний сигнал. Единственный критерий — эффективное сжатие. Значит представление формируется до задачи и оптимально только для угадывания продолжения. Та же микросеть на домашнем компьютере может научиться проверять, отсортирован ли массив, потому что ей говорят, где она ошибается. Модель Шумского не научится этому и на терабайтах.
Вы можете сказать, что LLM тоже предсказывает. Но разница в том, что у трансформера есть эталон, следующий токен, — и обучение происходит через сравнение с ним. Да, внешней проверки тут тоже нет, эталон внутри текста. Но в архитектуре трансформера есть само место для правильного ответа. И это место можно заполнить нужным требованием. Ставим туда вопрос-ответ, получаем отвечатель на вопросы, задача-решение с проверкой, получаем решатель. Вот что делает LLM полезными.
У Шумского нет эталона. Не с чем сравнивать, некуда подставлять..
Моё мнение
Модель останется на уровне грамматического предсказателя, то есть будет строить грамматически правильные тексты, лишенные смысла (гпт 2).
Сергей строит специализированную машину предсказания грамматики. Это не LLM, это модель, которая просто выполняет грамматические правила. В ней принципиально не будет смысла.
То есть Сергей принципиально строит экономную, интерпретируемую систему, которая просто (и только) строит грамматику и ничего более.
Масштабирование данных и железа здесь не поможет.
Но, и здесь я не могу не сказать, что возможно такая архитектура, заточенная на поиск статистических закономерностей, будет полезна в узких доменах на специализированных задачах, в поисках скрытых паттернов и зависимостей. Но Сергей не останавливался на таком потенциале подробно.
P.S. Возможно я где-то недопонял, и соответственно не прав в суждениях. Готов их скорректировать, если будет указано на ошибку.
Автор: Kamil_GR


