DeepSeek-V3.2: Pushing the Frontier of Open Large Language Models В конце сентября DeepSeek уже представили модель V3.2, но тогда она была с суффиксом Exp(-erimental). Сейчас же полноценный релиз, в котором нет архитектурных изменений по отношению к ранней версии (и базовая модель, предтренированная на куче текстов, остаётся той же), но в котором много работы проделано в двух направлениях: а) дальнейшее масштабирование RL для рассуждений / агентских задач б) пайплайн генерации синтетических задач для агентов. О них и поговорим. Авторы пишут, что сейчас на RL потратили больше 10% мощностей от затраченных на базовую модель. У R1 было меньше одного процента, у ведущих лабораторий эта цифра около 100% и больше. Пост-тренировка V3.2 включает в себя дистилляцию специализированных моделей — это когда для каждой задачи сначала обучают отдельную модель, предназначенную исключительно для конкретной области. В дополнение к задачам по написанию текстов и общим ответам на вопросы, есть ещё шесть специализированных областей: математика, программирование, общие логические рассуждения, общие агентские задачи, агентское программирование и агентский поиск. «Агентский» — это использующий инструменты (функции, которые модель может вызывать) и многоступенчатый, где для получения ответа нужно вызвать несколько функций. После подготовки специализированных моделей они используются для генерации домен-специфичных синтетических данных для дообучения финального чекпоинта. В таком случае финальное качество будет лишь совсем ниже, зато модель может делать сразу всё, что помогает в дальнейшем RL. RL во многом похож на тот, что уже делали раньше, но и в нём есть несколько интересных аспектов: — для определенных областей, таких как математика, применение относительно слабого штрафа за отклонение в «естественности» языка (по отношению к базовой модели, которая просто хорошо предсказывает текст) или даже полный отказ от него может привести к повышению производительности — помимо сравнения ответов / прогона тестов для математики / программирования, для остальных задач используется GRM — Generative Reward Model и специфичные рубрики, описывающие критерии оценки. Я делал детальный разбор GRM, читайте тут, если пропустили. — одна из больших проблем масштабного RL — это эффективность работы GPU. Многие фреймворки разделяют серверы на тренировочные и rollout-first, делающие генерации в параллель. И в силу разных причин так бывает, что первые ждут, пока вторые догенерируют часть ответов, чтобы сделать оценку. DeepSeek делают иначе: они генерируют сразу много вариантов, а затем разбивают их на маленькие батчи и делают несколько шагов оптимизации. Но эта практика неизбежно привносит поведение off-policy, когда обновления считаются не для текущей модели, а для неё в прошлом (после первого шага оптимизации модель уже не та же) — и в какой-то момент тренировка разваливается. Чтобы стабилизировать обучение, делают Off-Policy Sequence Masking — маскируют последовательности, которые отклоняются от исходной модели больше некоторого порога, если они хуже средней в группе генераций по оценке. (техническое описание: фильтруют по KL семплы с негативным advantage) — также для стабилизации сохраняют маски по токенам, полученные из-за применения top-p / top-k семплирования (которое ограничивает, сколько самых вероятных токенов мы рассматриваем из модели для генерации — таким образом очень маловероятные слова не генерируются). Это нужно для того, чтобы выровнять модели в режиме «как мы генерируем для оценки» и «что мы обучаем».