Технический отчёт DeepSeek-V4 — часть 2/2

Продолжаем изучать технический отчёт DeepSeek-V4. В прошлый раз мы разобрали архитектуру модели и поговорили о квантовании. Сегодня речь пойдёт об обучении DeepSeek-V4.

При сборе данных для претрейна фокусируются на датасетах с большими, значимыми контекстами, кодовых и математических наборах. В итоге объём всего датасета составил 32 триллиона токенов. Разработчики отдельно отфильтровывали контент, созданный другими моделями, чтобы он не попал в датасет.

Любопытна схема претрейна. Для AdamW установили такие гиперпараметры: 𝛽1 = 0,9, 𝛽2 = 0,95, 𝜀 = 10−20. Последний обычно стараются не делать таким низким, потому что это чревато расходимостью модели.

Размер батча на претрейне — 75 миллионов токенов. Вероятно, такого большого объёма позволил достичь Muon. Само обучение происходит с постоянно растущим размером батча: сперва 16 тысяч токенов, потом — 64 тысячи, а затем — миллион. На первом миллионе токенов модель обучается исключительно с dense-аттеншеном. Ещё какое-то время уходит, чтобы «прогреть» модель под lighting Indexer в CSA.

В случае нестабильностей модель и роутер обучают отдельно. Если происходит спайк, модель откатывается на несколько шагов назад и учится в специальном режиме. В нём делается дополнительный форвард за dt шагов до сэмпла, чтобы зафиксировать выбранных экспертов. Роутер обучается с «опозданием» как раз на эти dt шагов. Авторы говорят, что такой метод делает обучение модели на триллионы параметров гораздо более стабильным. И это при том, что спайки встречаются не очень часто, поэтому штраф получается небольшим. Для борьбы с резким ростом активаций SwiGLU их ограничивают на отрезке от -10 до 10.

Что касается посттрейна, то, как и в DeepSeek-V2, на разные домены обучаются разные модели-специалисты. Учат сразу в трёх режимах:

• non-think — для быстрых, интуитивных ответов, основанных на привычках или простых правилах;
• think high — для вдумчивого анализа; медленнее, но точнее, чем предыдущий режим;
• tink max — для ризонинга «на полную».

В последнем случае модели дают системный промпт следующего содержания.

Ты ОБЯЗАН очень тщательно обдумать задачу и всесторонне разобрать проблему, чтобы выявить ее причины, строго проверяя свою логику на всех возможных ситуациях, пограничных случаях и сценариях. Распиши весь процесс рассуждения, документируя каждый шаг, рассмотренную альтернативу и отвергнутую гипотезу, чтобы не осталось ни одного непроверенного предположения.


Для задач, у которых нет однозначного решения, параллельно обучают ту же LLM в режиме генеративной реверод-модели. Таким образом модель умеет исполнять две роли: решателя и оценщика.

Разработчики также создали свою схему тул-коллинга и для этого ввели специальный DMSL-токен, появление которого, по сути, сигнализирует о тул-колле. В качестве формата тул-коллинга используют .xml — говорят, что его более чем достаточно.

Благодаря большому контекстному окну во время обучения получается держать весь контекст — и в диалоговых сценариях, и при вызове инструментов (схема на изображении). Для промежуточных задач (вроде генерации поисковых запросов или заголовков для пользовательской сессии) используются дополнительные специальные токены.

Несколько обученных специалистов дистиллируются в отдельную модель через обычную KL-дивергенцию. При этом дистиллируется не только top k логитов, а все. Такая full-vocab-дистилляция потребляет огромное количество памяти — сотни килобайт на каждый токен, — поэтому авторы кэшируют только последний слой скрытых представлений учителя, перед финальным линейным слоем. В момент дистилляции подгружается только линейный слой, а логиты полностью реконструируются на лету. Благодаря этому объём занимаемой памяти снижается до менее чем десяти килобайт на токен.

Разбор подготовил Михаил Хрущев

Душный NLP