TGViewer
GigaDev — разработка GigaChat GigaDev — разработка GigaChat @gigadev_channel · 5.24K subscribers
Post #21 9.26K
🔥 FP8 mixed precision — где и как DeepSeek снизили точность вычислений?

В прошлом посте мы разобрали, как использование FP8 для матричных операций (GEMM) ускоряет обучение моделей. Теперь давайте посмотрим, какие методы и оптимизации FP8 применялись при разработке DeepSeek-V3 — одной из лучших моделей на данный момент.

⚡️ Особенности FP8 GEMM от DeepSeek

Просто перевести все вычисления в FP8 недостаточно. В обучении встречаются выбросы (outliers) в активациях, весах и градиентах — редкие, но экстремальные значения, которые сильно искажают точность при квантовании. Если их не учитывать, модель может потерять качество.

Вот какие техники использовались в DeepSeek-V3 для FP8-обучения:

🔹 Точечное (fine-grained) квантование
Вместо квантования тензоров целиком они разбиваются на небольшие группы:
▪️ Активации — на «плитки» (tile-wise) 1×128
▪️ Веса — на блоки (block-wise) 128×128
Активации более подвержены выбросам, поэтому требуют более аккуратного квантования. Этот метод снижает влияние выбросов, так как масштабирование подгоняется под меньшие группы элементов.

🔹 FP32-аккумуляция
FP8 ограничен по точности из-за небольшого количества бит для мантиссы. Чтобы минимизировать ошибки округления, промежуточные результаты GEMM копируются в FP32-регистры CUDA Cores и только потом суммируются.
Использование FP32 для аккумуляции выходов тензорных ядер позволяет значительно снизить ошибки, которые возникают при суммировании большого числа результатов умножения маленьких матриц в FP8.

🔥 Другие важные оптимизации

🔹 Использование E4M3 вместо гибридных форматов
Ранее в FP8-обучении использовали гибридные форматы:
▪️ E4M3 для Fprop (прямой проход)
▪️ E5M2 для Dgrad / Wgrad (обратный проход)

В DeepSeek-V3 все операции перевели на E4M3, так как он имеет большую мантиссу → выше точность. Ограниченный динамический диапазон компенсируется tile/block-wise масштабированием.

🔹 Экономия памяти и ускорение коммуникации
▪️ Low-precision оптимизатор — моменты AdamW хранятся в BF16, а мастер-веса и градиенты — в FP32.
▪️ FP8-кеширование активаций — активации сохраняются в FP8 после Fprop, что значительно экономит память.
▪️ Сжатие коммуникации — в распределённом обучении передача данных между узлами — узкое место. В DeepSeek-V3 для части коммуникаций активации перед отправкой сжимаются в FP8, что по заявлениям авторов уменьшает накладные расходы на передачу данных. Однако часть коммуникаций все же сохраняется в BF16 в критических местах.

И главное: качество модели практически не страдает. Ошибка по сравнению с BF16-обучением остаётся в пределах 0.25%, что укладывается в статистическую погрешность.

Авторы не только подробно описали свою методику, но и выложили в open-source реализацию FP8 GEMM с fine-grained scalingDeepGEMM.

Более маленькие типы данных вроде FP8 и bf16 — это не только про ускорение матричных вычислений, но и про эффективное управление памятью и оптимизацию коммуникаций. И как показали DeepSeek, правильная интеграция этих техник позволяет обучать очень большие модели без потери качества!🚀
  • 🔥 22
  • ❤ 7
  • 👾 4
  • 🐳 2
  • 🤝 1
More from @gigadev_channel
  1. Sep 10, 2026🧠 GigaChat 3.5 Reasoning — первая в России открытая модель с рассуждениями Выкладываем в…
  2. Aug 25, 2026💵 GigaEmbeddings: новая линейка моделей от 480M до MoE-флагмана 10B-A1.8B Мы обновили всю…
  3. Jul 27, 2026💚Хотите познакомиться с командой GigaChat лично? Встречаемся 29 июля! Никаких докладов и…
  4. Jul 14, 2026GigaChat Audio и GigaAM Multilingual: новые Open Source модели с поддержкой длинного конте…
  5. Jul 6, 2026💵 GigaChat 3.5 Ultra: меньше, быстрее, сильнее Сегодня мы выкладываем в open source GigaC…
  6. Jul 2, 2026💵 GFusion: как мы обучали диффузионную LLM в GigaChat «А что, если LLM будет генерировать…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →