🐋 DeepSeek-R1: как обучали модель, встряхнувшую AI-индустрию

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

Статья основана на публикации «The Illustrated DeepSeek-R1».

DeepSeek-R1 – очередной значительный шаг в развитии ИИ. Для сообщества ML-разработчиков и исследователей этот релиз важен по двум причинам:

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

Разберемся, как происходило обучение DeepSeek-R1.

Как обучаются LLM

Как и большинство языковых моделей (LLM), DeepSeek-R1 генерирует текст по одному токену, но отличается тем, что значительно лучше справляется с математическими и логическими задачами. Это достигается за счeт более длительного анализа проблемы с использованием специальных токенов мышления, которые объясняют ход рассуждений LLM:

Создание качественной LLM включает в себя три основных этапа:

  • Этап языкового моделирования – на этом шаге модель обучается предсказывать следующее слово в тексте, используя огромный объем данных из интернета. Результатом становится базовая модель.
  • Контролируемое дообучение. Модель обучается следовать инструкциям и отвечать на вопросы более осмысленно. Для этого она дообучается на примерах с правильными ответами, созданными людьми. В результате получается модель, настроенная на выполнение инструкций (instruction-tuned model или SFT-модель).
  • Тонкая настройка предпочтений. На этом этапе модель дорабатывается с учетом человеческих предпочтений. Это улучшает ее поведение, делая ответы более естественными и соответствующими ожиданиям пользователей. Итогом становится предпочтительно-настроенная языковая модель (preference-tuned LLM), с которой пользователи взаимодействуют в приложениях и на платформах.
Три основных этапа создания LLM

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

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

Схема обучения DeepSeek-R1 отличается от стандартного подхода

Три ключевые особенности создания R1:

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

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

Для обучения DeepSeek-R1 использовались данные с длинными цепочками рассуждений

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

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

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

Примеры решений с длинными рассуждениями сгенерированы промежуточной моделью

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

  • Для ее создания потребовалось очень мало размеченных данных.
  • Она обучалась с помощью масштабного обучения с подкреплением (RL).

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

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

Этот процесс включает два этапа:

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

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

На этом этапе обучение с подкреплением используется для создания промежуточной модели рассуждений. Эта модель затем применяется для генерации обучающих примеров для SFT-обучения.

Ключевую роль здесь играет эксперимент с ранней моделью DeepSeek-R1-Zero. Эта модель уникальна тем, что:

  • Она отлично решает задачи на рассуждение, не имея размеченного SFT-набора.
  • Ее обучение начинается сразу с базовой предобученной модели, а затем она совершенствуется через процесс обучения с подкреплением (без шага SFT).
  • Ее производительность сравнима с OpenAI O1.
Сравнение DeepSeek-R1-Zero и моделей OpenAI

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

  • Современные базовые модели достигли высокого уровня качества. В данном случае использовалась модель, обученная на 14,8 трлн высококачественных токенов.
  • Проверка рассуждений может выполняться автоматически (в отличие от генерации текста для чатов или статей, где требуется ручная оценка)
🤖 Библиотека Дата Сайентиста
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека Дата Сайентиста»

Пример: Автоматическая верификация задачи на рассуждение

Представим, что модель получает запрос: «Напиши код на Python, который принимает список чисел, сортирует его и добавляет 42 в начало».

Как можно автоматически проверить качество ответа?

  • Линтер проверяет, является ли сгенерированный код корректным синтаксически.
  • Исполнение кода позволяет проверить, запускается ли он вообще.
  • Другая LLM (например, для генерации кода) может автоматически написать unit-тесты для проверки ожидаемого поведения.
  • Оптимизация по скорости: даже если код работает правильно, можно сравнивать его производительность и отдавать предпочтение более быстрым решениям.
Mодель может самостоятельно генерировать и проверять множество решений, что позволяет обучаться без ручной разметки и экспертов.

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

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

По мере улучшения этой способности увеличивается и длина сгенерированного ответа — модель генерирует больше токенов с размышлениями, чтобы лучше проанализировать проблему:

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

Чтобы сделать промежуточную модель рассуждений (созданную в предыдущем шаге) более полезной, ее дообучают с помощью контролируемого обучения (SFT):

  • Модель обучается на нескольких тысячах примеров задач на рассуждение.
  • Часть этих примеров генерируется и отфильтровывается из данных R1-Zero.
  • Этот первоначальный набор называют Cold Start Data (данные для холодного старта).
3.2.1. Холодный старт

В отличие от DeepSeek-R1-Zero, DeepSeek-R1 не начинает RL-обучение с нуля, потому что ранние этапы обучения с подкреплением могут быть нестабильными.

Чтобы этого избежать, сначала создается небольшой (но качественный) набор данных CoT (Chain-of-Thought, цепочки рассуждений), на которых проводится начальное SFT-дообучение:

Данные собирались несколькими способами:

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

Ответ — в масштабе данных.

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

Если вы не знакомы с этим термином:

  • SFT — это процесс дообучения модели, в котором она получает примеры входных данных (prompt) и правильные ответы (completion).
  • Таким образом, модель учится давать корректные ответы в похожих ситуациях.
Из датасета в 5 000 примеров можно сделать 600 000 развернутых решений

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

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

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

Для этого используются дополнительные механизмы оценки ответов:

  • Модель полезности — оценивает, насколько ответ модели полезен и информативен.
  • Модель безопасности — следит за тем, чтобы ответы были безопасными и соответствовали этическим стандартам.

Эти принципы похожи на те, что применяются в моделях Llama от Meta*:

Зачем нужен этот этап?

Хотя промежуточная модель (R1-Zero) отлично решает задачи на логику, она может быть слабой в других областях, например:

  • Написание текста.
  • Ответы на общие вопросы.
  • Генерация кода вне задач на рассуждение.

Благодаря этому этапу DeepSeek-R1 становится универсальной моделью, которая умеет как логически рассуждать, так и отвечать на широкий круг запросов.

Архитектура

Как и предыдущие модели, начиная с GPT-2 и GPT-3, DeepSeek-R1 представляет собой набор трансформерных блоков. Всего в модели 61 блок:

  • Первые три блока — плотные, то есть в них все параметры используются без разбиения на экспертов.
  • Оставшиеся 58 блоков — это слои с mixture-of-experts (MoE), то есть в них используется техника смеси экспертов, где только часть параметров активируется для обработки конкретного входа. (Подробнее о MoE можно прочитать в этом визуальном гайде).

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

Что касается размерности модели и других гиперпараметров, то они представлены в технических отчетах:

Заключение

DeepSeek-R1 демонстрирует, что сочетание масштабного обучения с подкреплением, промежуточных моделей и тщательно отобранных данных может привести к значительному улучшению качества рассуждений LLM. Благодаря инновационным методам обучения эта модель не только успешно решает математические и логические задачи, но и остается универсальной, способной справляться с широким кругом запросов. Более того — открытая архитектура и веса делают DeepSeek-R1 важным вкладом в развитие ИИ, способным вдохновить будущие исследования в этой области.

***

*Организация Meta и все ее продукты, включая Llama, признаны экстремистскими и запрещены на территории РФ.

Погружение в ML: от основ до нейросетей 🤖

Качественный курс по основам ML от Proglib Academy: от базовых моделей до нейросетей, с фокусом на реальные бизнес-задачи и постоянной поддержкой от опытного спикера из Stripe.

Ключевые моменты курса:

  • Структурированный подход от простого к сложному: начиная с ансамблевых методов и заканчивая архитектурами нейросетей
  • Практический уклон: реальные кейсы и применение в бизнес-задачах
  • Спикер – практик из Stripe с образованием МГУ и Columbia University

Программа включает:

  • Tree-based модели и ансамблевые методы
  • Системы рекомендаций и коллаборативная фильтрация
  • Основы архитектур нейронных сетей

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

natkaida
08 ноября 2023

🔈16+ лучших нейронок для синтеза речи

Предлагаем подборку платных, бесплатных и опенсорсных инструментов для озву...
korneva.i.24
21 сентября 2023

🤖 Создание собственного ИИ-бота на Python за 33 строчки кода

Расскажем, как создать собственный чат-бот на Python с помощью следующей ин...
natkaida
09 июня 2023

🤖 Нейронки кодят за вас: 28 AI-сервисов в помощь разработчику

Расскажем о самых полезных новинках, которые помогут написать, отладить и п...