[Перевод] Как работает модель DeepSeek-R1. С иллюстрациями и схемами

DeepSeek-R1 — это самый громкий релиз последних дней в области искусственного интеллекта. Для сообщества исследователей и разработчиков машинного обучения (ML R&D) эта модель имеет особое значение по ряду причин:

  1. Модель обладает открытыми весами и включает уменьшенные, дистиллированные варианты.

  2. Она делится и размышляет над методом обучения, позволяющим воспроизвести модель рассуждений, подобную OpenAI O1.

В этой публикации мы рассмотрим, как была создана DeepSeek-R1.

Дисклеймер: это вольный перевод статьи, которую написал Джэй Аламмар. Перевод подготовила редакция «Технократии». Чтобы не пропустить анонс новых материалов подпишитесь на «Голос Технократии» — мы регулярно рассказываем о новостях про AI, LLM и RAG, а также делимся полезными мастридами и актуальными событиями.

Обсудить пилот или задать вопрос об LLM можно здесь.

Краткий обзор: как обучаются LLM

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

59c72782adb655de2054674f524740a6.png

Ниже представлена иллюстрация (из 12-й главы нашей книги), показывающая общий рецепт создания высококачественной LLM в три шага:

def606229ead27c60a62c3025a8bd920.png

  1. Этап языкового моделирования, когда модель обучается предсказывать следующее слово на основе огромного набора данных из интернета. Результат — базовая модель.

  2. Этап супервизорного дообучения (supervised fine-tuning, SFT), повышающий полезность модели в понимании инструкций и ответах на вопросы. Результат — модель, настроенная под инструкции (instruction-tuned) или модель SFT.

  3. И, наконец, этап настройки под пользовательские предпочтения (preference tuning), который шлифует поведение модели с учётом человеческих предпочтений, формируя итоговую модель, доступную в различных приложениях и интерфейсах.

Рецепт обучения DeepSeek-R1

DeepSeek-R1 следует общей схеме. Детали первого шага описаны в предыдущей работе о модели DeepSeek-V3. R1 использует базовую модель (а не финальную DeepSeek-V3) из той работы, а затем проходит стадии SFT и настройки под предпочтения, однако способы реализации этих стадий отличаются от предыдущих.

dc5988a931df3bf5b518cde41fb9581d.png

В процессе создания R1 можно выделить три особенных момента.

1.Длинные цепочки рассуждений в данных SFT

c5df1064d4719849dc89014e6d349609.png

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

2. Промежуточная высококачественная модель рассуждений (но хуже в нерассуждающих задачах)

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

Результаты этой специализированной модели затем могут послужить основой для обучения более универсальной версии, которая к тому же преуспевает и в прочих задачах, ожидаемых от LLM.

db509fd78947eb6bbdde51e228f829a8.png

3. Создание моделей рассуждений с помощью масштабного обучения с подкреплением (reinforcement learning, RL)

Этот процесс реализован в два шага:

666956fc844ecaccdf6736bd31380e05.png

3.1 Масштабное обучение с подкреплением, ориентированное на рассуждения (R1-Zero)

На этом этапе применяется RL для создания промежуточной модели рассуждений. Модель затем генерирует примеры для SFT. Однако ключ к появлению такой модели заложен в более раннем эксперименте — создании DeepSeek-R1-Zero.

2dad7af956ed132fce2683d81d070b2e.png

R1-Zero особа тем, что превосходит в решении задач рассуждения без размеченного набора SFT. Её обучение переходит напрямую от базовой модели к процессу RL, минуя SFT, и при этом показывает сопоставимые результаты с o1.

e48e27ec4044ea7aa414aa512287b70f.png

Почему это важно? Потому что данные всегда были основным топливом для повышения возможностей ML-моделей. Как же модель смогла пойти другим путём? На то есть две причины:

  1. Современные базовые модели уже достигли определённого уровня качества и возможностей (здесь использовалась модель, обученная на 14,8 триллиона высококачественных токенов).

  2. Задачи, связанные с рассуждением, в отличие от общих запросов на чат или письменный ответ, можно автоматически проверять и оценивать. 

Примером служит инструкция вида:

«Напишите код на Python, который принимает список чисел, возвращает их в отсортированном виде, но также добавляет 42 в начало». 

Такие задания легко поддаются автоматической валидации:

  •  Линтер проверяет, действительно ли результат — корректный код на Python.

  •  Код можно запустить, чтобы убедиться, что он работает. 

  • Другие современные модели для написания кода могут автоматически создавать тесты, чтобы проверить желаемое поведение.

  •  Можно замерить время выполнения и предпочесть более производительный вариант при равной корректности.

На этапе обучения мы можем задать модели подобный вопрос и получить несколько возможных решений.

585bad809822b766fc405fe87cf2a527.png

Мы можем автоматически проверить (без участия человека) и убедиться, что первый ответ вовсе не является кодом. Второй действительно написан на Python, но не решает задачу. Третий вариант выглядит подходящим решением, но не проходит модульные тесты, а четвёртый оказывается корректным.

cdd908cbdc3ad368996f4821df546085.png

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

b6998750458baeeb33e4ad29d8f60d3e.png

Эти сигналы вознаграждения и обновления параметров помогают модели непрерывно совершенствовать результаты в ходе процесса обучения с подкреплением, как показано на Рисунке 2 в статье.

fafcd31c44ebfb46ecfa66f0d010f08e.png

Параллельно с развитием этой способности растёт длина формируемого ответа: модель использует больше токенов-рассуждений для анализа задачи.

950f1b83a3ebc4d7e6a8772d94eb2cfc.png

Этот процесс полезен, однако модель R1-Zero, несмотря на высокие результаты в решении логических задач, сталкивается с недостатками, снижающими её практическую применимость.  

Хотя DeepSeek-R1-Zero демонстрирует впечатляющие способности к рассуждению и самостоятельно развивает неожиданные и мощные логические приёмы, она всё же имеет ряд проблем. К примеру, DeepSeek-R1-Zero уступает в удобочитаемости и нередко смешивает языки.  

R1 призвана стать более удобной моделью. Поэтому, вместо полной зависимости от RL, она использует его в двух местах, о чём упоминалось ранее:

1. создание промежуточной модели рассуждений для генерации SFT-данных  

2. обучение модели R1 на задачах рассуждения и других типах заданий (с применением различных методов валидации)

ce6fa1dee035e1c2278259a8585b3527.png

3.2 Создание данных рассуждений SFT с помощью промежуточной модели рассуждений

Чтобы сделать промежуточную модель рассуждений более полезной, её дообучают по методу SFT на нескольких тысячах примеров задач, требующих логических рассуждений (часть которых сгенерирована и отфильтрована при помощи R1-Zero). В работе эти данные называются «cold start data».

2.3.1. Cold Start

В отличие от DeepSeek-R1-Zero, чтобы избежать нестабильного начального этапа RL-обучения базовой модели, для DeepSeek-R1 мы формируем и собираем небольшой набор длинных цепочек рассуждений (CoT), чтобы дообучить модель в качестве начального актёра в RL. Для сбора такого набора мы опробовали несколько способов: от few-shot-промптинга с длинной цепочкой рассуждений в качестве примера и прямого запроса к моделям на развёрнутые ответы с рефлексией и проверкой, до использования выводов DeepSeek-R1-Zero в удобочитаемом формате и последующей доработки результатов вручную.

1d52b0f4c5a54f6f64b2f7778e617115.png

Но возникает вопрос: если у нас уже есть эти данные, зачем нам полагаться на процесс RL? Всё дело в масштабах. В наборе может быть около 5 000 примеров (это реально собрать), но для обучения R1 нужно 600 000. Промежуточная модель как раз заполняет этот разрыв и позволяет синтетически сгенерировать крайне ценные данные.

71c8f412b54bd6787909bd21bc63ad67.png

Если вы ещё не знакомы с понятием Supervised Fine-Tuning (SFT), этот метод подразумевает предоставление модели обучающих примеров в виде запроса и корректного ответа. На иллюстрации из двенадцатой главы приведены несколько примеров обучения с помощью SFT.

fafa196d60963bada476ffa2fd0319fa.png

3.3 Общий этап обучения с подкреплением  

Это даёт R1 возможность превосходить не только в рассуждениях, но и в других типах задач. Процесс во многом похож на уже описанный RL, однако, поскольку он охватывает и неречевые приложения, для соответствующих запросов используется модель вознаграждения за полезность и безопасность (по аналогии с Llama).

f5352d9a3d0b10009228314c3b338aa2.png

Архитектура

Подобно ранним моделям (с эпохи GPT-2 и GPT-3), DeepSeek-R1 представляет собой стек декодирующих блоков трансформера — всего 61 блок. Первые три являются плотными слоями, а остальные реализуют схему Mixture-of-Experts (см. замечательное вводное руководство моего соавтора Маартена: «A Visual Guide to Mixture of Experts (MoE)»).

92d3385d8d4b0c70197be7cd8016645a.png

С точки зрения размерности модели и других гиперпараметров они выглядят следующим образом:

df07998a6acc9d3afa7a3b9c7130011f.png

Более подробная информация об архитектуре модели представлена в двух предыдущих работах:

Заключение

Теперь у вас должны быть основные интуитивные представления о модели DeepSeek-R1.

8f1e12a6201550975784d67c60e8fdf4.png

Если вам показалось, что для понимания этого поста вам нужна более фундаментальная информация, я бы посоветовал вам взять в руки книгу Hands-On Large Language Models.

© Habrahabr.ru