FP8精度在DeepSeek-V3的训练过程中起着至关重要的作用,从而显着提高了效率并降低了计算成本。这是对其作用的详细解释:
FP8精确介绍
FP8是一种8位浮点格式,与传统的16位或32位格式相比,它提供更紧凑的表示。这种紧凑性导致记忆使用量减少和更快的计算,使其非常适合大规模AI模型训练(例如DeepSeek-V3 [3] [5]。
##混合精密框架
DeepSeek-V3采用混合精确框架,其中模型的不同部分使用不同级别的精度。大多数计算密集型操作,例如一般矩阵乘法(GEMM),都在FP8中执行以优化速度和内存使用情况。但是,某些需要更高精度的操作,例如嵌入模块,输出头,门控模块,归一化操作员和注意操作员以更高的精度格式(FP16或FP32)保持准确性[1] [5]。
##细粒量化
为了应对FP8有限的动态范围的挑战,DeepSeek-V3引入了细粒度的量化策略。这涉及将激活分为1x128图块,并将权重分为128x128个块,每个块独立缩放。这种方法可防止极端值扭曲整个张量,减少量化误差并维持模型的准确性[1] [5]。
##在线量化
DeepSeek-V3使用在线量化,其中在训练过程中针对每个激活图或重量块动态计算缩放因子。这消除了依靠历史最大值,简化框架并提高准确性的延迟量化方法的需求[1] [5]。
##增加积累精度
为了减轻FP8在张量芯中的积累精度有限引起的错误,DeepSeek-V3在GEMM操作过程中以特定的间隔为FP32寄存器促进了部分结果。这样可以确保将小错误的积累最小化,从而保持模型的总体准确性[1] [5]。
##统一E4M3格式
与使用混合FP8格式的以前的框架(例如,向前通行证的E4M3和向后通行的E5M2)不同,DeepSeek-V3普遍采用E4M3格式。通过其细粒度量化策略,这可以有效地在分组元素之间共享指数位,从而在所有计算中保持精度[1] [5]。
##对培训效率的影响
FP8精度的使用显着加速了DeepSeek-V3的训练过程。该模型在短短两个月内使用2048 GPU的数据中心进行了培训,预训练仅需要26.64亿H800 GPU小时,而随后的阶段又需要额外的100万个GPU小时。该效率归因于FP8 [3] [6]提供的记忆消耗降低和计算速度的提高。
总之,DeepSeek-V3中的FP8精度对于在保持模型准确性的同时达到高训练效率至关重要。它被仔细地集成到混合精确框架中,利用细粒度的量化和在线量化以减轻FP8的局限性。
引用:
[1] https://community.aws/content/2rjj1wkztsfywvfsiibhwxeqmf1/four-unique-takeaweays-from-deepseek-v3?lang=en
[2] https://arxiv.org/pdf/2412.19437.pdf
[3] https://dirox.com/post/deepseek-v3-the-open-source-ai-revolution
[4] https://www.nextplatform.com/2025/01/27/how-did-deepseek-train-its-ai-model-on-a-lot-less-and-crippled-hardware/
[5] https://www.linkedin.com/pulse/deepseek-v3s-key-innovations-8-bit-floating-point-point-fp8-qi-he-e3dgf
[6] https://huggingface.co/deepseek-ai/deepseek-v3
[7] https://martinfowler.com/articles/deepseek-papers.html
[8] https://research.colfax-intl.com/deepseek-r1-and-fp8-mixed-precision-training/