Как работает нейросеть простыми словами
Без формул, но и без сказок про «искусственный мозг». Что модель делает на самом деле, откуда берётся впечатление понимания и почему из этого следуют все её странности.
Короткий ответ: языковая модель предсказывает следующий кусочек текста по всему, что было до него. Больше она не делает ничего. Ни поиска по базе, ни рассуждения в человеческом смысле, ни проверки фактов — только продолжение последовательности.
Звучит разочаровывающе, пока не увидишь, сколько всего из этого следует.
Три шага, из которых всё состоит
Текст режется на токены. Не на слова и не на буквы, а на куски —
частые слова целиком, редкие по частям. «Контекст» — два куска, context —
один. Отсюда, между прочим, и разница в цене между языками.
Каждый токен превращается в вектор. Набор чисел, положение в пространстве смыслов. Слова, встречающиеся в похожих местах, оказываются рядом. Именно поэтому модель «понимает» синонимы: они просто близко.
Модель выдаёт вероятности следующего токена. Не один ответ, а распределение по всему словарю: этот — 40%, тот — 12%, дальше хвост. Дальше код выбирает из распределения один — и всё повторяется.
Откуда впечатление понимания
Из объёма и из того, как устроено обучение. Модель много раз видела, что после «столица Франции —» идёт «Париж», и распределение это отражает. Никакой записи «Париж — столица Франции» внутри нет: есть настройка весов, при которой такое продолжение вероятнее прочих.
Разница между «знает» и «продолжает вероятно» не философская, а практическая: она объясняет, когда модель ошибается. Там, где правдоподобное продолжение совпадает с правдой, всё выглядит как знание. Там, где не совпадает, — выглядит точно так же.
Что из этого следует
Почти все известные особенности — прямые следствия одного механизма.
Модель уверенно выдумывает. У неё нет отдельного состояния «не знаю»: на любом входе есть самое вероятное продолжение. Подробно — в «Галлюцинациях».
Один вопрос даёт разные ответы. Выбор из распределения случаен, и даже при нулевой температуре точного повтора не бывает — почему именно.
Модель не помнит прошлый разговор. Каждый вызов независим; «память» — это то, что вы заново положили во вход. Про это — «Контекстное окно — это не память».
Русский текст стоит дороже английского. Потому что делится на большее число токенов — измерил, получилось 1.29×.
Длинный ответ не значит хороший. Модель продолжает, пока продолжается; краткость задаётся требованием, а не сама собой.
Чего внутри нет
Список короткий и полезный.
Базы фактов. Нельзя «посмотреть, что модель знает о вашей компании», — там нет записей, есть веса.
Проверки. Модель не сверяет ответ ни с чем. Если проверка нужна, её делает код вокруг.
Понимания последствий. «Удалить файл» и «прочитать файл» для неё различаются вероятностями токенов, а не тяжестью. Отсюда и требование подтверждать необратимое.
Обучения на ходу. Разговор не меняет модель. То, что выглядит как «она запомнила», — это текст, снова поданный на вход.
Условие несогласия
Всё сказанное — про то, как модель устроена. Из «просто предсказывает токены» не следует «поэтому бесполезна»: предсказание, натренированное на достаточном объёме, решает задачи, которые формально к предсказанию не сводятся.
Обратная крайность так же неверна: из практической пользы не следует, что внутри есть понимание. Обе ошибки дорого стоят — первая мешает применять, вторая мешает проверять.
Чего я делать не стал бы
Не стал бы объяснять это через «искусственный мозг» и «нейроны». Метафора мешает: она подсказывает наличие мышления там, где есть статистика, и человек перестаёт проверять.
Не стал бы спорить о том, «понимает ли модель». Спор не решается и ничего не меняет в работе; вопрос «где она ошибётся и как это поймать» решается и меняет всё.
Открытый вопрос
Механизм описывается за три абзаца, а поведение из него не выводится. Почему предсказание следующего токена на достаточном масштабе начинает решать задачи, которых в обучении не было, — честного ответа у меня нет, и, насколько я вижу, ни у кого пока нет.
Это неуютное место: инструмент работает лучше, чем объясняется. Отсюда и практический вывод — полагаться на замеры, а не на рассуждения о том, что модель «должна» уметь.