FLOPs(浮点运算次数)

FLOPs 就是模型做一次推理或训练要算多少次加减乘除,数越大说明模型越'重'、越费卡

亦作、亦称:浮点运算次数 · FLOPS · floating point operations · compute budget · 浮点运算量 · 算力

FLOPs 是衡量 AI 模型计算代价的通用货币,从单次推理到千亿参数预训练,所有算力讨论都绕不开它。理解 FLOPs 是读懂扩展定律、做好推理优化和算力规划的前提。

概述

FLOPs 是衡量 AI 模型计算代价的通用货币,从单次推理到千亿参数预训练,所有算力讨论都绕不开它。理解 FLOPs 是读懂扩展定律、做好推理优化和算力规划的前提。

概述:FLOPs 是什么

FLOPs 是深度学习与高性能计算领域最核心的算力度量单位之一。

  • FLOPs(Floating Point Operations):完成某任务所需的浮点运算 总次数 ,静态描述计算量
  • FLOPS(Floating Point Operations Per Second):硬件每秒能执行的浮点运算次数,描述硬件 吞吐能力 - 两者关系:理论运行时间 ≈ FLOPs ÷ FLOPS(忽略内存带宽等瓶颈)
  • 常见量级前缀:MFLOPs(百万)、GFLOPs(十亿)、TFLOPs(万亿)、PFLOPs(千万亿)
  • 在 AI 场景中,FLOPs 特指神经网络前向/反向传播中涉及的乘加运算(MAC) 总量

计算原理:FLOPs 怎么算

对于神经网络,FLOPs 从逐层统计到全网汇总,核心规则如下。

  • 全连接层:输入维度 M、输出维度 N,FLOPs ≈ 2MN(乘法 + 加法各 MN 次,通常用 2MN 或 MN 视惯例而定)
  • 卷积层:FLOPs ≈ 2 × 输入通道 × 输出通道 × 卷积核面积 × 输出特征图面积
  • 注意力机制(Transformer):自注意力的 FLOPs 与序列长度 L 呈 O(L²) 增长,是长文本推理的主要瓶颈
  • 训练 vs 推理:训练 FLOPs ≈ 3 × 推理 FLOPs(前向 1 份 + 反向 2 份)
  • 工具支持:PyTorch 的 torchinfofvcore,ONNX 分析工具均可自动统计模型 FLOPs

类型与变体:精度与单位

随着混合精度训练普及,FLOPs 的统计口径也在细化。

  • FP32 FLOPs:传统全精度,1 次乘加 = 2 FLOPs,是早期默认基准
  • FP16 / BF16 FLOPs:现代 GPU(如 A100、H100)对半精度有专用 Tensor Core,理论峰值是 FP32 的 2-4 倍
  • INT8 / FP8 FLOPs:量化推理场景,硬件吞吐进一步翻倍,但精度损失需评估
  • MACs vs FLOPs:MAC(Multiply-Accumulate Operation)= 1 次乘 + 1 次加 = 2 FLOPs;部分框架以 MACs 上报,需注意换算
  • 稀疏 FLOPs:剪枝后理论 FLOPs 下降,但实际加速依赖硬件对稀疏的支持程度

扩展定律:FLOPs 预算与最优分配

FLOPs 是 Scaling Laws 研究的核心变量,直接指导大模型训练策略。

  • Kaplan et al. 2020(OpenAI):发现模型损失与模型参数量、数据量、计算量均呈幂律关系,奠定扩展定律基础
  • Chinchilla 定律(Hoffmann et al., 2022):在固定 FLOPs 预算下,参数量与训练 token 数应等比增长(各约 20 tokens/参数)
  • GPT-3(175B 参数)仅用约 1.7 tokens/参数,显著低于 Chinchilla 最优,属于「参数过多、数据不足」
  • 实践意义:给定算力预算,Chinchilla 定律可指导选择更小参数量 + 更多数据的组合,同等 FLOPs 下性能更优
  • FLOPs 预算(Compute Budget):预训练前明确总 FLOPs 上限,作为超参搜索和资源规划的约束条件

应用场景

FLOPs 在 AI 研发全链路中均有实际用途。

  • 模型选型:在精度相近时,优先选 FLOPs 更低的模型(如 MobileNet vs ResNet)
  • 推理优化:知识蒸馏、剪枝、量化的核心目标之一是在精度损失可控前提下降低 FLOPs
  • 算力采购与规划:通过估算训练总 FLOPs 与 GPU 峰值 FLOPS,预估训练周期与成本
  • 学术论文对比:FLOPs 作为与精度并列的效率指标,广泛出现在 CV、NLP 论文的 Pareto 曲线中
  • AI 治理与监管:部分监管框架(如 EU AI Act)以训练 FLOPs 阈值(如 10²⁶)划定高风险模型边界

局限与常见误区

FLOPs 是有用但不完备的指标,使用时需警惕以下误区。

  • FLOPs 低 ≠ 速度快:实际延迟还受内存带宽、并行度、缓存命中率影响;稀疏模型 FLOPs 减半但不一定提速
  • 忽略内存访问开销:Attention 等内存密集型操作的瓶颈往往是 HBM 带宽而非算力,FLOPs 无法捕捉此类代价
  • 大小写混用:将 FLOPS(速率)与 FLOPs(总量)混用是常见错误,导致数量级理解偏差
  • 不同框架统计口径不同:部分工具统计 MACs,另一些统计 FLOPs(= 2×MACs),对比前须核实
  • 训练 FLOPs 估算误差:梯度检查点、数据增强、评估步骤等会带来额外算力,理论估算常低于实际

发展脉络

FLOPs 从超算性能指标演变为 AI 时代的核心算力语言。

  • 1974 年:David Kuck 提出 flops/megaflops,用于描述超级计算机性能,优于 MIPS 指标
  • 1980s-1990s:Frank H. McMahon(Lawrence Livermore 实验室)将 FLOPS 系统化为超算排名标准(TOP500 前身)
  • 1993 年:TOP500 榜单创立,以 FLOPS 为唯一排名指标,推动超算 FLOPS 军备竞赛
  • 2012 年后:深度学习爆发,GPU FLOPs 成为训练效率核心指标,NVIDIA 以 TFLOPS 作为 GPU 性能宣传核心
  • 2020 年:OpenAI Scaling Laws 论文将 FLOPs 正式引入大模型研究主流叙事
  • 2022 年:Chinchilla 论文以 FLOPs 预算为框架重构最优训练策略,影响此后几乎所有主流大模型的设计
  • 2024 年起:EU AI Act 等法规引入 FLOPs 阈值作为模型风险分级依据,FLOPs 进入政策语境

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「FLOPs 就是模型做一次推理或训练要算多少次加减乘除,数越大说明模型越'重'、越费卡」
  • 「很多人把 FLOPs 和 FLOPS 混用,其实前者是总运算量,后者是硬件每秒能跑多少,完全是两回事」
  • 「训练大模型时说的'算力预算',本质上就是给这次训练划定一个 FLOPs 上限」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

延伸阅读

从知识库精选 3 篇文章,帮助深入理解该术语。

  1. 1

    AI 基础设施全景:从算力到治理的 2026 趋势解读

    基于 Gartner 2026 AI 基础设施预测和三大技术趋势,系统解读 AI 支出、算力架构、边缘计算、智能体部署和企业 AI 治理的完整框架

  2. 2

    AI 芯片地缘政治:从中美博弈到全球供应链重构

    AI 芯片已成为 21 世纪最重要的战略资源。本文系统分析中美 AI 芯片博弈的全景:出口管制政策演变、英伟达的产品策略、国产芯片的突围路径、以及全球半导体供应链的重构趋势。

  3. 3

    CNN:卷积神经网络架构详解(基础篇)

    从全连接层的缺陷到 ResNet,系统梳理 CNN 的核心组件、经典架构演进与 PyTorch 实战

外部参考

维基百科:查看「FLOPs」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。