Что такое языковая модель?
Забудь про GPT-4 на секунду. Забудь про чат-ботов. Забудь про трансформеры. К концу этого урока ты будешь знать — нутром — что на самом деле делает каждая языковая модель, что когда-либо существовала.
Вся область языкового моделирования — это одно уравнение: P(next_token | previous_tokens). И всё. Всё остальное — attention, RoPE, MoE, RLHF — лишь хитрый способ сделать это предсказание точнее.
1. Определение в одно предложение
Языковая модель — это функция, которая берёт последовательность токенов и задаёт распределение вероятностей того, что идёт следующим.
Это не метафора. Именно это буквально и делает любая LM, механически. Сэмплируем из этого распределения → генерация. Сравниваем два предложения → перевод, проверка орфографии, автодополнение кода.
2. Демо: крошечная LM прямо у тебя в браузере
Ниже — настоящая биграммная модель на отрывке из Шекспира (тот самый датасет tinyshakespeare, что используется в makemore и nanoGPT). Она знает только одно: по последнему символу — что вероятно идёт дальше?. Нажми Step несколько раз. Посмотри, как она работает.
3. Но… откуда берутся «токены»?
Компьютеры читают числа, а не слова. Токенизация разбивает сырой текст на дискретные единицы, а затем присваивает каждой целочисленный ID. Три распространённые стратегии — попробуй их:
Словарь: крошечный (~80 символов), но последовательности становятся длинными. Модель вынуждена учить орфографию.
- Посимвольная: крошечный словарь (~80 символов), но длинные последовательности.
- Пословная: короткие последовательности, огромный словарь, не справляется с новыми словами (<UNK>).
- BPE / сабворды: золотая середина. GPT-2 использует ~50k токенов.
4. Токены становятся векторами — «эмбеддинги»
Когда у токена есть целочисленный ID, мы ищем его в гигантской таблице эмбеддингов — она даёт нам вектор (скажем, 768 чисел). Нам нужно представление, где похожие вещи лежат рядом и которое может подталкивать градиентный спуск. У целых чисел такого свойства нет; у векторов — есть.
Наведи на слова, чтобы увидеть соседей. Модели никогда не говорили, что «king похож на queen» — она вывела это из совместной встречаемости. Смысл выпадает из контекста.
Мы никогда не говорим сети, что значат слова. Мы лишь учим её предсказывать следующий токен. Смысл — эмерджентное свойство задачи предсказания. То же будет верно и на масштабе — «понимание», «рассуждение», всё это.
5. Тепловая карта биграмм
Вот секрет твоей крошечной LM. Это просто двумерная таблица: строки = «текущий символ», столбцы = «следующий символ», ячейки = «как часто это случалось». Ярче = вероятнее. Наведи, чтобы рассмотреть.
Фундамент, на котором стоит этот урок
Читай это параллельно с упражнением — global-first, работы, на которых держится вся область.
Казахская агломинативность раздувает токенизацию — один корень даёт лишние токены. Где казахский стоит по токенизации:
→ Дерево вклада: токенизация6. Горячие вопросы
Не двигайся дальше, пока не сможешь ответить на них вслух, своими словами. (Без гугления.)
- Почему предсказываем следующий токен, а не текущий?
- Как выглядела бы тепловая карта биграмм для модели, которая не видела никаких данных?
- Почему посимвольную токенизацию «легче учить», но «труднее масштабировать»?
- Что значит, что два вектора-эмбеддинга «близки»? Косинус или евклидово расстояние — что и почему?
- Если биграммная модель — всего лишь таблица поиска, то что вообще значит «обучение»?
7. Твоя миссия
Открой code/exercise_01_bigram.py. Там ждёт заготовка. Тебе нужно:
- Загрузить
tinyshakespeare.txt. - Построить словарь (уникальные символы → целочисленные ID).
- Посчитать биграммы — матрицу
(V, V). - Нормировать строки в вероятности (следи за делением на ноль).
- Сэмплировать 200 символов нового «Шекспира». Вот он, момент магии.
- Посчитать среднее отрицательное логарифмическое правдоподобие. Это и есть твой лосс — запиши его.
Чеклист для чтения
- Sennrich 2015 (BPE) — читать целиком, 8 лёгких страниц.
- Bengio 2003 — пока разделы 1–3.
- Посмотри «makemore Part 1» после упражнения.