Учебник LLM для начинающих
Этот курс заглядывает внутрь больших языковых моделей и объясняет, что на самом деле происходит между вашим вопросом и ответом ChatGPT или Claude. От токенизации и эмбеддингов через механизм внимания и архитектуру трансформера к обучению (предобучение, SFT, RLHF) и генерации текста. Ключевые механизмы — BPE, веса self-attention, сэмплирование — даны запускаемыми Python-примерами, которые можно выполнить прямо в браузере. Курс рассчитан на тех, кто знаком с основами нейросетей и Python, и честно говорит как о силе LLM, так и о её границах.
Курс «LLM: как устроены большие языковые модели» состоит из 6 разделов и 27 уроков: Что такое LLM, Токены и эмбеддинги, Механизм внимания (attention), Архитектура трансформера, Обучение LLM и Генерация и использование. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Что такое LLM
- Языковая модель как предсказатель следующего токена
Что такое большая языковая модель: в основе ChatGPT и Claude — одна задача, предсказание следующего токена по предыдущим. Разбираем идею на пальцах.
- От n-грамм к нейросетям: краткая предыстория
Как развивались языковые модели: от частотных n-грамм к рекуррентным сетям и трансформерам. Почему статистика слов упёрлась в потолок и что её заменило.
- Масштаб и эмерджентность: почему размер решает
Параметры, данные и вычисления: что значит «большая» в Large Language Model. Законы масштабирования и эмерджентные способности, появляющиеся с ростом модели.
- Как из предсказания слова получается диалог
Путь от голой языковой модели к чат-боту: чат-разметка, роли system/user/assistant, дообучение под инструкции и почему ассистент вежливо отвечает, а не просто продолжает текст.
- Языковая модель как предсказатель следующего токена
2 Токены и эмбеддинги
- Токенизация: почему не слова и не буквы, а подслова
Как текст превращается в токены: почему модели используют подслова, а не целые слова или отдельные буквы. Баланс между размером словаря и длиной последовательности.
- BPE: как строится словарь токенов (запускаемый пример)
Byte-Pair Encoding шаг за шагом: алгоритм, который сливает самые частые пары символов в новые токены. Запускаемый Python-пример со слияниями на маленьком корпусе.
- Эмбеддинги токенов: вектор на токен (запускаемая близость)
Как токены превращаются в обучаемые векторы-эмбеддинги, где близость означает смысловую похожесть. Запускаемый пример косинусной близости и проблема one-hot.
- Позиционные кодировки: зачем модели порядок (запускаемый пример)
Почему механизм внимания сам по себе не различает порядок слов и как это чинят позиционные кодировки. Синусоидальные позиции в запускаемом Python-примере.
- Токенизация: почему не слова и не буквы, а подслова
3 Механизм внимания (attention)
- Проблема: на что смотреть в контексте
Зачем вообще нужно внимание: токену для понимания нужны не все слова контекста одинаково, а избирательно. Разрешение неоднозначностей и дальние связи в тексте.
- Query, Key, Value: идея механизма
Тройка query, key, value как сердце внимания: запрос ищет подходящие ключи, а возвращает связанные с ними значения. Аналогия с поиском и роль обучаемых матриц.
- Расчёт весов внимания: softmax(QKᵀ)·V вручную (запускаемый пример)
Полная формула self-attention на маленьких векторах: скалярное произведение Q и K, масштабирование, softmax и взвешенная сумма V. Запускаемый Python-пример по шагам.
- Multi-head attention: зачем несколько голов (запускаемый пример)
Почему трансформер использует не одно, а несколько параллельных вниманий-голов. Разные головы ловят разные типы связей. Запускаемый пример с двумя расходящимися головами.
- Self-attention против cross-attention
Два режима внимания: self-attention внутри одной последовательности и cross-attention между двумя. Где какой применяется в GPT, в переводчиках и в энкодер-декодерах.
- Проблема: на что смотреть в контексте
4 Архитектура трансформера
- Блок трансформера: attention, feed-forward, residual, нормализация
Из чего состоит один блок трансформера: внимание, полносвязная сеть, остаточные связи и нормализация слоя. Запускаемый пример residual + LayerNorm.
- Стек блоков: как контекст течёт через слои
Почему трансформеры глубокие: десятки одинаковых блоков один над другим. Как представление токена обогащается от слоя к слою — от поверхностных признаков к смыслу.
- Декодер-онли и причинная маска (запускаемый пример)
Архитектура GPT-типа: декодер-онли и причинная (каузальная) маска, запрещающая токену смотреть в будущее. Зачем это нужно для обучения и генерации. Запускаемый пример.
- Контекстное окно: память модели в токенах
Что такое контекстное окно: сколько токенов модель удерживает одновременно. Почему окно ограничено, как оно тратится на промпт и ответ и что происходит при переполнении.
- Блок трансформера: attention, feed-forward, residual, нормализация
5 Обучение LLM
- Предобучение: предсказание следующего токена на всём интернете
Как обучают базовую LLM: self-supervised предсказание следующего токена на гигантских текстах. Откуда берётся обучающий сигнал без ручной разметки.
- Функция потерь, perplexity и масштаб
Как измеряют качество предсказания токена: кросс-энтропийная потеря и perplexity. Запускаемый пример связи уверенности и потери, и почему масштаб снижает потерю.
- Дообучение под инструкции (SFT)
Supervised fine-tuning: как из базовой модели делают послушного ассистента на парах «инструкция → ответ». Зачем это нужно и чем отличается от предобучения.
- RLHF и выравнивание: почему модель вежливая
Обучение с обратной связью от человека (RLHF) и выравнивание: как из послушной модели делают полезного, честного и безопасного ассистента. Идея reward-модели и предпочтений.
- Галлюцинации: почему модель уверенно ошибается
Откуда берутся галлюцинации LLM: модель оптимизирована на правдоподобие, а не на истину. Почему она выдумывает факты с уверенным тоном и как с этим бороться.
- Предобучение: предсказание следующего токена на всём интернете
6 Генерация и использование
- Инференс: авторегрессия токен за токеном
Как модель генерирует ответ во время работы: авторегрессивный цикл, добавление токена к контексту, роль KV-кэша и почему длинные ответы генерируются дольше.
- Сэмплирование: greedy, temperature, top-k, top-p (запускаемый пример)
Как из распределения выбирается следующий токен: жадный выбор, температура, top-k и top-p (nucleus). Запускаемый пример влияния temperature на распределение.
- Чего LLM не умеет: счёт, арифметика, свежие факты (запускаемый пример)
Честно об ограничениях: почему LLM ошибается в подсчёте букв и арифметике, не знает свежих событий и не выполняет вычислений. Запускаемый пример и обходные пути.
- Квантизация и размеры моделей: обзор
Что значат 7B, 70B и квантизация: как размер модели и точность чисел влияют на качество, скорость и возможность запуска. Компромиссы между большой и маленькой моделью.
- Мост к промпт-инжинирингу и RAG
Куда двигаться дальше: промпт-инжиниринг как управление моделью через вход и RAG как способ дать модели свежие, проверенные знания. Связь с ограничениями LLM.
- Инференс: авторегрессия токен за токеном