Telegram Group & Telegram Channel
Предсказание токенов сделано последовательным. Для предсказания D дополнительных токенов используется D MTP модулей (MTP Modules), у них шареные эмбеддинги и выходная голова. На вход им прилетает выход слоя основной модели или предыдущего MTP модуля, а также эмбеддинги следующего токена, всё нормализуется RMSNorm и конкатенируется. Каждый модуль считает кроссэнтропийный лосс, по всем модулям вычисляется средний лосс и он с коэффициентом 𝜆 выступает как дополнительный лосс модели (0.3 для первых 10T токенов, 0.1 для последующих 4.8T). При инференсе MTP модули отбрасываются, но можно и использовать для speculative decoding.

MTP стабильно улучшает перформанс на большинстве бенчмарков. В экспериментах acceptance rate для следующего токена находился в диапазоне от 85% до 90%. В комбинации со speculative decoding TPS возрастает в 1.8 раза.


❇️ Другая интересная часть — инфраструктура.

DeepSeek-V3 обучался на кластере из 2048 NVIDIA H800 GPU. Напомню, что H800 — это урезанная H100 для Китайского рынка. У H800 ослаблен interconnect (bandwidth ниже более чем в два раза и количество линков NVLink тоже уменьшено), а также в десятки раз понижены флопсы для FP64 — для нейросетей неважно, а атомные бомбы считать хуже. Чтобы нумерация была “особенно логичной”, H200 — это улучшенная версия H100 с большим объёмом более быстрой памяти.

Для обучения внутри компании написали свой закрытый фреймворк HAI-LLM.

DeepSeek-V3 использует 16-way Pipeline Parallelism (PP), 64-way Expert Parallelism (EP) с 8 нодами, и ZeRO-1 Data Parallelism (DP). Для эффективного PP разработали алгоритм DualPipe, перекрывающий фазы коммуникации и вычисления в forward и backward фазах. Приводит к уменьшению pipeline bubbles. Благодаря суровым оптимизациям памяти обошлись без Tensor Parallelism (TP). Кроме этого разработали эффективные cross-node all-to-all communication kernels.


❇️ Но самая интересная для меня часть здесь — это FP8 Training.

Кто не знает, что такое FP32, FP16, BF16, вэлкам в мой старый пост: https://moocaholic.medium.com/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407. FP8 там нет, но по аналогии поймёте, что это такое.

Кажется, это первая открытая реально большая продакшн модель, обученная в FP8. Llama3, например, вроде как в BF16 обучалась, и я так понимаю это примерно стандарт, ну либо микс FP32/16. Да, была более ранняя работа (https://arxiv.org/abs/2409.12517) от израильтян из Habana (теперь Интел). Там в FP8 обучали 7B модель на 2T токенов на интеловско-хабановских же Gaudi2 и получали качество сравнимое с BF16 при улучшении throughput на 34%. Была и ещё более ранняя FP8-LM (https://arxiv.org/abs/2310.18313) от Microsoft, где обучали GPT-175B. Они даже библиотечку опубликовали (https://github.com/Azure/MS-AMP). В принципе не удивлюсь, если OpenAI в итоге тоже внутри на FP8 перешли, но от них молчок. Что там у Гугла тоже не поймёшь. Но ставлю на BF16 🙂

В реальности у DeepSeek, конечно, тоже mixed precision — какие-то вещи по-прежнему считаются в более полных форматах, BF16 или даже FP32. В таких форматах остались: embedding module, the output head, MoE gating modules, normalization operators, and attention operators (вот тут я не совсем понял, какие именно). Также в большей разрядности пишут master weights, weight gradients, и optimizer states. Это всё повышает стабильность обучения, кажется, основную проблему низкоразрядных форматов (ну за пределами отсутствия поддержки в кернелах и железе). Но большинство тяжёлых вычислений в FP8. Отчасти поэтому, я думаю, они сумели сильно сэкономить в деньгах на компьют. В идеальной теории это повышает доступный компьют в два раза, одновременно уменьшая во столько же требования к памяти.

Попутно реализовали сколько-то стратегий для повышения точности, например, более хитрое квантование, повышенную точность для аккумуляции, и приоритет мантиссы над экспонентой, благодаря чему для всех тензоров используется формат E4M3 (4 бита на экспоненту и 3 на мантиссу), а не смесь E4M3 и E5M2.



group-telegram.com/gonzo_ML/3294
Create:
Last Update:

Предсказание токенов сделано последовательным. Для предсказания D дополнительных токенов используется D MTP модулей (MTP Modules), у них шареные эмбеддинги и выходная голова. На вход им прилетает выход слоя основной модели или предыдущего MTP модуля, а также эмбеддинги следующего токена, всё нормализуется RMSNorm и конкатенируется. Каждый модуль считает кроссэнтропийный лосс, по всем модулям вычисляется средний лосс и он с коэффициентом 𝜆 выступает как дополнительный лосс модели (0.3 для первых 10T токенов, 0.1 для последующих 4.8T). При инференсе MTP модули отбрасываются, но можно и использовать для speculative decoding.

MTP стабильно улучшает перформанс на большинстве бенчмарков. В экспериментах acceptance rate для следующего токена находился в диапазоне от 85% до 90%. В комбинации со speculative decoding TPS возрастает в 1.8 раза.


❇️ Другая интересная часть — инфраструктура.

DeepSeek-V3 обучался на кластере из 2048 NVIDIA H800 GPU. Напомню, что H800 — это урезанная H100 для Китайского рынка. У H800 ослаблен interconnect (bandwidth ниже более чем в два раза и количество линков NVLink тоже уменьшено), а также в десятки раз понижены флопсы для FP64 — для нейросетей неважно, а атомные бомбы считать хуже. Чтобы нумерация была “особенно логичной”, H200 — это улучшенная версия H100 с большим объёмом более быстрой памяти.

Для обучения внутри компании написали свой закрытый фреймворк HAI-LLM.

DeepSeek-V3 использует 16-way Pipeline Parallelism (PP), 64-way Expert Parallelism (EP) с 8 нодами, и ZeRO-1 Data Parallelism (DP). Для эффективного PP разработали алгоритм DualPipe, перекрывающий фазы коммуникации и вычисления в forward и backward фазах. Приводит к уменьшению pipeline bubbles. Благодаря суровым оптимизациям памяти обошлись без Tensor Parallelism (TP). Кроме этого разработали эффективные cross-node all-to-all communication kernels.


❇️ Но самая интересная для меня часть здесь — это FP8 Training.

Кто не знает, что такое FP32, FP16, BF16, вэлкам в мой старый пост: https://moocaholic.medium.com/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407. FP8 там нет, но по аналогии поймёте, что это такое.

Кажется, это первая открытая реально большая продакшн модель, обученная в FP8. Llama3, например, вроде как в BF16 обучалась, и я так понимаю это примерно стандарт, ну либо микс FP32/16. Да, была более ранняя работа (https://arxiv.org/abs/2409.12517) от израильтян из Habana (теперь Интел). Там в FP8 обучали 7B модель на 2T токенов на интеловско-хабановских же Gaudi2 и получали качество сравнимое с BF16 при улучшении throughput на 34%. Была и ещё более ранняя FP8-LM (https://arxiv.org/abs/2310.18313) от Microsoft, где обучали GPT-175B. Они даже библиотечку опубликовали (https://github.com/Azure/MS-AMP). В принципе не удивлюсь, если OpenAI в итоге тоже внутри на FP8 перешли, но от них молчок. Что там у Гугла тоже не поймёшь. Но ставлю на BF16 🙂

В реальности у DeepSeek, конечно, тоже mixed precision — какие-то вещи по-прежнему считаются в более полных форматах, BF16 или даже FP32. В таких форматах остались: embedding module, the output head, MoE gating modules, normalization operators, and attention operators (вот тут я не совсем понял, какие именно). Также в большей разрядности пишут master weights, weight gradients, и optimizer states. Это всё повышает стабильность обучения, кажется, основную проблему низкоразрядных форматов (ну за пределами отсутствия поддержки в кернелах и железе). Но большинство тяжёлых вычислений в FP8. Отчасти поэтому, я думаю, они сумели сильно сэкономить в деньгах на компьют. В идеальной теории это повышает доступный компьют в два раза, одновременно уменьшая во столько же требования к памяти.

Попутно реализовали сколько-то стратегий для повышения точности, например, более хитрое квантование, повышенную точность для аккумуляции, и приоритет мантиссы над экспонентой, благодаря чему для всех тензоров используется формат E4M3 (4 бита на экспоненту и 3 на мантиссу), а не смесь E4M3 и E5M2.

BY gonzo-обзоры ML статей


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/gonzo_ML/3294

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

You may recall that, back when Facebook started changing WhatsApp’s terms of service, a number of news outlets reported on, and even recommended, switching to Telegram. Pavel Durov even said that users should delete WhatsApp “unless you are cool with all of your photos and messages becoming public one day.” But Telegram can’t be described as a more-secure version of WhatsApp. But because group chats and the channel features are not end-to-end encrypted, Galperin said user privacy is potentially under threat. These entities are reportedly operating nine Telegram channels with more than five million subscribers to whom they were making recommendations on selected listed scrips. Such recommendations induced the investors to deal in the said scrips, thereby creating artificial volume and price rise. He said that since his platform does not have the capacity to check all channels, it may restrict some in Russia and Ukraine "for the duration of the conflict," but then reversed course hours later after many users complained that Telegram was an important source of information. In a message on his Telegram channel recently recounting the episode, Durov wrote: "I lost my company and my home, but would do it again – without hesitation."
from ar


Telegram gonzo-обзоры ML статей
FROM American