Четвертая лекция курса CME295 в Стэнфордском университете посвящена «индустриальному» закулисью больших языковых моделей (LLM) — процессам их обучения и оптимизации. Преподаватели курса, Афшин и Шервин, подробно разбирают путь модели от поглощения терабайтов интернет-данных до превращения в полезного ИИ-ассистента через механизмы SFT и LoRA.
🎓 Логистика курса и рекап основ 0:05
Лекция началась с организационных моментов: Афшин напомнил, что промежуточный экзамен (midterm) состоится через неделю и будет охватывать материал первых четырех лекций . Экзамен пройдет в формате закрытой книги (closed book), где разрешены только ручки — калькуляторы и шпаргалки запрещены, хотя на сайте курса доступен лист с формулами для подготовки .
Для понимания процесса обучения важно вспомнить ключевые концепции из предыдущих занятий:
- Mixture of Experts (MoE): архитектура, позволяющая масштабировать модели без кратного увеличения стоимости инференса за счет активации лишь части параметров для каждого входа .
- Стратегии декодирования: жадное декодирование (greedy), лучевой поиск (beam search) и сэмплирование .
- Температура: гиперпараметр, регулирующий «остроту» распределения вероятностей токенов .
- Оптимизация инференса: такие методы, как KV-кэширование, критически важны для сокращения задержек при генерации .
🏗️ Претрейн: создание фундамента знаний 7:21
Современная парадигма LLM строится на transfer learning (переносе обучения). Вместо того чтобы обучать отдельную модель для каждой задачи (спам-фильтр, анализ тональности), исследователи сначала обучают гигантскую «базовую» модель на огромном массиве данных .
Претрейнинг — это самый дорогой и ресурсоемкий этап. Его суть заключается в предсказании следующего токена (next token prediction) . Модель поглощает буквально «весь интернет»:
- Common Crawl: архив из миллиардов веб-страниц .
- Википедия и соцсети: статьи и диалоги на Reddit.
- Код: репозитории GitHub и форумы Stack Overflow .
Масштабы данных поражают: если GPT-3 обучалась на 300 миллиардах токенов, то современная Llama 3 прошла через 15 триллионов токенов .
Экономика вычислений и «Закон Чинчиллы»
Афшин вводит две ключевые метрики вычислений:
- FLOPs (floating operations): общее количество операций над числами с плавающей запятой, затраченных на обучение (порядок 10^25 для современных LLM) .
- FLOPS (operations per second): скорость вычислений оборудования (часто указывается в спецификациях GPU) .
Долгое время считалось, что чем больше модель, тем лучше. Однако в 2020 году вышло исследование Scaling Laws, показавшее, что производительность растет линейно с увеличением вычислений, данных и параметров . Позже появился так называемый Chinchilla Law (закон Чинчиллы): для оптимального расхода бюджета на один параметр модели должно приходиться примерно 20 токенов обучающих данных . По этой метрике GPT-3 (175 млрд параметров на 300 млрд токенов) считается «недообученной» .
⚙️ Железо и память: как уместить гиганта в GPU 25:09
Основная проблема обучения — нехватка памяти GPU. Хотя H100 обладает внушительными 80 ГБ видеопамяти, этого недостаточно для хранения всех данных :
- Веса модели (миллиарды параметров).
- Активации (значения на каждом слое для обратного прохода).
- Градиенты.
- Состояния оптимизатора (например, Adam хранит два дополнительных момента для каждого параметра) .
Для решения проблемы используются различные виды параллелизма:
- Data Parallelism (DP): распределение данных между GPU, при котором на каждом устройстве лежит полная копия модели .
- ZeRO (Zero Redundancy Optimizer): устранение дублирования данных. Память экономится за счет шардирования (разделения) состояний оптимизатора, градиентов и параметров между видеокартами .
- Model Parallelism: разделение самой модели (тензорный, конвейерный параллелизм или экспертный параллелизм для MoE) .
⚡ Flash Attention: магия оптимизации памяти 38:39
Метод Flash Attention, разработанный в Стэнфорде, произвел революцию в скорости работы трансформеров . Проблема классического механизма внимания в том, что GPU тратит больше времени на чтение и запись данных в медленную память (HBM), чем на сами вычисления .
Flash Attention использует два типа памяти GPU:
- HBM (High Bandwidth Memory): большая (80 ГБ), но медленная .
- SRAM: очень маленькая (десятки МБ), но в 10 раз быстрее .
Суть метода — в «тайлинге» (блочном подходе). Вместо того чтобы вычислять огромную матрицу внимания целиком и постоянно записывать её в HBM, алгоритм берет маленькие блоки, загружает их в быструю SRAM, проводит там все вычисления (включая softmax) и записывает в основную память только итоговый результат .
Более того, Flash Attention применяет трюк с рекомпьютацией: вместо того чтобы хранить тяжелые активации в памяти для обратного прохода, он просто вычисляет их заново, так как это теперь происходит быстрее, чем чтение из памяти . В итоге мы получаем меньше обращений к памяти и ускорение работы при сохранении точности .
📉 Квантование и смешанная точность 52:40
Нужно ли нам хранить веса с огромной точностью после запятой? Квантование говорит — нет.
- FP32 (Single Precision): 32 бита на число.
- FP16 / BF16: 16 бит. Занимают вдвое меньше места и работают быстрее .
Популярный метод — Mixed Precision Training: веса хранятся в высокой точности (FP32), но все вычисления (прямой и обратный проходы) делаются в FP16 . Это позволяет избежать накопления ошибок при обновлении весов, сохраняя при этом скорость .
🧸 SFT: от предсказателя текста к помощнику 1:02:27
Шервин объясняет, что после претрейна модель — это просто статистический автодополнитель текста. Если спросить «Можно ли стирать плюшевого мишку в машинке?», сырая модель может выдать описание состава мишки или похожий вопрос, но не даст совета .
Чтобы сделать ИИ полезным, применяется SFT (Supervised Fine-Tuning) — контролируемое дообучение на парах «инструкция — ответ» . В отличие от претрейна, здесь используется на порядки меньше данных (тысячи или миллионы примеров вместо триллионов), но они должны быть сверхвысокого качества .
Проблемы выравнивания (Alignment)
В состав данных для SFT входят:
- Диалоги ассистента.
- Написание кода и решение задач.
- Safety (безопасность): обучение модели вежливо отказываться от генерации вредного контента .
Шервин отмечает, что сегодня данные для обучения часто генерируются другими, более мощными LLM, а люди лишь проверяют их качество .
📊 Кризис оценки: бенчмарки против «вайба» 1:26:30
Как понять, стала ли модель лучше?
- Академические бенчмарки (MMLU, GSM8K): дают сухие цифры по знаниям и математике . Однако существует проблема «обучения на тестах»: если данные из бенчмарка попали в обучающую выборку, оценка становится необъективной .
- Chatbot Arena: платформа, где пользователи сравнивают ответы двух анонимных моделей и выбирают лучший . Это оценка «вайба» и предпочтений пользователей.
Спикер подчеркивает субъективность оценок: кому-то нравятся эмодзи в ответах, а эксперты их ненавидят . Кроме того, пользователи склонны выше оценивать модель, которая дает уверенный, но фактически неверный ответ, чем ту, что честно отказывается из соображений безопасности .
🚀 Эффективное дообучение: LoRA и QLoRA 1:37:52
Полное дообучение всех параметров модели слишком дорого. Технология LoRA (Low-Rank Adaptation) позволяет обновлять лишь крошечную часть весов . Идея: мы «замораживаем» основные веса модели и добавляем к ним две маленькие матрицы (A и B), произведение которых имитирует изменения в основной матрице . Это сокращает количество обучаемых параметров в тысячи раз.
QLoRA идет еще дальше, комбинируя LoRA с 4-битным квантованием . Метод использует формат NF4 (Normal Float 4), который предполагает нормальное распределение весов и квантует их максимально эффективно . Это позволяет дообучать огромные модели на обычном потребительском железе, экономя до 16 раз больше видеопамяти .