Это продолжение серии о том, откуда взялись нейросети — начните с первой статьи, «Что такое нейросеть, если без формул».
Языковая модель не хранит словарь, как в книге, и не «знает» слова в том смысле, в каком их знаете вы. Она работает с кусочками текста и с вероятностями. Разберём, что это значит на практике.
Текст режется на кусочки
Прежде чем модель начнёт что-то предсказывать, ваш текст превращают в последовательность кусочков — их называют токенами. Токен — это не всегда целое слово: короткое частое слово может уместиться в один токен, а редкое, длинное или составное — разбивается на несколько частей. Слово «отчёт» может оказаться одним токеном, а «переотчитаться» — уже двумя-тремя.
Точное число токенов на слово зависит от конкретной модели и от того, как её обучали — какого-то универсального правила здесь нет. Важен сам принцип: модель не видит слова целиком, она видит цепочку пронумерованных кусочков.
Расход этих кусочков в переписке с чат-ботом мы уже разбирали в другой статье — там же объяснено, почему длинный запрос или долгий диалог «стоит» больше токенов. Смотрите раздел «Что такое токены» в статье «Первый час с нейросетями: экран за экраном», здесь эту тему повторять не будем.
Модель выбирает следующий кусочек — и так снова и снова
Дальше происходит то же самое, что мы разбирали в первой статье серии на примере нейрона-счётчика, только в масштабе всей модели. Получив цепочку токенов, модель не «вспоминает» готовый ответ. Она вычисляет, какой токен вероятнее всего должен идти следующим — и здесь у неё нет одного-единственного правильного варианта, а есть список кандидатов с разной вероятностью.
Например, после кусочка «Уважаемый» самый вероятный следующий токен — что-то вроде «коллега» или начало обращения по имени, а «пятница» — крайне маловероятный продолжатель. Модель берёт один из вероятных вариантов, добавляет его к тексту — и повторяет весь расчёт заново, уже с учётом нового кусочка. Слово за словом, а точнее токен за токеном, так и собирается весь ответ.
Это и есть работающее объяснение того, что мы описывали в статье «Почему нейросеть уверенно врёт — и как это ловить»: модель предсказывает правдоподобное продолжение, а не сверяется со справочником фактов. Правдоподобное и верное — не одно и то же, и различить их можно только проверкой, а не по тону ответа.
Почему модели трудно посчитать буквы или посчитать точно
Из устройства через токены прямо вытекает слабое место, которое иначе выглядит странно. Если попросить модель посчитать, сколько букв «р» в каком-то длинном слове, она может ошибиться — причём уверенно. Причина в том, что модель видит не буквы, а токены, и конкретное слово могло попасть в её «поле зрения» уже разбитым на два-три кусочка, где отдельные буквы внутри не пересчитываются напрямую.
То же самое с точной арифметикой: сложение и умножение больших чисел устроены как строгая пошаговая процедура, а модель отвечает по тому же принципу «самый вероятный следующий кусочек», а не считает по правилам, как калькулятор. На небольших и частых примерах вероятный ответ обычно и оказывается верным, но гарантии здесь нет — это разные механизмы.
Почему один и тот же вопрос иногда даёт разные ответы
На каждом шаге, когда модель выбирает следующий токен, у неё под рукой список кандидатов, а не один вариант. Иногда лидер этого списка выбирается почти всегда, а иногда несколько вариантов идут почти вровень — и тогда небольшой элемент случайности решает, какой из них возьмут. Из-за этого один и тот же вопрос, заданный дважды, может дать два по-разному сформулированных, а иногда и по существу разных ответа.
Это не поломка и не признак того, что модель «передумала». Это следствие того, как устроен сам выбор следующего кусочка текста.
Что из этого следует для работы в офисе
Отсюда — несколько практических выводов, которые складываются прямо из механизма, без всякой мистики.
Не просите модель точно посчитать символы, знаки или совпадения по буквам — для этого есть функция подсчёта в Word или формула в Excel, они считают по правилам, а не предсказывают. Не доверяйте вычислениям с большими числами без перепроверки калькулятором — для коротких и обычных сумм модель почти всегда права, но для ответственного расчёта нужна отдельная проверка. Если получили два разных ответа на один вопрос в разных чатах — это не повод считать один из них однозначно верным, оба стоит сверить с источником. И если модель предлагает конкретную цифру или факт, которого вы не видите в собственных документах — это тоже эффект предсказания правдоподобного продолжения, а не гарантия точности.
Чего это не объясняет
Здесь описан общий принцип — токены и предсказание следующего кусочка по вероятности. Он не объясняет, почему именно эта модель обучена лучше или хуже другой на конкретной задаче: это зависит от того, на каких текстах и как долго её тренировали, а эти детали не публикуются. Он не говорит, стоит ли доверять конкретному ответу в вашей рабочей задаче — это вопрос проверки, а не устройства модели. И он не объясняет, как из текстовой модели получается чат-бот с настройками, поиском и файлами — этому посвящена следующая статья серии, «ИИ, нейросеть, языковая модель, чат-бот — в чём разница».

