← Все уроки · Атлас
Модуль 01 · ~75 мин · интерактив

Что такое языковая модель?

Забудь про GPT-4 на секунду. Забудь про чат-ботов. Забудь про трансформеры. К концу этого урока ты будешь знать — нутром — что на самом деле делает каждая языковая модель, что когда-либо существовала.

Заметка с поля

Вся область языкового моделирования — это одно уравнение: P(next_token | previous_tokens). И всё. Всё остальное — attention, RoPE, MoE, RLHF — лишь хитрый способ сделать это предсказание точнее.

1. Определение в одно предложение

Языковая модель — это функция, которая берёт последовательность токенов и задаёт распределение вероятностей того, что идёт следующим.

«The cat sat on the ___» → { mat: 0.41, floor: 0.18, sofa: 0.09, keyboard: 0.005, … }

Это не метафора. Именно это буквально и делает любая LM, механически. Сэмплируем из этого распределения → генерация. Сравниваем два предложения → перевод, проверка орфографии, автодополнение кода.

2. Демо: крошечная LM прямо у тебя в браузере

Ниже — настоящая биграммная модель на отрывке из Шекспира (тот самый датасет tinyshakespeare, что используется в makemore и nanoGPT). Она знает только одно: по последнему символу — что вероятно идёт дальше?. Нажми Step несколько раз. Посмотри, как она работает.

Стартовый символ:
T
Вероятность следующего символа при «T»:
o
50.0%
h
37.5%
:
12.5%
Обрати внимание: после «T» самый вероятный следующий символ — «h». После пробела загораются гласные. Модель никогда не читала Шекспира — она просто посчитала совместные вхождения. И это уже языковая модель.

3. Но… откуда берутся «токены»?

Компьютеры читают числа, а не слова. Токенизация разбивает сырой текст на дискретные единицы, а затем присваивает каждой целочисленный ID. Три распространённые стратегии — попробуй их:

Токены (65):
The·quick·brown·fox·jumps·over·the·lazy·dog.·Tokenization·is·fun!

Словарь: крошечный (~80 символов), но последовательности становятся длинными. Модель вынуждена учить орфографию.

Компромисс, который держи в голове:
  • Посимвольная: крошечный словарь (~80 символов), но длинные последовательности.
  • Пословная: короткие последовательности, огромный словарь, не справляется с новыми словами (<UNK>).
  • BPE / сабворды: золотая середина. GPT-2 использует ~50k токенов.

4. Токены становятся векторами — «эмбеддинги»

Когда у токена есть целочисленный ID, мы ищем его в гигантской таблице эмбеддингов — она даёт нам вектор (скажем, 768 чисел). Нам нужно представление, где похожие вещи лежат рядом и которое может подталкивать градиентный спуск. У целых чисел такого свойства нет; у векторов — есть.

Пространство эмбеддингов, визуализированное (2D-проекция):

Наведи на слова, чтобы увидеть соседей. Модели никогда не говорили, что «king похож на queen» — она вывела это из совместной встречаемости. Смысл выпадает из контекста.

Заметка с поля

Мы никогда не говорим сети, что значат слова. Мы лишь учим её предсказывать следующий токен. Смысл — эмерджентное свойство задачи предсказания. То же будет верно и на масштабе — «понимание», «рассуждение», всё это.

5. Тепловая карта биграмм

Вот секрет твоей крошечной LM. Это просто двумерная таблица: строки = «текущий символ», столбцы = «следующий символ», ячейки = «как часто это случалось». Ярче = вероятнее. Наведи, чтобы рассмотреть.

Наведите на ячейку, чтобы увидеть условную вероятность.
Эта матрица 27×27 и есть твоя модель. В Модуле 2 мы заменим её на маленькую нейросеть; в Модуле 5 — на self-attention. Дуга всего курса — прямо здесь.

Фундамент, на котором стоит этот урок

Читай это параллельно с упражнением — global-first, работы, на которых держится вся область.

Казахский угол

Казахская агломинативность раздувает токенизацию — один корень даёт лишние токены. Где казахский стоит по токенизации:

→ Дерево вклада: токенизация

6. Горячие вопросы

Не двигайся дальше, пока не сможешь ответить на них вслух, своими словами. (Без гугления.)

  1. Почему предсказываем следующий токен, а не текущий?
  2. Как выглядела бы тепловая карта биграмм для модели, которая не видела никаких данных?
  3. Почему посимвольную токенизацию «легче учить», но «труднее масштабировать»?
  4. Что значит, что два вектора-эмбеддинга «близки»? Косинус или евклидово расстояние — что и почему?
  5. Если биграммная модель — всего лишь таблица поиска, то что вообще значит «обучение»?

7. Твоя миссия

Открой code/exercise_01_bigram.py. Там ждёт заготовка. Тебе нужно:

  • Загрузить tinyshakespeare.txt.
  • Построить словарь (уникальные символы → целочисленные ID).
  • Посчитать биграммы — матрицу (V, V).
  • Нормировать строки в вероятности (следи за делением на ноль).
  • Сэмплировать 200 символов нового «Шекспира». Вот он, момент магии.
  • Посчитать среднее отрицательное логарифмическое правдоподобие. Это и есть твой лосс — запиши его.
Чеклист для чтения
Модуль 01 · Что такое языковая модель?Module 02: From Counts to Neurons → скоро