Динамика обучения
От случайных весов к предсказанию следующего слова
Проблема: Вы знаете, что LLM "обучаются" на огромных объёмах текста — но что на самом деле означает обучение? Как модель переходит от случайных весов к предсказанию следующего слова с поразительной точностью? Понимание динамики обучения объясняет, почему обучение LLM стоит миллионы, почему одни модели лучше других и почему "temperature" управляет креативностью.
Решение: Как работает обучение LLM
Обучение LLM — это процесс оптимизации, управляемый одним числом: cross-entropy loss (функция потерь). Для каждого токена в обучающих данных модель предсказывает распределение вероятностей по словарю. Потери измеряют, насколько это предсказание далеко от реальности. Градиентный спуск (gradient descent) вычисляет наклон (градиент) этих потерь относительно каждого веса и сдвигает каждый вес в направлении уменьшения потерь. Скорость обучения (learning rate) контролирует размер шага — слишком большая, и модель перелетает; слишком маленькая — обучение длится вечно. Современные LLM используют оптимизатор Adam, который адаптирует скорость обучения для каждого параметра индивидуально и использует импульс (momentum) для сглаживания шумных градиентов.
Представьте это как настройку пианино с миллиардами струн. Функция потерь (loss function) говорит вам "насколько расстроено пианино". Градиентный спуск (gradient descent) указывает "в какую сторону крутить каждый колок". Скорость обучения (learning rate) контролирует "насколько сильно крутить". Оптимизатор Adam помнит "какие колки хорошо двигались в прошлый раз" и адаптирует скорость вращения для каждого индивидуально:
- 1. Вычисли потери: насколько неверно предсказание?: Батч токенов проходит через модель (прямой проход). Для каждой позиции модель выдаёт распределение вероятностей по ~100K токенам. Cross-entropy loss измеряет разрыв между предсказанными вероятностями и реальным следующим токеном. Это одно число управляет всем обучением
- 2. Вычисли градиенты: в какую сторону корректировать?: Обратное распространение вычисляет градиент (наклон) потерь относительно каждого веса. Для GPT-3 это означает вычисление 175 миллиардов частных производных за один обратный проход. Каждый градиент говорит: "если этот вес немного увеличить, потери увеличатся/уменьшатся на столько-то"
- 3. Обнови веса: сделай шаг вниз по склону: Оптимизатор Adam обновляет каждый вес: w_new = w_old - lr * adaptive_gradient. Adam хранит скользящие средние прошлых градиентов (импульс) и квадратов градиентов (адаптивный LR). Расписание скорости обучения контролирует глобальный размер шага: warmup от почти нуля, пик, затем cosine decay
- 4. Повтори миллиарды раз: Один полный проход через все обучающие данные — это одна эпоха. Современные LLM часто обучаются менее одной эпохи — Chinchilla показала, что лучше использовать больше данных, чем видеть те же данные дважды. Llama 3 увидела 15.6T токенов за один проход. Кривая потерь постепенно сглаживается по мере схождения модели
Динамика обучения в LLM
- Почему обучение стоит миллионы: Обучение GPT-3: 300B токенов x 175B параметров x ~3.6 миллиона GPU-часов. Каждый шаг обучения одновременно корректировал 175 миллиардов весов с помощью оптимизатора Adam. По ценам облачных GPU это стоило примерно $4.6M. Обучение GPT-4 предположительно стоило более $100M. Цикл обучения тот же — масштаб определяет стоимость
- Temperature и ландшафт потерь: Когда вы устанавливаете temperature в настройках LLM, вы модифицируете распределение softmax при инференсе. Temperature = 0.1 делает распределение пиковым (модель очень уверена). Temperature = 2.0 сглаживает его (более случайно). Это напрямую связано с обучением — во время обучения функция потерь оптимизировала "правильное" распределение следующего токена
- Perplexity: публичная метрика потерь: Perplexity = e^(cross-entropy loss). Когда в статье пишут "perplexity 15.2", это означает, что модель в среднем неуверена так же, как если бы выбирала из 15 равновероятных следующих слов. Ниже perplexity = лучше модель. GPT-2 достиг ~35 на WikiText-103; GPT-3 снизил до ~20. Это одно число показывает, насколько хорошо прошло обучение
- Частая ошибка: Думать, что большая модель всегда лучше. Закон масштабирования Chinchilla (DeepMind, 2022) доказал, что GPT-3 был недообучен — нужно было использовать больше данных и меньше параметров. При фиксированном бюджете вычислений модель 70B, обученная на 1.4T токенов, превосходит модель 175B на 300B токенов. Динамика обучения важнее сырого размера
Интересный факт: Llama 3 405B была обучена на 15.6 триллионах токенов с использованием 16 384 GPU H100 одновременно. Расписание скорости обучения использовало warmup из 8000 шагов, пик 8e-5, затем cosine annealing. Один запуск обучения занял ~54 дня. Если какой-либо GPU выходил из строя, чекпоинтинг позволял возобновить с последнего сохранённого состояния.
Попробуйте сами!
Исследуй интерактивный ландшафт обучения ниже: настраивай скорость обучения, сравнивай оптимизаторы, визуализируй расписания learning rate и смотри, как обучение превращает случайные веса в языковую модель.
«Мяч» = текущие веса модели. Он катится вниз по ландшафту потерь — зелёное = мало ошибок, красное = много. Настрой learning rate, нажми Старт и наблюдай:
Попробуй: Установи LR на 0.005 (ползёт), потом на 0.100 (прыгает). Слишком низкая = еле двигается, слишком высокая = перелетает минимум. Оптимум: 0.03-0.05.
Попробуй сам
Интерактивное демо этой техники
Получить понятное объяснение того, как обучаются языковые модели
Нейронные сети обучаются на данных. Они корректируют свои веса, чтобы делать лучшие предсказания. Процесс включает прямой и обратный проходы.
Один шаг обучения LLM:
- Батч: "The cat sat" -> предсказать "on"
- Forward pass: модель выдаёт вероятности [the=0.15, cat=0.10, sat=0.05, on=0.20, mat=0.50]
- Cross-entropy loss: -log(P("on")) = -log(0.20) = 1.61
- Если бы P("on")=0.90, loss = 0.105 (гораздо лучше)
- Backward pass: вычисляем dL/dw для каждого веса
- Gradient для "on": 0.20 - 1.0 = -0.80 (нужно увеличить)
- Gradient для "mat": 0.50 - 0.0 = +0.50 (нужно уменьшить)
- Adam update: w_new = w_old - 0.0001 * adaptive_gradient
В масштабе GPT-3: это повторяется для 175B весов x 300B токенов.
Промпт "проведи через один шаг с конкретными числами" превращает абстрактный процесс обучения в проверяемую последовательность вычислений, которую можно воспроизвести.
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения