Генеративный AI

Языковые модели: от n-gram до GPT

Цели урока

  • Объяснять марковское допущение n-gram и его ограничения по длине контекста
  • Понимать механику LSTM: как cell state решает проблему vanishing gradient
  • Описывать self-attention: Q, K, V векторы и формулу Attention(Q,K,V)
  • Интерпретировать scaling laws и вывод Chinchilla об оптимальном соотношении параметров и данных

Предварительные знания

  • Что такое генеративный AI

Ian Goodfellow и рождение современного генеративного AI

2014 год. Конференция NIPS. Ian Goodfellow публикует статью «Generative Adversarial Nets» - GANs. Два нейрона: генератор создаёт изображения, дискриминатор пытается отличить реальные от сгенерированных. Они обучаются противостоять друг другу. За ночь после дискуссии в баре Монреаля Goodfellow написал первый рабочий код. Это был первый практический прорыв в генеративном AI - предшественник Stable Diffusion, DALL-E, Midjourney. GANs открыли путь к синтетическим данным, аугментации и deep fakes.

2022 год. Stable Diffusion открытый код. 4 октября - 100 тысяч скачиваний за сутки. Midjourney в марте 2023: более 1 млн платных подписчиков. DALL-E 3, GPT-4V, Sora - generative AI из исследовательского проекта стал индустрией за 18 месяцев. В основе - та же идея: предсказание следующего токена. Клавиатура смартфона и GPT-4 - одна математика, разный масштаб.

  • **Автодополнение на клавиатуре смартфона** - n-gram модель в реальном времени, обученная на личных сообщениях
  • **GPT-4 API (OpenAI)** - обрабатывает более 10 млн запросов в день, ценообразование от 2.5 USD за 1M токенов
  • **GitHub Copilot** - code-specific LLM, более 1.3 млн платных подписчиков, экономит ~55% времени на написание кода
  • **Claude (Anthropic)** - 200K контекстное окно, decoder-only Transformer с Constitutional AI
  • **Scaling laws** предсказали возможности GPT-4 ещё до его создания - по кривой масштабирования предыдущих моделей

N-gram модели: предсказание по контексту

Клавиатура смартфона предсказывает следующее слово. ChatGPT предсказывает следующий токен. Разница: клавиатура смотрит на 2-3 предыдущих слова, GPT-4 - на 128 000 токенов. Между ними - 60 лет эволюции. **Языковая модель** - это P(w_n | w_1, w_2, ..., w_{n-1}). Вероятность следующего слова при заданном контексте. **N-gram**: марковское допущение - смотреть только на последние n-1 слов.

Если словарь содержит 50 000 слов, количество возможных последовательностей из 10 слов - это 50 000^10. Хранить всё невозможно. Решение **n-gram модели**: следующее слово зависит только от последних n-1 слов, а не от всей истории. Bigram видит 1 слово, trigram - 2. Быстро, просто, не требует GPU.

**Проблема разреженности (sparsity).** Если в корпусе нет фразы «кот лежит на кровати», то P(кровати | на) = 0. Модель считает это невозможным. Решения: **Laplace smoothing** (добавить 1 к каждому счётчику), **Kneser-Ney smoothing** (перераспределить вероятность от частых к редким), **backoff** (нет trigram - откат к bigram).

**Главное ограничение n-gram:** контекст фиксирован и мал. Bigram видит 1 слово, trigram - 2. Предложение «Программист, который вчера написал сложный алгоритм, пошёл домой» требует связать «программист» и «пошёл» через 6 слов - n-gram не справится.

**N-gram модели до сих пор используются.** Быстрые, интерпретируемые, не требуют GPU. Google Search использует n-gram для автодополнения, клавиатуры смартфонов - для предсказания слов, speech recognition - как Language Model для ре-ранкинга гипотез.

Trigram-модель обучена на корпусе новостей. При генерации встречает контекст «президент подписал», которого нет в обучающих данных. Что произойдёт без smoothing?

RNN Language Models: память в нейронах

N-gram видит 2-3 слова. Язык устроен иначе: подлежащее может быть за 20 слов до сказуемого. В 2010-х эту задачу взяли **Recurrent Neural Networks (RNN)** - нейросети с циклическими связями, где скрытое состояние (hidden state) передаётся от шага к шагу. Теоретически: контекст не ограничен. На практике: gradient vanishing убивал память на длинных последовательностях.

На каждом шаге RNN: **h_t = tanh(W_h * h_{t-1} + W_x * x_t + b)**. Hidden state h_t - вектор фиксированного размера (256-1024), в который сжимается вся предыдущая история. **Проблема vanishing gradient**: в 1997 году Зепп Хохрайтер и Юрген Шмидхубер предложили **LSTM** - архитектуру с воротами (gates), которая явно решает, что запомнить, что забыть.

**GRU (2014)** - упрощённая версия LSTM с двумя воротами (reset gate, update gate). Работает сравнимо с LSTM при меньшем количестве параметров. Но и LSTM, и GRU имеют общую проблему: **последовательная обработка**. Каждый шаг зависит от предыдущего - параллелизация невозможна. На длинных текстах это критически медленно.

LSTM решает проблему vanishing gradient в vanilla RNN. Какой механизм является ключевым?

Transformer: attention - это всё, что нужно

2017 год. Google Brain. Vaswani et al. публикуют «Attention Is All You Need». Главный вопрос: а что если вообще отказаться от рекуррентности? Обработать всю последовательность **параллельно**? **Self-attention** позволяет каждому токену смотреть на все остальные напрямую. Не через цепочку hidden states - напрямую. RNN с LSTM устарели за один год.

«Животное не перешло улицу, потому что **оно** было слишком уставшим». Чтобы понять, что «оно» = «животное», нужно связать слова через 5 позиций. В RNN: связь через 5 hidden states, может затухнуть. В Transformer: «оно» напрямую смотрит на «животное» через attention, получает высокий вес. Расстояние не имеет значения.

**Математика self-attention.** Каждый токен -> три вектора: **Query (Q)** - «что ищу?», **Key (K)** - «что предлагаю?», **Value (V)** - «что содержу?». Attention score = скалярное произведение Q и K. Формула: **Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) * V**. Деление на sqrt(d_k) - стабилизация градиентов при больших размерностях.

**Decoder-only архитектура (GPT).** Оригинальный Transformer: encoder + decoder (для перевода). Для генерации достаточно **только decoder** с **causal mask**: каждый токен видит только предыдущие. Это превращает Transformer в авторегрессивную LM: предсказал токен - добавил к контексту - предсказал следующий. GPT-1, GPT-2, GPT-3, GPT-4, Claude, LLaMA - все decoder-only.

**Multi-head attention.** Один attention-блок фокусируется на одном типе связи. Multi-head запускает несколько параллельно: одна голова следит за синтаксисом, другая - за семантикой, третья - за корреференцией. GPT-3 использует 96 голов, каждая с d_k = 128. Позиционное кодирование: **RoPE (Rotary Position Embedding)** в современных моделях кодирует относительные расстояния между токенами.

«Студентка, которая прочитала сложную книгу про квантовую физику, получила пятёрку» - нужно связать «студентка» и «получила». Какое преимущество Transformer над RNN?

Scaling Laws: больше - лучше?

2020 год. Kaplan et al. из OpenAI обнаружили: качество языковой модели **предсказуемо** зависит от трёх факторов - параметров (N), данных (D) и вычислений (C). Зависимость описывается степенными законами и не показывает насыщения: удваивая параметры, loss стабильно снижается. Это переключило всю индустрию с «хорошая архитектура» на «больше всего».

**Chinchilla (2022)** изменил гонку: GPT-3 был **under-trained** - 300B токенов при 175B параметров, а оптимально - 3.5T токенов. Chinchilla (70B параметров, 1.4T токенов) обошёл Gopher (280B, 300B токенов) при 4x меньших параметрах. Вывод: **данные важнее размера модели**. Гонка переключилась с параметров на качественные данные.

МодельПараметрыДанныеКлючевая способность
GPT-1 (2018)117M~5GBTransfer learning
GPT-2 (2019)1.5B~40GBZero-shot задачи
GPT-3 (2020)175B~570GBFew-shot, in-context learning
Chinchilla (2022)70B1.4T токеновData-efficient scaling
LLaMA 2 (2023)70B2T токеновOpen-source LLM
GPT-4 (2023)~1.8T (MoE)~13T токеновMultimodal, reasoning

**Emergent abilities** - самый интригующий феномен. При достижении определённого размера модели внезапно демонстрируют способности, которым их не учили: **chain-of-thought reasoning**, **few-shot learning**, **code generation**, **mathematical reasoning**. GPT-2 не решал арифметику, GPT-3 справлялся с простыми примерами, GPT-4 решает олимпиадные задачи. Пороги непредсказуемы.

**Scaling - не панацея.** Scaling laws предсказывают loss, но не гарантируют правильность. GPT-4 всё ещё галлюцинирует, ошибается в арифметике, может быть обманут adversarial-промптами. Обучение GPT-4 оценивается в 100 млн долларов и потребовало около 25 000 GPU A100. Экологический след одного обучения GPT-3 - примерно 552 тонны CO2.

**Mixture of Experts (MoE)** - архитектурный трюк для масштабирования. Вместо одной гигантской сети - несколько экспертов (подсетей), из которых для каждого токена активируются только 2-4. GPT-4 предположительно использует MoE с ~1.8T параметров, но на каждый токен активируются ~280B. Огромная ёмкость при разумной стоимости inference.

GPT просто запоминает тексты из интернета и выдаёт их фрагменты - это гигантская база данных с поиском

LLM выучивают статистическое распределение над последовательностями токенов и генерируют НОВЫЕ комбинации. Модель с 175B параметров обучена на ~570GB текста - это физически невозможно запомнить (сжатие в ~3x). Модель выучивает паттерны, правила и связи.

Ключевые идеи

  • **N-gram** - простейшая LM: P(слово | последние n-1 слов). Быстрая, интерпретируемая, но ограничена коротким контекстом и разреженностью
  • **RNN/LSTM** - нейросетевая LM с адаптивной памятью (hidden state). LSTM решает vanishing gradient через ворота, но обрабатывает токены последовательно - медленно
  • **Transformer** - параллельная обработка через self-attention: каждый токен напрямую связан с каждым. Фундамент GPT, Claude, LLaMA. «Attention Is All You Need» (2017)
  • **Scaling laws** (Kaplan 2020): loss предсказуемо снижается с ростом N, D, C. Chinchilla (2022): D ~ 20*N - данные важнее параметров
  • **Emergent abilities**: chain-of-thought, few-shot learning появляются при масштабировании - непредсказуемо, но стабильно
  • Клавиатура смартфона и GPT-4 - одна идея: предсказание следующего токена. Разница: 2 слова контекста vs 128 000 токенов

Связанные темы

Языковые модели - центральная тема генеративного AI:

  • Что такое генеративный AI — LLM - главный пример генеративных моделей, предсказывающих P(x)
  • Токенизация: BPE и SentencePiece — Прежде чем предсказать токен, текст нужно разбить на токены
  • Transformer-архитектура — Детальный разбор multi-head attention, layer normalization и positional encoding

Вопросы для размышления

  • Если scaling laws не показывают насыщения - означает ли это, что достаточно большая LLM достигнет настоящего интеллекта? Или есть фундаментальные ограничения?
  • N-gram видит 2-3 слова, GPT-4 - 128 000 токенов. Человек удерживает в рабочей памяти ~7 элементов, но понимает книги на 500 страниц. Как?
  • Emergent abilities появляются внезапно при масштабировании. Это настоящий emergence или просто плохое измерение маленьких моделей?

Связанные уроки

  • gai-01 — Вводное понятие генеративного AI и авторегрессии
  • gai-03 — Токенизация BPE - следующий шаг: как текст попадает в языковую модель
  • gai-04 — Детальный разбор multi-head attention и позиционных энкодингов
  • aie-03-llm-fundamentals — GPT-4, Claude, LLaMA в production - прикладное использование LLM
  • dl-01 — Нейросетевые основы backpropagation и обучения
  • nlp-01 — NLP pipeline как контекст для языкового моделирования
  • prob-01-intro
Языковые модели: от n-gram до GPT

0

1

Войти

Если бы GPT копировал тексты, он не мог бы писать стихи в стиле Пушкина на новую тему, объяснять квантовую физику языком пятилетнего ребёнка или решать задачи, которых не было в обучающих данных. Модель выучила распределение - как слова и концепции связаны - и генерирует новые тексты из этого распределения.

Chinchilla (2022) показал, что GPT-3 (175B параметров, 300B токенов) был under-trained. Какой главный вывод?