Telegram Group Search
Парето фронтир с ценами и перформансом LLM на Chatbot Arena

https://lmarena.ai/?price
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
Статья: https://arxiv.org/abs/2501.12948
Репа: https://github.com/deepseek-ai/DeepSeek-R1

Аламмар Аламмаром (https://newsletter.languagemodels.co/p/the-illustrated-deepseek-r1), но всё-таки пару слов про DeepSeek-R1. Базовую DeepSeek-V3 разобрали здесь (https://www.group-telegram.com/gonzo_ML.com/3292) и здесь (https://www.group-telegram.com/gonzo_ML.com/3312).

R1 — это reasoning модель, аналогичная OpenAI o1/o3, Google Gemini 2.0 Flash Thinking или Alibaba Cloud Qwen QwQ. Идея reasoning моделей в том, что вместо того чтобы сразу выдать ответ, модель сначала проводит некоторые рассуждения в духе Chain-of-Thought (CoT, https://www.group-telegram.com/gonzo_ML.com/1885), генеря кучу токенов с цепочками рассуждений, и лишь затем выдаёт финальный ответ. Таким образом, если раньше весь скейлинг моделей происходил на уровне компьюта во время обучения (берём больше, кидаем дальше — модель побольше и обучение подольше), то теперь модели можно дать “поразмышлять” подольше уже в inference time. Открылось новое измерения для масштабирования моделей — эра Test-time compute (https://www.group-telegram.com/gonzo_ML.com/3175).

DeepSeek-R1 — это, кажется, лучшая из открытых моделей с reasoning на сегодня, вполне конкурирующая с лучшими коммерческими. Гонка запущена, в ближайшие месяцы появятся кучи новых моделей, в том числе более скромного размера с ризонингом. Собственно уже началось, например, s1 (https://arxiv.org/abs/2501.19393).

Также можно сказать, что в NLP снова начинает работать RL.

Что именно сделано в работе про R1?

Главное достижение, мне кажется, примерно аналогично AlphaZero (и называется соответственно DeepSeek-R1-Zero): авторы показали, что для обучения ризонингу не обязательно иметь 100500 примеров для SFT, эти способности неплохо выучиваются с помощью large-scale RL, и можно вообще обойтись без “человеческих демонстраций” в виде SFT. Но если помочь cold start’у небольшим количеством SFT с хорошими примерами, то всё ещё лучше.

В качестве базовой модели взята DeepSeek-V3-Base, модель после Pre-training, но до Post-training, то есть без SFT и RL.


=== Начнём с DeepSeek-R1-Zero.

В качестве RL алгоритма взяли Group Relative Policy Optimization (GRPO), использовавшийся в DeepSeek-V3 (https://www.group-telegram.com/gonzo_ML.com/3313) и DeepSeekMath (https://arxiv.org/abs/2402.03300). Помните, что этот подход позволяет сэкономить на модели критика, которая обычно такого же размера, что и полиси модель.

Reward моделируется через систему на правилах, то есть вроде как ещё минус одна тяжёлая модель. Это выглядит аналогично Rule-based RM из пост-обучения DeepSeek-V3.

Используется два типа наград:

1) Accuracy rewards: определяют, корректен ответ или нет. В случае математических задач или кодирования это несложно.

2) Format rewards: следит за соответствием формата “мыслительного процесса”, он должен быть внутри тегов ‘<think>’ и ‘</think>’.

Neural-based RM не использовалась, потому что подвержена reward hacking, требует больших дополнительных ресурсов и вообще усложняет процесс обучения.

Используют довольно прямолинейный промпт с CoT, который требует от модели сначала подумать, а потом выдать ответ.

R1-Zero довольно неплохо прогрессирует в процессе обучения, на примере AIME 2024 за 8000 шагов добирается до качества не сильно позади OpenAI o1-0912 и выше o1-mini. Добавление мажоритарного голосования сильно повышает качество (в статье репортят результат с 64 ответами).

Подход Zero с чистым RL без SFT позволяет пронаблюдать, как модель эволюционирует по ходу обучения, и отдельный график показывает стабильный рост длины ответа. То есть модель сама выучивает, что думать дольше полезно. Так, спонтанно возникают способности к рефлексии (когда модель переоценивает предыдущие шаги) и исследование альтернативных подходов. Ничего этого заранее заложено не было.

Очень популярным стал пресловутый Aha Moment, когда модель научилась переобдумывать ответ, да ещё и сделала это очень антропоморфно.
DeepSeek-R1-Zero всё же не без недостатков: результаты модели плохо читаемы, и в них обнаруживается смесь языков, поэтому решили улучшить холодный старт модели и перед RL слегка дообучить её на хороших данных.

=== Поэтому следующий ход, DeepSeek-R1.

Для этого обучения собрали пайплайн из четырёх этапов:

1) Cold Start.

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

Примеры содержали саммари в конце цепочки размышлений.

2) Reasoning-oriented Reinforcement Learning.

DeepSeek-V3-Base зафайнтюнили на данных предыдущего этапа и запустили тот же самый RL процесс, что и у -Zero. Модель любила мешать разные языки, особенно если они были в запросе, так что пришлось добавить отдельный language consistency reward, который был равен доле целевого языка внутри CoT. От этого есть небольшая деградация по перформансу, но лучше метрика по человеческим предпочтениям. Финальный reward был суммой accuracy на задачах и language consistency. Обучали до сходимости.

3) Rejection Sampling and Supervised Fine-Tuning.

Чекпойнт предыдущего этапа использован для сбора данных для последующего SFT. Начальные cold-start данные целились в основном в ризонинг, а данные этого этапа включают примеры из различных доменов для улучшения способностей модели в writing, role-playing и other general-purpose tasks. Среди этого микса были Reasoning и Non-Reasoning данные.

В Reasoning (600k примеров) из предыдущего чекпойнта нагенерировали новых цепочек и пофильтровали их, в том числе используя DeepSeek-V3 как судью. Из каждого промпта генерили множество сэмплов и отфильтровывали проблемные (смесь языков, длинные параграфы, блоки кода).

В Non-Reasoning (200k примеров) включены примеры для writing, factual QA, self-cognition, translation. Взяли пайплайн от DeepSeek-V3 и переиспользовали части SFT датасета от него же. Также использовали DeepSeek-V3 и для генерации.

Далее файнтюнили DeepSeek-V3-Base (не предыдущий чекпойнт?) две эпохи на итоговом датасете с 800k примеров.

4) Reinforcement Learning for all Scenarios.

Второй этап RL для улучшения helpfulness и harmlessness модели (узнаёте подход Constitutional AI?) с одновременным улучшением способностей ризонинга. Для reasoning данных использовались rule-based rewards, для общих данных использовались reward models из пайплайна DeepSeek-V3. Для helpfulness фокусировались только на финальном саммари, для harmlessness оценивали весь вывод модели. Деталей в этом месте недостаточно, но выглядит так, что запустили Constitutional AI (или RLAIF) на оба этих сигнала, а не только на harmlessness, как в оригинальной работе по CAI (https://www.group-telegram.com/gonzo_ML.com/1285).


=== Last but not least, дистилляция.

Большая тяжёлая MoE модель это хорошо, но маленькие dense модели тоже нужны. Так что задистиллировали (https://www.group-telegram.com/gonzo_ML.com/117) DeepSeek-R1 в опенсорсные Qwen и Llama. Это значит, что эти модели зафайнтюнили на выдаче DeepSeek. Использовали те самые вышеупомянутые 800k сэмплов.

Итого, надистиллировали:
* 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. Наверное, если провести ещё отдельную фазу RL, то ещё лучше будет? Это отдали на откуп коммьюнити, здесь фокусировались только на полезности дистилляции.


=== Evaluations

Провели много разных evaluations, с бейзлайнами в виде DeepSeek-V3, Claude-Sonnet-3.5-1022, GPT-4o-0513, OpenAI-o1-mini, OpenAI-o1-1217. Последняя в Китае не очень доступна, её цифры взяли из официальных репортов. Не понял только, а o1-mini доступна чтоли?

По ризонингу перформанс очень достойный, R1 делит топ с OpenAI-o1-1217. Sonnet, 4o и mini явно хуже.
Для дистиллятов бейзлайном была QwQ-32B-Preview. Они тоже выглядят хорошо, например, DeepSeek-R1-Distill-Qwen-7B бьёт не-ризонинг модель GPT-4o-0513. Оно, конечно, логично, что ризонинг модель бьёт не-ризонинг, но важно, что теперь это доступная опенсорс модель, которую можно запустить у себя дома. DeepSeek-R1-14B бьём QwQ-32B-Preview, что тоже круто. А DeepSeek-R1-32B и DeepSeek-R1-70B бьют o1-mini. И это ещё коммьюнити не сделало доп.шаг RL. В общем, можно ожидать крутого развития.

Провели отдельный интересный эксперимент с Qwen-32B-Base, чтобы посмотреть куда можно дойти на чистом RL и как это соотносится с дистилляцией. Получили модель DeepSeek-R1-Zero-Qwen-32B, которая примерно соответствует QwQ-32B-Preview, но значительно слабее дистиллята DeepSeek-R1-Distill-Qwen-32B.

То есть, если хочется обучить хорошую маленькую модель, то лучше это делать через дистилляцию хорошей большой, чем убиваться, обучая её через RL. И то не факт, что получится. Это интересно, что находить хорошие маленькие модели мы пока так себе можем, через большие лучше работает.

И другой вывод -- скейлить дальше всё так же нужно, и большие модели будут лучше, и тот же R1 мог бы быть ещё лучше, если бы сам был дистиллятом из ещё более большой.


=== Что не удалось?

Process Reward Model (PRM, https://arxiv.org/abs/2211.14275), когда reward прилетает не только за финальный результат, но и за отдельные шаги CoT. На практике иногда сложно получить хорошо выделенный шаг в общем размышлении. Даже если удалось, то очень сложно оценивать его точность. Ну и оно также ведёт к reward hacking. Всё это усложняет процесс, и требует большого оверхеда. Полученные преимущества оказались ограниченными

Monte Carlo Tree Search (MCTS), как из AlphaGo 🙂 требует разделения ответа на более мелкие шаги, чтобы их пространство можно было исследовать. Модель попросили использовать отдельные теги для разных этапов размышлений. Здесь сначала использовали промптинг для нахождения ответов через MCTS с предобученной value model, а потом на найденных парах <вопрос, ответ> обучали actor и value модели, таким образом итеративно улучшая процесс.

Но это было сложно отскейлить. Пространство вариантов не так хорошо определено, как в играх. Генерация токенов экспоненциально более страшная, приходилось ограничивать максимальную глубину, а это вело к локальным оптимумам. К тому же обучить хорошую value модель не так просто, а её качество напрямую влияет на генерацию. В общем, не получилось итеративно её улучшать, это остаётся челленджем.


=== Будущее

Авторы планируют много улучшений, очень жду их R2 🙂

* Хотят улучшить function calling, multi-turn, complex role-playing, и JSON output.
* Хотят победить смешивание языков — модель оптимизирована на английский и китайский, поэтому при запросах на других языках может уходить думать на этих. Может это и не так плохо на самом деле, но пользователям непонятно.
* Модель чувствительна к промпту, few-shot стабильно ухудшает её перформанс, поэтому советуют использовать zero-shot. В принципе, это похоже на рекомендации и для o1 (https://www.deeplearning.ai/short-courses/reasoning-with-o1/).
* Хотят больше заточить модель на Software Engineering. Это вааще круто, скоро будет локальный опенсорсный copilot такими темпами.

Короче, спасибо DeepSeek, так сильно как они, мало кто продвигал всю область.
This media is not supported in your browser
VIEW IN TELEGRAM
Собрал свои посты про DeepSeek воедино в англоязычном блоге. Когда картинки внутри текста, оно, конечно, удобнее.

1️⃣ "DeepSeek moment" (https://gonzoml.substack.com/p/deepseek-moment).
The high-level overview of what was special with DeepSeek and what models are there.

2️⃣ "DeepSeek-V3: Technical Details" (https://gonzoml.substack.com/p/deepseek-v3-technical-details)
Technical details about DeepSeek-V3 architecture: Multi-head Latent Attention (MLA), DeepSeekMoE, Multi-Token Prediction (MTP), FP8 Training, Suggestions on Hardware Design, etc

3️⃣ "DeepSeek-V3: Training" (https://gonzoml.substack.com/p/deepseek-v3-training)
The training procedure of DeepSeek-V3-Base and DeepSeek-V3. Pre-training, Post-training, Group Relative Policy Optimization (GRPO), etc.

4️⃣ "DeepSeek-R1: Open model with Reasoning" (https://gonzoml.substack.com/.../deepseek-r1-open-model...)
The DeepSeek-R1 reasoning model, similar to OpenAI o1/o3, Google Gemini 2.0 Flash Thinking, or Alibaba Cloud Qwen QwQ. DeepSeek-R1-Zero, DeepSeek-R1, and DeepSeek-R1-Distill models are covered here.
Optimizing Large Language Model Training Using FP4 Quantization
Ruizhe Wang, Yeyun Gong, Xiao Liu, Guoshuai Zhao, Ziyue Yang, Baining Guo, Zhengjun Zha, Peng Cheng
Статья: https://arxiv.org/abs/2501.17116

Формат мини.

Только обсудили обучение DeepSeek в FP8 (https://www.group-telegram.com/gonzo_ML.com/3294) и упомянули старую работу про FP8-LM (https://arxiv.org/abs/2310.18313) от Microsoft, как та же команда анонсировала обучение в FP4!

С помощью ухищрений в виде differentiable quantization estimator для точного обновления весов и outlier clamping and compensation strategy для предотвращения коллапса активаций достигли качества аналогичного обучению в BF16 и FP8 и обучили 13B модель на 100B токенов.

FP16 использует формат E5M10 (5 бит на экспоненту, 10 на мантиссу), BF16 — E8M7, FP8 обычно есть в двух вариантах с E4M3 (был у DeepSeek-V3) и E5M2, а здесь FP4 сделали в формате E2M1. Ещё один бит — знак, если что.

Нвидиа теперь репортит флопсы в FP4 (https://www.group-telegram.com/gonzo_ML.com/3182), эта разрядность поддерживается новыми GPU, так что можно ожидать ещё одного удвоения производительности/размера моделей относительно DeepSeek, или учетверения относительно более традиционных моделей типа Llama.

Так и до FP1 INT1 дойдём!

Очень круто.
This media is not supported in your browser
VIEW IN TELEGRAM
2025/02/11 05:53:10
Back to Top
HTML Embed Code: