February 6

DeepSeek-R1: рассуждающий ИИ, обученный с подкреплением, техн. статья

Статья: https://arxiv.org/abs/2412.19437
Репа: https://github.com/deepseek-ai/DeepSeek-V3
Агрегировано с заметками с канала: https://t.me/gonzo_ML

Ребята из DeepSeek просто супер молодцы — так задизраптить всё поле мало кому удавалось. Как OpenAI с ChatGPT, Цукерберг с Llama в опенсорсе, так и теперь DeepSeek.

DeepSeek смогли обучить модели высокого качества по ценам значительно ниже конкурентов.

Во-первых, DeepSeek-V3 (https://github.com/deepseek-ai/DeepSeek-V3) включает две модели: DeepSeek-V3-Base и чат-версию DeepSeek-V3. Обе модели используют архитектуру Mixture-of-Experts (MoE) с 671 миллиардом параметров, из которых 37 миллиардов активны. Эти модели требуют мощной multi-GPU конфигурации (например, 8 H200), но существуют сжатые версии. По качеству они сопоставимы с GPT-4o 0513 и Claude-3.5-Sonnet-1022, превосходя LLaMA-3.1 405B.

Существуют разные оценки стоимости обучения LLaMA 3.1 405B. В статье (https://arxiv.org/abs/2407.21783) указано использование до 16384 H100 и длительность пре-обучения 54 дня (хотя были и другие этапы). Одна из оценок стоимости обучения составляет около $60 миллионов (https://x.com/_LouiePeters/status/1816443587053092917?lang=en).

Про DeepSeek-V3 известно больше. Использовались H800 (урезанная версия H100 для Китая), и по заявлениям разработчиков, полное обучение заняло 2.788 миллиона H800 GPU-часов. При стоимости аренды H800 $2/час, это составляет $5.576 миллионов. Разница на порядок, а при сравнении с OpenAI, вероятно, еще больше.

Это похоже на то, как Индия отправляла аппараты на Марс и Луну дешевле, чем снимаются голливудские фильмы про космос: Mangalyaan (Марс) за $74 миллиона и Chandrayaan-3 (Луна) за $75 миллионов, в то время как фильм "Гравитация" стоил $100 миллионов (https://www.business-standard.com/india-news/what-makes-india-s-space-missions-cost-less-than-hollywood-sci-fi-movies-124110400430_1.html).

Во-вторых, DeepSeek-R1 (https://github.com/deepseek-ai/DeepSeek-R1) – это модели с фокусом на рассуждениях, аналогичные OpenAI o1 и Google Gemini Thinking. Семейство включает DeepSeek-R1-Zero и DeepSeek-R1, обе основаны на DeepSeek-V3-Base и имеют такой же большой размер.

DeepSeek-R1-Zero обучена чистым обучением с подкреплением (Reinforcement Learning, RL) с использованием алгоритма Group Relative Policy Optimization (GRPO, вариант PPO из другой статьи, https://arxiv.org/abs/2402.03300), без донастройки с учителем (Supervised Fine-Tuning, SFT). Это важный результат, показывающий, что можно обучать мощные модели без использования размеченных данных. Интересно, что во время обучения у модели произошел "момент озарения": она сгенерировала фразу "Wait, wait. Wait. That’s an aha moment I can flag here" и пересмотрела свой подход к решению задачи.

DeepSeek-R1-Zero хороша, но иногда генерирует повторяющийся текст, смешивает языки и не очень читабельна. DeepSeek-R1 перед RL дообучается на небольшом количестве (тысячи) примеров цепочек рассуждений (Chain-of-Thought, CoT) – это называется "данные холодного старта" – для обеспечения лучшей начальной точки для RL. Затем применяется тот же RL, что и для Zero, после чего следует SFT на данных для рассуждений (600 тысяч примеров) и общих данных (200 тысяч примеров). Завершается процесс еще одним этапом RL. Эта модель сравнима по качеству с OpenAI-o1-1217.

Подходы с использованием Process Reward Model (PRM) и Monte Carlo Tree Search (MCTS) не дали желаемых результатов.

Также были выпущены плотные дистиллированные модели (1.5B, 7B, 8B, 14B, 32B, 70B) на основе R1, используя Qwen и LLaMA. Они сравнимы с OpenAI-o1-mini.

HuggingFace работает над Open R1 (https://github.com/huggingface/open-r1) – полностью открытой репликацией DeepSeek-R1. Впервые западные исследователи пытаются воспроизвести результаты китайских коллег.

Существует и другая репликация из Гонконга (https://github.com/hkust-nlp/simpleRL-reason).

Но и этого DeepSeek показалось мало, и они выпустили Janus-Pro (https://github.com/deepseek-ai/Janus) – развитие Janus с улучшенным обучением, данными и большим размером. Это мультимодальная модель (1B и 7B параметров), которая принимает на вход текст и изображения, генерируя на выходе также текст и изображения. На генерации изображений, по некоторым данным, превосходит DALL-E 3, SDXL и SD3-Medium.

Выше мы рассказывали общие вещи, а сегодня хотим углубиться в технические детали, которые раньше не обсуждали.

Начнем с DeepSeek-V3. Это по-прежнему трансформер-декодер, но с использованием Mixture-of-Experts (MoE) архитектуры. Модель содержит 671 миллиард параметров, из которых 37 миллиардов активны для обработки каждого токена. Она состоит из 61 трансформерного слоя с размерностью скрытого состояния (d_h) 7168.

В DeepSeek-V3 есть несколько интересных решений. Сначала рассмотрим пару вещей, которые были апробированы в DeepSeek-V2 (https://arxiv.org/abs/2405.04434).

Multi-head Latent Attention (MLA)

Классический Multi-Head Attention (MHA) проецирует эмбеддинги входных токенов (h_t) в векторы запроса, ключа и значения (q_t, k_t, v_t) с помощью отдельных матриц проекций (W^q, W^k, W^v). Затем эти векторы разбиваются на "головы" внимания. После выполнения self-attention (формула: softmax(QK/sqrt(d))*V) получаем выходные векторы (o_t) для каждой головы, которые конкатенируются и пропускаются через выходную матрицу (W^o) для получения окончательного результата слоя.

MLA, в свою очередь, выполняет низкоранговую компрессию для векторов ключей и значений. Вместо прямой проекции h_t в k_t и v_t, h_t сначала проецируется в низкоразмерный латентный вектор (c_t). Из этого вектора, с помощью отдельных матриц (W^uk, W^uv), получаются k_t и v_t. Размерность латентного вектора (d_c) значительно меньше, чем суммарная размерность всех голов внимания (d_h * n_h). Это уменьшает размер KV-кеша при инференсе, так как нужно хранить только низкоразмерные c_t. Более того, матрицы проекций из c_t в k_t и v_t можно оптимизировать, интегрировав W^uk в W^q и W^uv в W^o.

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

Позиционные эмбеддинги RoPE несовместимы с низкоранговой компрессией KV. Для решения этой проблемы авторы предложили decoupled RoPE strategy с дополнительными многоголовыми q^R и общим k^R с размерностью d^R_h на голову. Итоговые векторы Q и K получаются конкатенацией векторов, полученных из c_t и RoPE векторов (q^R, k^R). Формулы в разделе 2.1.2 статьи описывают это более наглядно.

В DeepSeek-V2 d_c равнялась 4d_h (размерность четырех голов), а d^R_h равнялась d_h/2 (полголовы). В MLA DeepSeek-V3 используется 128 голов внимания размерностью 128 каждая. d_c равна 512.

Существуют и другие методы оптимизации внимания, такие как Multi-Query Attention (MQA) (https://arxiv.org/abs/1911.02150), где K и V общие для всех голов, и Grouped-Query Attention (GQA) (https://arxiv.org/abs/2305.13245), где количество key-value голов больше одного, но меньше, чем количество query голов.

MLA эффективно экономит кеш, сравним с GQA с 2.25 группами, при этом производительность даже выше, чем у MHA.

DeepSeekMoE (https://arxiv.org/abs/2401.06066)

"Эксперты" в DeepSeekMoE находятся в слоях FFN, а не в MLA. Слой FFN заменяется на выбор и вызов нескольких "экспертов". Каждый эксперт – это отдельный слой FFN, выбираемый алгоритмом роутинга. GShard активирует двух экспертов на слой, Switch Transformer – одного. Каждый токен отправляется выбранным экспертам, и если их несколько, их ответы комбинируются (например, с весами).

DeepSeekMoE стремится к большей специализации экспертов. Для этого эксперты разбиваются на более мелкие. Каждый эксперт делится на m частей, но активируется в m раз больше экспертов, сохраняя объем вычислений. Это называется Fine-Grained Expert Segmentation. Вместо K активных экспертов из N, получаем mK из mN. Это увеличивает количество возможных комбинаций активных экспертов, что способствует специализации.

Для учета общих знаний выделяется несколько общих экспертов (shared experts), к которым токены отправляются всегда. В DeepSeek-V3 используется 1 shared эксперт и 256 routed экспертов, из которых выбирается 8 активных.

Routed эксперты выбираются по affinity score – скалярному произведению эмбеддинга токена и центроида эксперта. В DeepSeek-V2 использовался softmax от этого произведения, а в DeepSeek-V3 – sigmoid с нормализацией.

Для предотвращения коллапса роутинга (когда все токены отправляются одним и тем же экспертам) в DeepSeek-V2 использовался балансирующий лосс. В DeepSeek-V3 от него отказались в пользу auxiliary-loss-free load balancing strategy (https://arxiv.org/abs/2408.15664). В этой стратегии к affinity score добавляется bias, по которому выбираются top-k эксперты. Bias не используется для вычисления весов при комбинировании ответов экспертов. Bias динамически обновляется в зависимости от нагрузки на экспертов.

Для балансировки нагрузки в последовательности используется Complementary Sequence-Wise Auxiliary Loss с малым весом. Также используется Node-Limited Routing, ограничивающий количество устройств, на которые отправляется каждый токен (максимум 4).

Multi-Token Prediction (MTP)

MTP предсказывает несколько токенов в каждой позиции (в DeepSeek-V3 – два: текущий и следующий). Это усиливает обучающий сигнал и может улучшить эффективность обучения. Также это помогает модели лучше предсказывать будущие токены.

Для предсказания D дополнительных токенов используется D MTP модулей с общими эмбеддингами и выходным слоем. Каждый модуль вычисляет кросс-энтропийный лосс, и средний лосс по всем модулям используется как дополнительный лосс модели (0.3 для первых 10 триллионов токенов, 0.1 для последующих 4.8 триллионов). При инференсе MTP модули отбрасываются, но могут использоваться для speculative decoding.

MTP улучшает производительность на большинстве бенчмарков. Acceptance rate для следующего токена составляет 85-90%. С speculative decoding TPS увеличивается в 1.8 раза.

Инфраструктура

DeepSeek-V3 обучался на кластере из 2048 NVIDIA H800 GPU. H800 – это версия H100 с ограниченной пропускной способностью interconnect и пониженной производительностью FP64. Для обучения использовался собственный фреймворк HAI-LLM.

DeepSeek-V3 использует 16-way Pipeline Parallelism (PP), 64-way Expert Parallelism (EP) с 8 нодами и ZeRO-1 Data Parallelism (DP). Для PP разработан алгоритм DualPipe, уменьшающий pipeline bubbles. Благодаря оптимизациям памяти удалось обойтись без Tensor Parallelism (TP). Также разработаны эффективные cross-node all-to-all communication kernels.

FP8 Training

DeepSeek-V3 – одна из первых больших открытых моделей, обученных в FP8 (8-битная плавающая запятая). Ранее были работы по обучению в FP8 для меньших моделей (7B на 2T токенов, https://arxiv.org/abs/2409.12517) и для GPT-175B (https://arxiv.org/abs/2310.18313, библиотека: https://github.com/Azure/MS-AMP). Более подробное описание форматов чисел с плавающей запятой можно найти здесь: https://moocaholic.medium.com/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407.

В DeepSeek-V3 используется mixed precision: некоторые операции выполняются в BF16 или FP32 (embedding module, output head, MoE gating modules, normalization operators, attention operators, master weights, weight gradients, optimizer states). Однако большинство вычислений выполняется в FP8, что экономит память и ускоряет обучение. Для повышения точности используются различные стратегии, например, специальное квантование и повышенная точность для аккумуляции. Для всех тензоров используется формат E4M3 (4 бита на экспоненту, 3 бита на мантиссу).

Обучение в FP8 было протестировано на DeepSeek-V2 (16B и 230B параметров), и результаты сравнимы с BF16.

Оптимизации инференса

Деплоймент разделен на фазы prefilling (обработка промпта и вычисление KV) и decoding (авторегрессионная генерация). Минимальный юнит для prefill – 4 ноды с 32 GPU, для decoding – 40 нод с 320 GPU.

Рекомендации по дизайну железа

Авторы предлагают использовать GPU со-процессор или сетевой со-процессор для разгрузки коммуникационных задач. Также предлагается улучшить поддержку FP8 в тензорных ядрах, добавить поддержку tile- и block-wise квантований, онлайн квантования и транспонированных GEMM-операций.

DeepSeek-R1: Стимулирование Способности к Рассуждению в Больших Языковых Моделях с помощью Обучения с Подкреплением

Авторы представляют первое поколение моделей для рассуждений, DeepSeek-R1-Zero и DeepSeek-R1.

DeepSeek-R1-Zero, обученная с помощью масштабного обучения с подкреплением (RL) без предварительной донастройки с учителем (SFT), демонстрирует значительные способности к рассуждению. Благодаря RL, DeepSeek-R1-Zero самостоятельно осваивает множество мощных и интересных стратегий рассуждения. Однако, у нее есть проблемы с читабельностью и смешением языков.

Для решения этих проблем и дальнейшего улучшения производительности авторы разработали DeepSeek-R1, которая использует многоэтапное обучение и данные "холодного старта" перед RL. DeepSeek-R1 достигает производительности, сравнимой с OpenAI-o1-1217, в задачах на рассуждение. Авторы открыли исходный код DeepSeek-R1-Zero, DeepSeek-R1 и шести плотных моделей (1.5B, 7B, 8B, 14B, 32B, 70B), дистиллированных из DeepSeek-R1 на основе Qwen и Llama.

1. Введение

В последние годы большие языковые модели (LLM) быстро развиваются, приближаясь к общему искусственному интеллекту (AGI). Пост-обучение стало важным этапом, улучшая точность рассуждений, согласованность с социальными ценностями и адаптацию к предпочтениям пользователей, при этом требуя меньше ресурсов, чем пре-обучение.

Модели серии OpenAI o1 первыми внедрили масштабирование во время инференса за счет увеличения длины цепочки рассуждений (Chain-of-Thought, CoT). Это улучшило результаты в задачах на математику, программирование и научные рассуждения. Однако, эффективное масштабирование во время тестирования остается открытым вопросом. Существующие подходы, такие как reward модели, основанные на процессе, обучение с подкреплением и алгоритмы поиска, пока не достигли уровня моделей o1.

В этой работе авторы делают первый шаг к улучшению рассуждений LLM с помощью чистого RL. Цель – изучить потенциал LLM в развитии способностей к рассуждению без обучающих данных, фокусируясь на самообучении через RL. В качестве базовой модели используется DeepSeek-V3-Base, а в качестве фреймворка RL – GRPO (https://arxiv.org/abs/2412.19437).

DeepSeek-R1-Zero демонстрирует интересные стратегии рассуждения. Например, pass@1 на AIME 2024 увеличивается с 15.6% до 71.0%, а с голосованием по большинству – до 86.7%, что соответствует OpenAI-o1-0912.

Однако, у DeepSeek-R1-Zero есть проблемы с читабельностью и смешением языков. Для их решения авторы разработали DeepSeek-R1, которая использует данные "холодного старта" и многоэтапное обучение. Сначала собираются данные "холодного старта" для донастройки DeepSeek-V3-Base. Затем применяется RL, как в DeepSeek-R1-Zero. После сходимости RL создаются новые данные SFT с помощью rejection sampling на чекпойнте RL, которые комбинируются с данными DeepSeek-V3 в областях письма, фактических вопросов и ответов и самопознания. Затем DeepSeek-V3-Base обучается заново. После этого применяется еще один этап RL с учетом промптов из всех сценариев. Полученный чекпойнт называется DeepSeek-R1 и достигает производительности OpenAI-o1-1217.

Авторы также исследовали дистилляцию из DeepSeek-R1 в меньшие плотные модели. Использование Qwen2.5-32B в качестве базовой модели и прямая дистилляция из DeepSeek-R1 дает лучшие результаты, чем применение RL к Qwen2.5-32B. Это показывает важность паттернов рассуждения, обнаруженных большими моделями. Авторы открыли исходный код дистиллированных моделей Qwen и Llama. Дистиллированная модель 14B превосходит QwQ-32B-Preview, а модели 32B и 70B устанавливают новый рекорд среди плотных моделей.

1.1. Вклад

  • Пост-обучение: Авторы применили RL непосредственно к базовой модели без SFT. Это позволило модели исследовать CoT для решения сложных задач, что привело к созданию DeepSeek-R1-Zero. DeepSeek-R1-Zero демонстрирует самопроверку, рефлексию и генерацию длинных CoT. Это первое открытое исследование, подтверждающее, что способности к рассуждению LLM можно стимулировать только с помощью RL.
  • Дистилляция: Авторы показали, что паттерны рассуждения больших моделей можно дистиллировать в меньшие модели, что дает лучшие результаты, чем RL на малых моделях. Открытый исходный код DeepSeek-R1 и ее API помогут сообществу создавать лучшие малые модели.
  • Донастройка плотных моделей: Используя данные, сгенерированные DeepSeek-R1, авторы донастроили несколько плотных моделей. Результаты показывают, что дистиллированные модели работают очень хорошо. DeepSeek-R1-Distill-Qwen-7B достигает 55.5% на AIME 2024, превосходя QwQ-32B-Preview. DeepSeek-R1-Distill-Qwen-32B достигает 72.6% на AIME 2024, 94.3% на MATH-500 и 57.2% на LiveCodeBench. Эти результаты значительно превосходят предыдущие открытые модели и сравнимы

с o1-mini. Авторы открыли исходный код дистиллированных чекпойнтов 1.5B, 7B, 8B, 14B, 32B и 70B на основе Qwen2.5 и Llama3.

1.2. Краткий обзор результатов оценки

  • Задачи на рассуждение: DeepSeek-R1 достигает 79.8% Pass@1 на AIME 2024, немного превосходя OpenAI-o1-1217. На MATH-500 она достигает 97.3%, что соответствует OpenAI-o1-1217 и значительно превосходит другие модели. В задачах на программирование DeepSeek-R1 демонстрирует экспертный уровень, достигая рейтинга 2029 Elo на Codeforces, что превосходит 96.3% участников соревнования. В инженерных задачах DeepSeek-R1 немного лучше DeepSeek-V3.
  • Знания: На бенчмарках MMLU, MMLU-Pro и GPQA Diamond DeepSeek-R1 достигает отличных результатов, значительно превосходя DeepSeek-V3 (90.8% на MMLU, 84.0% на MMLU-Pro и 71.5% на GPQA Diamond). Хотя она немного уступает OpenAI-o1-1217, DeepSeek-R1 превосходит другие закрытые модели. На SimpleQA DeepSeek-R1 превосходит DeepSeek-V3, демонстрируя способность обрабатывать фактические запросы. Аналогичная тенденция наблюдается у OpenAI-o1 по сравнению с GPT-4o.
  • Другое: DeepSeek-R1 также хорошо справляется с творческим письмом, общими вопросами и ответами, редактированием, реферированием и другими задачами. Она достигает 87.6% length-controlled win-rate на AlpacaEval 2.0 и 92.3% win-rate на ArenaHard. DeepSeek-R1 значительно превосходит DeepSeek-V3 в задачах с длинным контекстом.

2. Подход

2.1. Обзор

Предыдущие работы полагались на большие объемы обучающих данных. Авторы показывают, что способности к рассуждению можно значительно улучшить с помощью RL без SFT. Производительность можно дополнительно повысить, добавив небольшое количество данных "холодного старта". Далее рассматриваются: (1) DeepSeek-R1-Zero (RL без SFT), (2) DeepSeek-R1 (RL с данными "холодного старта"), (3) дистилляция из DeepSeek-R1 в малые плотные модели.

2.2. DeepSeek-R1-Zero: Обучение с подкреплением на базовой модели

RL эффективен в задачах на рассуждение, но предыдущие работы сильно зависели от обучающих данных, сбор которых занимает много времени. Авторы исследуют возможность развития способностей к рассуждению без обучающих данных, фокусируясь на самообучении через RL.

2.2.1. Алгоритм обучения с подкреплением

Используется Group Relative Policy Optimization (GRPO) (https://arxiv.org/abs/2412.19437), который не использует модель критика и оценивает baseline по групповым оценкам. Формула (1) в статье описывает целевую функцию GRPO.

2.2.2. Моделирование вознаграждения

Вознаграждение – это источник обучающего сигнала. В DeepSeek-R1-Zero используется система вознаграждений, основанная на правилах:

  • Награды за точность: Оценивают правильность ответа. Например, в математических задачах модель должна предоставить ответ в определенном формате, что позволяет проверить его правильность с помощью правил. Для задач LeetCode используется компилятор для генерации обратной связи на основе предопределенных тестовых случаев.
  • Награды за формат: Модель должна помещать процесс рассуждения между тегами <think> и </think>.

Нейронные модели вознаграждения не используются, так как они могут страдать от reward hacking, а их переобучение требует дополнительных ресурсов.

2.2.3. Шаблон обучения

Для обучения DeepSeek-R1-Zero используется простой шаблон (Таблица 1 в статье), который указывает модели генерировать процесс рассуждения и затем окончательный ответ. Ограничения накладываются только на формат, без ограничений на содержание, чтобы наблюдать естественное развитие модели во время RL.

2.2.4. Производительность, процесс саморазвития и "момент озарения" DeepSeek-R1-Zero

Производительность DeepSeek-R1-Zero (Рисунок 2 в статье) на AIME 2024 стабильно растет во время обучения. Средний pass@1 увеличивается с 15.6% до 71.0%, достигая уровня OpenAI-o1-0912.

Таблица 2 в статье сравнивает DeepSeek-R1-Zero и OpenAI o1-0912 на различных бенчмарках. RL позволяет DeepSeek-R1-Zero достичь хороших результатов без SFT. С голосованием по большинству производительность на AIME увеличивается до 86.7%, превосходя OpenAI-o1-0912.

Процесс саморазвития DeepSeek-R1-Zero (Рисунок 3 в статье) показывает, как RL улучшает способности модели к рассуждению. DeepSeek-R1-Zero учится выделять больше времени на размышления, генерируя сотни и тысячи токенов рассуждений. По мере увеличения времени размышлений появляются сложные модели поведения, такие как рефлексия и исследование альтернативных подходов.

"Момент озарения" DeepSeek-R1-Zero (Таблица 3 в статье) – это момент, когда модель учится пересматривать свой первоначальный подход и выделять больше времени на задачу. Это демонстрирует мощь RL.

Недостатки DeepSeek-R1-Zero: Несмотря на сильные способности к рассуждению, у DeepSeek-R1-Zero есть проблемы с читабельностью и смешением языков. Для создания более читабельной модели авторы разработали DeepSeek-R1, которая использует RL с данными "холодного старта".

2.3. DeepSeek-R1: Обучение с подкреплением с холодным стартом

Авторы задались вопросами: 1) Можно ли улучшить производительность или ускорить сходимость, добавив данные "холодного старта"? 2) Как обучить удобную для пользователя модель, которая генерирует понятные CoT и обладает сильными общими способностями? Для ответа на эти вопросы разработан pipeline для обучения DeepSeek-R1, состоящий из четырех этапов.

2.3.1. Холодный старт

Для DeepSeek-R1 собирается небольшое количество данных с длинными CoT для донастройки DeepSeek-V3-Base перед RL. Данные собираются с помощью few-shot prompting, prompting с запросом на подробные ответы с рефлексией и проверкой, сбора выводов DeepSeek-R1-Zero в читаемом формате и ручной доработки.

Преимущества данных "холодного старта":

  • Читабельность: DeepSeek-R1-Zero генерирует плохо читаемый текст, смешивая языки и не используя markdown. Данные "холодного старта" для DeepSeek-R1 создаются по читаемому шаблону с итоговым резюме и фильтруются для обеспечения читабельности. Формат вывода: |special_token|<reasoning_process>|special_token|<summary>.
  • Потенциал: Данные "холодного старта" с человеческими априорными знаниями улучшают производительность по сравнению с DeepSeek-R1-Zero.

2.3.2. Обучение с подкреплением, ориентированное на рассуждения

После донастройки DeepSeek-V3-Base на данных "холодного старта" применяется тот же процесс RL, что и в DeepSeek-R1-Zero. Этот этап фокусируется на улучшении рассуждений в задачах на программирование, математику, науку и логику. Для борьбы со смешением языков вводится награда за языковую согласованность. Окончательное вознаграждение – это сумма точности рассуждений и награды за языковую согласованность. RL применяется до сходимости модели на задачах на рассуждение.

2.3.3. Rejection Sampling и донастройка с учителем

После сходимости RL, чекпойнт используется для сбора данных SFT для следующего раунда. В отличие от данных "холодного старта", этот этап включает данные из других областей для улучшения письма, ролевой игры и других общих задач.

  • Данные для рассуждений: Собираются с помощью rejection sampling из чекпойнта RL. Используются дополнительные данные, некоторые из которых оцениваются с помощью генеративной reward модели DeepSeek-V3. Фильт

руются цепочки рассуждений со смешанными языками, длинными параграфами и блоками кода. Всего собрано около 600 тысяч обучающих примеров.

  • Данные не для рассуждений: Используются данные из DeepSeek-V3 для письма, фактических вопросов и ответов, самопознания и перевода. Для некоторых задач DeepSeek-V3 генерирует CoT перед ответом. Всего собрано около 200 тысяч обучающих примеров.

DeepSeek-V3-Base донастраивается в течение двух эпох на собранном наборе данных (800 тысяч примеров).

2.3.4. Обучение с подкреплением для всех сценариев

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

2.4. Дистилляция: наделение малых моделей способностью к рассуждению

Для наделения меньших моделей способностями к рассуждению, подобными DeepSeek-R1, авторы донастроили открытые модели Qwen (https://arxiv.org/abs/2401.06066) и Llama (https://arxiv.org/abs/2401.06066) на 800 тысячах примеров, собранных с помощью DeepSeek-R1. В качестве базовых моделей использовались Qwen2.5-Math-1.5B, Qwen2.5-Math-7B, Qwen2.5-14B, Qwen2.5-32B, Llama-3.1-8B и Llama-3.3-70B-Instruct.

Для дистиллированных моделей применяется только SFT, без RL.

3. Эксперимент

Бенчмарки: MMLU, MMLU-Redux, MMLU-Pro, C-Eval, CMMLU, IFEval, FRAMES, GPQA Diamond, SimpleQA, C-SimpleQA, SWE-Bench Verified, Aider, LiveCodeBench, Codeforces, Chinese National High School Mathematics Olympiad (CNMO 2024), American Invitational Mathematics Examination 2024 (AIME 2024). Также оценивались задачи на открытую генерацию с использованием LLM в качестве судей (AlpacaEval 2.0, Arena-Hard).

Промпты для оценки: Для стандартных бенчмарков использовались промпты из simple-evals. Для MMLU-Redux использовался формат Zero-Eval. Для MMLU-Pro, C-Eval и CLUE-WSC промпты были изменены на zero-shot. Другие наборы данных оценивались по оригинальным протоколам. HumanEval-Mul охватывает восемь языков программирования. LiveCodeBench оценивался с использованием CoT. Codeforces оценивался по задачам из 10 Div.2 соревнований. Результаты SWE-Bench verified получены с помощью agentless framework. AIDER оценивался с использованием формата "diff". Выход DeepSeek-R1 ограничен 32768 токенами.

Базовые модели: DeepSeek-V3, Claude-Sonnet-3.5-1022, GPT-4o-0513, OpenAI-o1-mini, OpenAI-o1-1217. Для дистиллированных моделей также сравнивалась QwQ-32B-Preview.

Настройки генерации: Максимальная длина генерации – 32768 токенов. Для бенчмарков, требующих семплирования, использовались температура 0.6, top-p 0.95 и 64 ответа на запрос.

3.1. Оценка DeepSeek-R1

DeepSeek-R1 превосходит DeepSeek-V3 на образовательных бенчмарках (MMLU, MMLU-Pro, GPQA Diamond) благодаря улучшенной точности в STEM-задачах. DeepSeek-R1 также хорошо справляется с FRAMES. На SimpleQA DeepSeek-R1 превосходит DeepSeek-V3, но уступает ей на китайском SimpleQA из-за ограничений безопасности. DeepSeek-R1 показывает хорошие результаты на IF-Eval, AlpacaEval 2.0 и ArenaHard. Средняя длина резюме на ArenaHard – 689 токенов, на AlpacaEval 2.0 – 2218 символов.

В математических задачах DeepSeek-R1 сравнима с OpenAI-o1-1217. Аналогично в задачах на алгоритмы (LiveCodeBench, Codeforces). В инженерных задачах OpenAI-o1-1217 превосходит DeepSeek-R1 на Aider, но показывает сравнимые результаты на SWE Verified.

3.2. Оценка дистиллированных моделей

Таблица 5 в статье показывает, что дистилляция DeepSeek-R1 позволяет DeepSeek-R1-7B превзойти GPT-4o-0513. DeepSeek-R1-14B превосходит QwQ-32B-Preview, а DeepSeek-R1-32B и DeepSeek-R1-70B значительно превосходят o1-mini. Применение RL к дистиллированным моделям может дать дальнейшие улучшения.

4. Обсуждение

4.1. Дистилляция vs. Обучение с подкреплением

Таблица 6 в статье сравнивает дистиллированную и RL-модели. DeepSeek-R1-Distill-Qwen-32B значительно превосходит DeepSeek-R1-Zero-Qwen-32B. Выводы: дистилляция более мощных моделей эффективна, а RL на малых моделях требует больших вычислительных ресурсов.

4.2. Неудачные попытки

  • Модель вознаграждения, основанная на процессе (PRM): Сложно определить мелкозернистый шаг в общих рассуждениях и оценить правильность промежуточных шагов. PRM может привести к reward hacking.
  • Поиск по дереву Монте-Карло (MCTS): Пространство поиска для генерации токенов очень большое. Сложно обучить хорошую модель оценки.

5. Заключение, ограничения и будущая работа

DeepSeek-R1-Zero – это чистый RL-подход без данных "холодного старта". DeepSeek-R1 использует данные "холодного старта" и итеративную донастройку RL. DeepSeek-R1 достигает производительности OpenAI-o1-1217. Дистилляция DeepSeek-R1 в малые плотные модели дает хорошие результаты.

Будущие задачи:

  • Общие способности: Улучшение DeepSeek-R1 в задачах на вызов функций, многопоточность, сложную ролевую игру и вывод JSON.
  • Смешение языков: Оптимизация DeepSeek-R1 для других языков.
  • Prompt engineering: DeepSeek-R1 чувствительна к промптам. Рекомендуется использовать zero-shot prompting.
  • Задачи программной инженерии: Применение RL к задачам программной инженерии ограничено временем оценки. В будущих версиях будет использоваться rejection sampling или асинхронная оценка.