DeepSeek-R1 — это самый громкий релиз последних дней в области искусственного интеллекта. Для сообщества исследователей и разработчиков машинного обучения (ML R&D) эта модель имеет особое значение по ряду причин:
Модель обладает открытыми весами и включает уменьшенные, дистиллированные варианты.
Она делится и размышляет над методом обучения, позволяющим воспроизвести модель рассуждений, подобную OpenAI O1.
В этой публикации мы рассмотрим, как была создана DeepSeek-R1.
Дисклеймер: это вольный перевод статьи, которую написал Джэй Аламмар. Перевод подготовила редакция «Технократии». Чтобы не пропустить анонс новых материалов подпишитесь на «Голос Технократии» — мы регулярно рассказываем о новостях про AI, LLM и RAG, а также делимся полезными мастридами и актуальными событиями.
Обсудить пилот или задать вопрос об LLM можно здесь.
Краткий обзор: как обучаются LLM
Так же, как большинство современных LLM, DeepSeek-R1 генерирует по одному токену за раз, но особенно успешно решает математические и логические задачи, поскольку затрачивает больше времени на осмысление вопроса за счёт генерации «мысленных» токенов, раскрывающих ход рассуждений.
Ниже представлена иллюстрация (из 12-й главы нашей книги), показывающая общий рецепт создания высококачественной LLM в три шага:
Этап языкового моделирования, когда модель обучается предсказывать следующее слово на основе огромного набора данных из интернета. Результат — базовая модель.
Этап супервизорного дообучения (supervised fine-tuning, SFT), повышающий полезность модели в понимании инструкций и ответах на вопросы. Результат — модель, настроенная под инструкции (instruction-tuned) или модель SFT.
И, наконец, этап настройки под пользовательские предпочтения (preference tuning), который шлифует поведение модели с учётом человеческих предпочтений, формируя итоговую модель, доступную в различных приложениях и интерфейсах.
Рецепт обучения DeepSeek-R1
DeepSeek-R1 следует общей схеме. Детали первого шага описаны в предыдущей работе о модели DeepSeek-V3. R1 использует базовую модель (а не финальную DeepSeek-V3) из той работы, а затем проходит стадии SFT и настройки под предпочтения, однако способы реализации этих стадий отличаются от предыдущих.
В процессе создания R1 можно выделить три особенных момента.
1.Длинные цепочки рассуждений в данных SFT
Это обширный набор примеров с развернутыми ходами мыслей (около 600 000), достать которые в таком количестве крайне сложно и дорого для ручной разметки. Поэтому процесс их получения — вторая важная особенность, заслуживающая внимания.
2. Промежуточная высококачественная модель рассуждений (но хуже в нерассуждающих задачах)
Для создания этих данных используется модель-предшественник R1, не имеющая названия, но специализирующаяся на рассуждении. Она вдохновлена третьей моделью, называемой R1-Zero (рассмотрим её чуть позже). Примечательность этой промежуточной модели в том, что для её разработки требовалось очень мало размеченных данных, но масштабное обучение с подкреплением, дающее высокие результаты в решении логических задач.
Результаты этой специализированной модели затем могут послужить основой для обучения более универсальной версии, которая к тому же преуспевает и в прочих задачах, ожидаемых от LLM.
3. Создание моделей рассуждений с помощью масштабного обучения с подкреплением (reinforcement learning, RL)
Этот процесс реализован в два шага:
3.1 Масштабное обучение с подкреплением, ориентированное на рассуждения (R1-Zero)
На этом этапе применяется RL для создания промежуточной модели рассуждений. Модель затем генерирует примеры для SFT. Однако ключ к появлению такой модели заложен в более раннем эксперименте — создании DeepSeek-R1-Zero.
R1-Zero особа тем, что превосходит в решении задач рассуждения без размеченного набора SFT. Её обучение переходит напрямую от базовой модели к процессу RL, минуя SFT, и при этом показывает сопоставимые результаты с o1.
Почему это важно? Потому что данные всегда были основным топливом для повышения возможностей ML-моделей. Как же модель смогла пойти другим путём? На то есть две причины:
Современные базовые модели уже достигли определённого уровня качества и возможностей (здесь использовалась модель, обученная на 14,8 триллиона высококачественных токенов).
Задачи, связанные с рассуждением, в отличие от общих запросов на чат или письменный ответ, можно автоматически проверять и оценивать.
Примером служит инструкция вида:
«Напишите код на Python, который принимает список чисел, возвращает их в отсортированном виде, но также добавляет 42 в начало».
Такие задания легко поддаются автоматической валидации:
Линтер проверяет, действительно ли результат — корректный код на Python.
Код можно запустить, чтобы убедиться, что он работает.
Другие современные модели для написания кода могут автоматически создавать тесты, чтобы проверить желаемое поведение.
Можно замерить время выполнения и предпочесть более производительный вариант при равной корректности.
На этапе обучения мы можем задать модели подобный вопрос и получить несколько возможных решений.
Мы можем автоматически проверить (без участия человека) и убедиться, что первый ответ вовсе не является кодом. Второй действительно написан на Python, но не решает задачу. Третий вариант выглядит подходящим решением, но не проходит модульные тесты, а четвёртый оказывается корректным.
Все эти сигналы можно напрямую использовать для совершенствования модели. Разумеется, это происходит на множестве примеров (в мини-батчах) и в ходе нескольких последовательных шагов обучения.
Эти сигналы вознаграждения и обновления параметров помогают модели непрерывно совершенствовать результаты в ходе процесса обучения с подкреплением, как показано на Рисунке 2 в статье.
Параллельно с развитием этой способности растёт длина формируемого ответа: модель использует больше токенов-рассуждений для анализа задачи.
Этот процесс полезен, однако модель R1-Zero, несмотря на высокие результаты в решении логических задач, сталкивается с недостатками, снижающими её практическую применимость.
Хотя DeepSeek-R1-Zero демонстрирует впечатляющие способности к рассуждению и самостоятельно развивает неожиданные и мощные логические приёмы, она всё же имеет ряд проблем. К примеру, DeepSeek-R1-Zero уступает в удобочитаемости и нередко смешивает языки.
R1 призвана стать более удобной моделью. Поэтому, вместо полной зависимости от RL, она использует его в двух местах, о чём упоминалось ранее:
1. создание промежуточной модели рассуждений для генерации SFT-данных
2. обучение модели R1 на задачах рассуждения и других типах заданий (с применением различных методов валидации)
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 в удобочитаемом формате и последующей доработки результатов вручную.
Но возникает вопрос: если у нас уже есть эти данные, зачем нам полагаться на процесс RL? Всё дело в масштабах. В наборе может быть около 5 000 примеров (это реально собрать), но для обучения R1 нужно 600 000. Промежуточная модель как раз заполняет этот разрыв и позволяет синтетически сгенерировать крайне ценные данные.
Если вы ещё не знакомы с понятием Supervised Fine-Tuning (SFT), этот метод подразумевает предоставление модели обучающих примеров в виде запроса и корректного ответа. На иллюстрации из двенадцатой главы приведены несколько примеров обучения с помощью SFT.
3.3 Общий этап обучения с подкреплением
Это даёт R1 возможность превосходить не только в рассуждениях, но и в других типах задач. Процесс во многом похож на уже описанный RL, однако, поскольку он охватывает и неречевые приложения, для соответствующих запросов используется модель вознаграждения за полезность и безопасность (по аналогии с Llama).
Архитектура
Подобно ранним моделям (с эпохи GPT-2 и GPT-3), DeepSeek-R1 представляет собой стек декодирующих блоков трансформера — всего 61 блок. Первые три являются плотными слоями, а остальные реализуют схему Mixture-of-Experts (см. замечательное вводное руководство моего соавтора Маартена: «A Visual Guide to Mixture of Experts (MoE)»).
С точки зрения размерности модели и других гиперпараметров они выглядят следующим образом:
Более подробная информация об архитектуре модели представлена в двух предыдущих работах:
Заключение
Теперь у вас должны быть основные интуитивные представления о модели DeepSeek-R1.
Если вам показалось, что для понимания этого поста вам нужна более фундаментальная информация, я бы посоветовал вам взять в руки книгу Hands-On Large Language Models.
Комментарии (3)
Anton888
28.01.2025 13:59Сами создатели DeepSeek пишут, что их ключевая инновация заключается в следующем.
Есть принцип разбиения нейросети на отдельных "экспертов" (MoE), каждый из которых обрабатывает только токены определенного типа. Это позволяет задействовать только часть вычислительных мощностей, что приводит к экономии. Проблема этого подхода в том, что многие токены подходят для нескольких специализаций, в результате "эксперты" начинают дублировать друг друга и особого выигрыша нет. А если "экспертов" жестко изолировать, то система остается глупой.
Но создатели, во-первых, используют гораздо больше "экспертов" чем делалось ранее, а сами "эксперты" мельче. Во-вторых, они помимо обычных применяют специализированные "эксперты", которые собирают "общие знания" - т.е. знания, которые при обычном подходе попадают сразу к нескольким "экспертам". (With a conventional routing strategy, tokens assigned to different experts may necessitate some common knowledge or information. As a result, multiple experts may converge in acquiring shared knowledge in their respective parameters, thereby resulting in redundancy in expert parameters. However, if there are shared experts dedicated to capturing and consolidating common knowledge across varying contexts )
В результате система остается фрагментированной (т.е. при обработке каждого токена используется лишь небольшая часть мощности), но одновременно умной.
Не уверен, что корректно изложил, но явно ключевое - это "эксперты".
averkij
Попахивает машинным переводом.