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://t.me/gonzo_ML/1285). === Last but not least, дистилляция. Большая тяжёлая MoE модель это хорошо, но маленькие dense модели тоже нужны. Так что задистиллировали (https://t.me/gonzo_ML/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 явно хуже.