В рамках курса «Архитектура систем искусственного интеллекта» в Массачусетском технологическом институте (MIT) профессор Рама Рамакришнан представил глубокий технический разбор механизмов, лежащих в основе современных языковых моделей. Лекция была сосредоточена на переходе от архитектуры BERT к генеративным моделям семейства GPT, особенностях их обучения и нюансах работы с выходом нейросетей.
🤖 От маскирования к предсказанию следующего слова 0:16
Рама Рамакришнан начал с краткого обзора пройденного материала, напомнив об архитектуре BERT. Ключевая особенность BERT — использование метода «маскирования» (masking) . В этом процессе из предложения случайным образом удаляются слова (заменяются токеном [MASK]), а модель обучается восстанавливать их, анализируя двусторонний контекст. Этот подход относится к самообучению (self-supervised learning) на огромных массивах текста, таких как Wikipedia .
Однако основной темой лекции стал другой метод самообучения — предсказание следующего слова (next word prediction) . Профессор пояснил, что этот метод можно считать частным случаем маскирования, где «маской» всегда является последнее слово во фрагменте предложения .
Процесс подготовки данных выглядит так:
- Берется исходное предложение, например: «Миссия школы менеджмента Слоуна» .
- Оно разбивается на фрагменты:
- «Миссия» -> предсказать «школы».
- «Миссия школы» -> предсказать «менеджмента».
- «Миссия школы менеджмента» -> предсказать «Слоуна».
Этот подход лег в основу архитектуры GPT (Generative Pre-trained Transformer).
🧩 Трансформер-декодер: как запретить модели «читерить» 4:47
При попытке использовать стандартную архитектуру трансформера (которую использует BERT) для предсказания следующего слова возникает серьезная проблема. В стандартном слое внимания (Self-Attention) каждое слово может «видеть» все остальные слова в предложении, включая те, что стоят после него .
Для обучения модели предсказанию будущего это недопустимо. Если модель при обучении видит следующее слово, она не учится понимать язык, а просто «списывает» ответ из входных данных. Рамакришнан назвал это «читерством» .
Решением стала модификация архитектуры, получившая название Causal Self-Attention (причинное самовнимание) или Masked Self-Attention . Технически это реализовано следующим образом:
- Для каждого слова рассчитываются веса внимания ко всем остальным словам.
- Веса для всех слов, находящихся «в будущем» относительно текущего, принудительно обнуляются .
- Оставшиеся веса перенормируются так, чтобы их сумма снова была равна единице.
Модели, использующие такой механизм, называются авторегрессионными. Термин «декодер» в контексте GPT часто используется как синоним «причинного энкодера» (Causal Encoder) именно из-за наличия этого маскированного слоя внимания .
🎲 Декодирование и стратегии выбора токенов 30:53
На выходе языковой модели (после слоя Softmax) мы получаем не конкретное слово, а таблицу вероятностей для всей библиотеки токенов (обычно около 50 000 вариантов) . Процесс выбора конкретного слова из этой таблицы называется декодированием.
Профессор Рамакришнан выделил несколько стратегий декодирования:
- Жадное декодирование (Greedy Decoding): выбор слова с максимально высокой вероятностью . Это обеспечивает детерминизм (одинаковый ответ на одинаковый запрос), что важно для математических задач или техподдержки .
- Случайное сэмплирование (Random Sampling): выбор слова случайным образом пропорционально его вероятности . Это делает ответы более «человечными» и креативными, но несет риск ошибок.
Главная проблема случайного выбора заключается в «длинном хвосте» распределения. Даже если вероятность каждого отдельного бессмысленного слова в хвосте мала (например, 0,001%), суммарная вероятность выбрать хотя бы одно слово из хвоста может быть значительной . Если модель один раз выбирает неудачное слово (например, «мастера хаоса» вместо «мастера наук»), она не может «исправиться», так как это слово становится контекстом для всех последующих предсказаний .
Инструменты управления «хвостом»
Для минимизации галлюцинаций используются три параметра :
- Top-K: модель рассматривает только K самых вероятных слов (например, топ-20), полностью игнорируя остальные .
- Top-P (Nucleus Sampling): модель выбирает минимальный набор слов, суммарная вероятность которых достигает значения P (например, 0.9) . Это более гибкий метод, чем Top-K.
- Temperature (Температура): косметическое изменение функции Softmax. При низкой температуре (близкой к 0) модель становится уверенной и «жадной», выбирая только самые вероятные варианты. При высокой температуре (больше 1) распределение выравнивается, делая даже маловероятные слова почти равнозначными .
Рамакришнан продемонстрировал это в OpenAI Playground: при установке температуры на максимум (2.0) модель GPT-3.5 мгновенно начала выдавать абсолютно бессвязный набор символов и слов .
🔡 Магия токенизации: Byte Pair Encoding (BPE) 1:01:22
Современные модели не работают с целыми словами в их лингвистическом понимании. Вместо этого используется Byte Pair Encoding (BPE) . Этот алгоритм позволяет эффективно решать проблему новых слов и пунктуации.
Принцип работы BPE:
- Сначала все символы (буквы, цифры, знаки препинания) считаются отдельными токенами .
- Алгоритм находит пары токенов, которые чаще всего встречаются рядом в обучающем корпусе, и объединяет их в новый, более крупный токен .
- Процесс повторяется до достижения лимита словаря (50 000 у GPT-3 или 100 000 у GPT-4) .
В результате словарь состоит из:
- Отдельных букв (что позволяет собрать любое слово по частям).
- Наиболее частых слов (например, артикль «the» в английском языке) .
- Частей слов или «субслотов» (например, окончания «-ing» или «-ize») .
Это объясняет, почему нейросеть смогла понять и использовать выдуманное лектором слово «reldoh» (перевертыш слова «hodler») . Модель просто разбила его на знакомые буквенные фрагменты. Интересным фактом стало то, что в токенезаторе OpenAI слово «Rama» с большой буквы разбивается на токены, а со строчной — является единым токеном, что указывает на специфику данных, на которых обучалась модель .