На шаг ближе к Скайнету: научились ли нейросети умножать?

На шаг ближе к Скайнету: научились ли нейросети умножать?

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

Как так получилось, что ИИ пишет код и сочиняет стихи, но испытывает трудности с таблицей умножения? Разберёмся.

Фундаментальная проблема: сложение вместо умножения

Современный ИИ в основном построен на нейронных сетях. Любую сеть можно описать как:

Входы → Магия (слои сети) → Выходы

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

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

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

Математическая хитрость: как имитировать умножение через сложение

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

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

(x + y)2 = x2 + 2xy + y2

Отсюда можно выразить произведение:

x ⋅ y = 1/2 × ((x + y)2 − x2 − y2)

Таким образом, умножение сводится к сложению, вычитанию и возведению в квадрат. Но проблема в том, что функция активации f(z) = z2 не используется в реальных сетях. Стандартные функции — ReLU, Sigmoid, Tanh — не подходят для этой цели.

Революция Трансформеров и скрытая сила GLU

С приходом архитектуры Трансформеров — основы GPT и других современных моделей — ситуация начала меняться. Долгое время считалось, что и они лишь аппроксимируют математику. Но в 2020 году произошла важная, но мало замеченная революция.

В статье Ноама Шазейра «GLU Variants Improve Transformer» предложено заменить стандартные функции активации на так называемые вентили: ReGLU, GEGLU, SwiGLU.

Эти архитектуры показали лучшую производительность. Особенно выделяются GEGLU и SwiGLU — их используют во всех современных трансформерах. SwiGLU предпочтительнее из-за вычислительной эффективности.

Как работают вентили: умножение внутри сети

Суть механизма GLU (Gated Linear Unit) в том, что входной сигнал разделяется на два потока. Каждый проходит через линейное преобразование и функцию активации, а затем результаты перемножаются поэлементно.

Например, формула SwiGLU:

output = linear₁(x) × σ(linear₂(x))

Такое умножение позволяет моделировать квадратичные зависимости и, при необходимости, имитировать умножение входов. Это даёт сетям возможность «понимать» нелинейные связи, которые ранее были недоступны.

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

Реальность: калькулятор в кармане ИИ

Означает ли это, что ChatGPT теперь идеально считает? Нет. Даже с архитектурной поддержкой умножения, нейросеть остаётся вероятностной моделью. Для неё «2 + 2 = 4» — это наиболее вероятный ответ, а не строгий вывод.

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

Будущее: ИИ как компьютер

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

Читать оригинал