Для дистиллятов бейзлайном была 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, так сильно как они, мало кто продвигал всю область.
Провели отдельный интересный эксперимент с 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, так сильно как они, мало кто продвигал всю область.
arXiv.org
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via...
We introduce our first-generation reasoning models, DeepSeek-R1-Zero and DeepSeek-R1. DeepSeek-R1-Zero, a model trained via large-scale reinforcement learning (RL) without supervised fine-tuning...
🔥30👍11❤8
Собрал свои посты про 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.
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.
Gonzo ML
DeepSeek moment
I have to talk about DeepSeek. These folks have absolutely crushed it — few have managed to disrupt the entire field like this. Well, there was OpenAI with ChatGPT, then Meta with open-source Llama, and now DeepSeek.
1👍44🔥12❤7
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://t.me/gonzo_ML/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://t.me/gonzo_ML/3182), эта разрядность поддерживается новыми GPU, так что можно ожидать ещё одного удвоения производительности/размера моделей относительно DeepSeek, или учетверения относительно более традиционных моделей типа Llama.
Так и доFP1 INT1 дойдём!
Очень круто.
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://t.me/gonzo_ML/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://t.me/gonzo_ML/3182), эта разрядность поддерживается новыми GPU, так что можно ожидать ещё одного удвоения производительности/размера моделей относительно DeepSeek, или учетверения относительно более традиционных моделей типа Llama.
Так и до
Очень круто.
arXiv.org
Optimizing Large Language Model Training Using FP4 Quantization
The growing computational demands of training large language models (LLMs) necessitate more efficient methods. Quantized training presents a promising solution by enabling low-bit arithmetic...
🔥41👍8❤4😱1
Дарио Амодеи написал программное заявление
"Time is short, and we must accelerate our actions to match accelerating AI progress. Possibly by 2026 or 2027 (and almost certainly no later than 2030), the capabilities of AI systems will be best thought of as akin to an entirely new state populated by highly intelligent people appearing on the global stage—a “country of geniuses in a datacenter”—with the profound economic, societal, and security implications that would bring."
https://www.anthropic.com/news/paris-ai-summit
"Time is short, and we must accelerate our actions to match accelerating AI progress. Possibly by 2026 or 2027 (and almost certainly no later than 2030), the capabilities of AI systems will be best thought of as akin to an entirely new state populated by highly intelligent people appearing on the global stage—a “country of geniuses in a datacenter”—with the profound economic, societal, and security implications that would bring."
https://www.anthropic.com/news/paris-ai-summit
Anthropic
Statement from Dario Amodei on the Paris AI Action Summit
A call for greater focus and urgency
🔥20🤡11👍10😁8🤔3
FP1 в массы! Если реально есть потенциал ускорить обучение LLM в 16 раз (относительно BF16) или обучить модель в 16 раз большую, то это очень интересно.
🤯14🤣3👎1
Forwarded from КПД
QuEST: Stable Training of LLMs with 1-Bit Weights and Activations
[Статья][Код]
Введение
Уважаемые коллеги из IST, в частности, @black_samorez_channel выпустили статью про стабильное обучение моделей с квантизованными весами и активациями.
Статей с той же аббревиатурой пруд пруди на архиве:
- Вот
- Вот
- Вот
- И вот
Но эта - особенная!
Ранее уже неоднократно поднимался (в том числе и на этом канале) вопрос о том, в какой точности оптимально учить модель (веса и активации), дабы получить наилучшее качество при заданном размере (через PTQ или QAT). Ранее утверждали, что 6-7 бит оптимально при квантизации весов и активаций в INTx/FPx. Но сама процедура была незамысловата, и нет гарантий, что нельзя пробить существенно Парето-фронт. Свежие результаты (смотри краткий обзор на gonzo-ml) показывают, что в fp4 тоже можно эффективно обучать.
В данной же статье авторам удается достичь Парето-оптимальности в W3A3/W4A4 и стабильного обучения в W1A1 😮 (уже не оптимального, но на одном уровне с fp16).
[Статья][Код]
Введение
Уважаемые коллеги из IST, в частности, @black_samorez_channel выпустили статью про стабильное обучение моделей с квантизованными весами и активациями.
Статей с той же аббревиатурой пруд пруди на архиве:
- Вот
- Вот
- Вот
- И вот
Но эта - особенная!
Ранее уже неоднократно поднимался (в том числе и на этом канале) вопрос о том, в какой точности оптимально учить модель (веса и активации), дабы получить наилучшее качество при заданном размере (через PTQ или QAT). Ранее утверждали, что 6-7 бит оптимально при квантизации весов и активаций в INTx/FPx. Но сама процедура была незамысловата, и нет гарантий, что нельзя пробить существенно Парето-фронт. Свежие результаты (смотри краткий обзор на gonzo-ml) показывают, что в fp4 тоже можно эффективно обучать.
В данной же статье авторам удается достичь Парето-оптимальности в W3A3/W4A4 и стабильного обучения в W1A1 😮 (уже не оптимального, но на одном уровне с fp16).
❤9🔥4🤯3
Forwarded from КПД
Метод
Основным затруднением при оптимизации весов и активаций в низкой точности является высокая степень шума. Напомню, что операция квантизации недифференцируема, и дабы все можно было оптимизировать градиентными методами применяют трюк имени Бенджио под названием STE (небось, тоже спиздил у Шмидхубера) , где градиент просто пробрасывается через недифференцируемую операцию (как будто вместо нее стоит функция y=x). Но при низких битностнях, такая оценка сильно расходится от истинного градиента и не сходится нормально.
Авторы формулируют задачу оптимизации STE, как минимизацию между оцененным псевдоградиентом и истинным. Предполагая гладкость функции потерь по весам, можно оценить ошибку градиента, как константа на ошибку квантизации весов.
Веса модели разделяют на 2️⃣ группы - с ошибкой квантизации ниже и выше некоторого порога. На шаге оптимизации учитывают только градиенты от весов с ошибкой ниже заданного порога, ибо вторые как раз и вносят шум и нестабильность в обучение.
Далее, дабы работать с более регулярным распределением весов/активаций, которое проще квантизовать, применяют пару трюков:
1️⃣ Чтобы привести распределение в более удобо квантизуемый вид применяют известный старым читателям канала трюк - вращения Адамаровыми матрицами как весов и активаций. В результате получают что-то близкое к гауссиане.
2️⃣ Дабы привести все приблизительно к
То есть в итоге алгоритм выглядит следующим образом:
🎯 На прямом проходе вращаем и нормализуем веса, сохраняя Адамаровы матрицы
🎯 На обратном проходе применяем обратное Адамарово преобразование и маскируем градиент
В Ablation показывают, что trust estimator (отбрасывание градиентов по шумным весам) в связке с Адамаровыми вращениями дает хорошую близость с истинным градиентом, в то время как vanilla STE и без Адамара корреляция низкая.
Основным затруднением при оптимизации весов и активаций в низкой точности является высокая степень шума. Напомню, что операция квантизации недифференцируема, и дабы все можно было оптимизировать градиентными методами применяют трюк имени Бенджио под названием STE
Авторы формулируют задачу оптимизации STE, как минимизацию между оцененным псевдоградиентом и истинным. Предполагая гладкость функции потерь по весам, можно оценить ошибку градиента, как константа на ошибку квантизации весов.
Веса модели разделяют на 2️⃣ группы - с ошибкой квантизации ниже и выше некоторого порога. На шаге оптимизации учитывают только градиенты от весов с ошибкой ниже заданного порога, ибо вторые как раз и вносят шум и нестабильность в обучение.
Далее, дабы работать с более регулярным распределением весов/активаций, которое проще квантизовать, применяют пару трюков:
1️⃣ Чтобы привести распределение в более удобо квантизуемый вид применяют известный старым читателям канала трюк - вращения Адамаровыми матрицами как весов и активаций. В результате получают что-то близкое к гауссиане.
2️⃣ Дабы привести все приблизительно к
N(0, 1) применяют RMS нормализацию к результату шага 1. А для N(0, 1) можно уже численно найти оптимальный скейлинг фактор для решетки квантизации и пользоваться им.То есть в итоге алгоритм выглядит следующим образом:
🎯 На прямом проходе вращаем и нормализуем веса, сохраняя Адамаровы матрицы
🎯 На обратном проходе применяем обратное Адамарово преобразование и маскируем градиент
В Ablation показывают, что trust estimator (отбрасывание градиентов по шумным весам) в связке с Адамаровыми вращениями дает хорошую близость с истинным градиентом, в то время как vanilla STE и без Адамара корреляция низкая.
👍22❤1😁1