В рамках курса MIT OpenCourseWare профессор Рама Рамакришнан представил глубокое погружение в архитектуру современных больших языковых моделей (LLM). Лекция охватывает путь развития нейросетей от BERT к семейству GPT, раскрывая математические хитрости, которые позволяют алгоритмам не просто копировать текст, а генерировать осмысленные и творческие ответы.
🧠 От маскировки к предсказанию: эволюция обучения 0:16
Ранее в курсе изучалась модель BERT, в основе которой лежит метод «маскировки» (masking). Это разновидность самообучения (self-supervised learning), где нейросеть обучается на текстах Википедии, заполняя пропуски в предложениях. Однако сейчас индустрия переключилась на другой, более мощный метод — предсказание следующего слова (next word prediction).
По мнению Рамакришнана, предсказание следующего слова — это частный случай маскировки, но оно оказывается «странным образом более интересным и мощным». Процесс выглядит следующим образом:
- Берется фрагмент предложения, например: «Миссия школы менеджмента MIT Sloan...».
- Модель получает слово «Миссия» и должна предсказать слово «школы».
- Затем она получает «Миссия школы» и предсказывает «менеджмента».
- Этот цикл повторяется для каждого фрагмента, превращая любой массив текста в бесконечный источник обучающих данных.
Для компактности данные подаются пачками (batches). Например, предложение «The cat sat on the mat» сдвигается, чтобы входные данные соотносились с целевыми выходами (cat -> sat, sat -> on). На выходе из стека трансформеров используется функция softmax, которая рассчитывает вероятности для всего словаря, составляющего обычно около 50 000 слов.
🛡️ Казуальное внимание: как запретить ИИ «подглядывать» 7:07
При использовании стандартной архитектуры трансформера возникает критическая проблема: механизм «внимания» (self-attention) позволяет каждому слову видеть все остальные слова в предложении. Если задача модели — предсказать следующее слово, она может просто «списать» его из конца предложения, которое уже есть во входных данных. Рамакришнан называет это «читерством».
Решением стало внедрение казуального внимания (causal self-attention), также известного как маскированное внимание:
- При расчете контекстного вложения для конкретного слова веса для всех будущих слов принудительно обнуляются.
- Матрица весов внимания превращается в треугольную: слово может «смотреть» только на то, что было слева от него.
- Оставшиеся веса перенормируются так, чтобы их сумма снова была равна единице.
Такая архитектура называется «казуальным энкодером» или декодером. Рамакришнан подчеркивает, что термин «казуальный» здесь не имеет отношения к причинно-следственным связям в философии, это чисто техническое определение направленности данных.
🔄 Авторегрессия и «психологические» трюки чат-ботов 21:52
Модели типа GPT являются авторегрессионными: они предсказывают одно слово, добавляют его к входному тексту и снова запускают процесс генерации. Этот цикл продолжается до тех пор, пока модель не выдаст токен остановки (например, точку) или не достигнет лимита длины.
Интересный нюанс касается пользовательского опыта (UX). Рамакришнан упоминает мнение коллег по индустрии: когда ChatGPT «печатает» ответ по одному слову на экране, это часто является намеренным замедлением. Сама модель может генерировать текст гораздо быстрее, но разработчики имитируют человеческий темп печати, чтобы бот не казался слишком «жутким» и воспринимался более естественно. (Сам лектор не берется утверждать, что это правда на 100%, но называет это распространенной практикой).
Масштабы современных моделей поражают:
- GPT-3: содержит 96 блоков трансформеров, в каждом из которых по 96 голов внимания.
- Данные: модель обучалась на 30 миллиардах предложений из веба, книг и Википедии.
- Закрытость: если об архитектуре GPT-3 известно всё, то GPT-4 остается «черным ящиком» без опубликованных деталей.
🎲 Стратегии декодирования: от математики к «носкам» 31:33
Когда нейросеть выдает таблицу вероятностей для 50 000 слов, возникает вопрос: какое именно слово выбрать? Существует два экстремальных подхода:
- Жадное декодирование (Greedy decoding): всегда выбирать слово с самой высокой вероятностью. Это делает ответы детерминированными (одинаковыми при каждом запуске), что полезно для математики и логики.
- Случайная выборка (Random sampling): выбирать слова пропорционально их вероятности. Это добавляет креативности, но может привести к ошибкам.
Проблема случайной выборки заключается в «длинном хвосте» маловероятных слов. Если модель случайно выберет слово из этого хвоста, она не сможет исправить ошибку и «уйдет в разнос». Профессор продемонстрировал это на забавных примерах: когда он заставил GPT-3.5 выбирать маловероятные слова в предложении о студентах MIT Sloan, нейросеть выдала, что они — «мастера хаоса», которые проводят семестр, «вяжучи носки».
Для контроля хаоса используются три параметра:
- Top-K: модель рассматривает только $K$ самых вероятных слов (например, топ-20).
- Top-P (Nucleus sampling): выбирается минимальный набор слов, суммарная вероятность которых достигает порога $P$ (например, 0.9).
- Температура ($T$): математический коэффициент в функции softmax.
$$P_i = \frac{e^{a_i / T}}{\sum e^{a_j / T}}$$
При $T \to 0$ модель становится «жадной» и предсказуемой. При $T > 1$ распределение вероятностей сглаживается, и нейросеть начинает выдавать бессвязную абракадабру. Демонстрация при $T = 2$ показала полную потерю смысла генерации.
🧩 Токенизация: как ИИ читает по частям 1:01:22
Современные модели не работают со словами целиком. Вместо этого используется Byte Pair Encoding (BPE). Это позволяет ИИ понимать даже выдуманные слова. Например, когда профессор ввел термин «reldoh» (слово hodler задом наперед), модель успешно встроила его в контекст предложения.
Алгоритм BPE работает по принципу слияния:
- Сначала всё разбивается на отдельные символы.
- Затем наиболее часто встречающиеся пары символов объединяются в один токен (например, «a» и «t» превращаются в «at»).
- Процесс повторяется, пока не будет достигнут лимит словаря (50 000 у GPT-3 или 100 000 у GPT-4).
Любопытно, что токенизация чувствительна к регистру и пробелам. В словаре GPT слово «The» с заглавной буквы имеет другой ID, чем «the» со строчной. Более того, имя лектора «Rama» в нижнем регистре является отдельным токеном, а в верхнем — разбивается на части, что вызвало ироничное замечание профессора о том, какие именно сайты «скрейпили» разработчики OpenAI.