尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

大模型算力成本深度拆解:训练、推理与量化省钱实战

大模型算力成本深度拆解:训练、推理与量化省钱实战 前阵子跟一个做创业的朋友吃饭他问了我一个特别实际的问题现在都说AI烧钱到底烧在哪了我给他讲了十分钟他最后的总结是所以你说的算力就是AI的饭量这比喻挺糙但还真就说到点子上了。AI的胃口有多大决定了一家公司要往这个无底洞里填多少钱。这篇文章不聊虚的就围绕算力这笔硬开支把AI为什么这么能吃钱都花在哪几顿上有没有办法让AI吃得更省这几个问题一次讲透。无论你是准备搞本地部署的个人开发者还是需要给团队做技术预算的决策者这篇都值得看完。1. 为什么大模型天生就是个算力黑洞——从注意力机制说起1.1 一句话理解Transformer为什么会贪吃大模型绝大多数都是Transformer架构Transformer里最核心的结构叫自注意力机制。这个机制干的事说人话就是当模型在读一句话的时候它要把句子里每一个词跟其他所有词都互相打个照面计算彼此之间的关系权重。假设一句话有L个词每个词都要跟另外L个词做一次关联计算所以单层注意力部分的计算量大约是L×L这个量级。如果句子有1024个词这里就有差不多一百万次关联计算而这还只是模型几十层里的其中一层。这就是为什么长文本对大模型来说格外费钱。你给AI喂一篇几千字的文章它的注意力计算量不是线性涨而是跟着文本长度做二次方级别的膨胀。更深的层数、更长的上下文、更大的词表每一个都会把算力需求往上顶。大模型之所以胃口大根子就在这里它天生要在海量的词与词之间建立联系这本身就是一个计算密集型的过程。1.2 算力需求和参数量之间有个神秘系数6除了架构天生的消耗训练大模型还有一个被业内广泛使用的经验公式训练总计算量FLOPs ≈ 6 × 模型参数量 × 训练数据量token数这里的6约等于一次前向传播2倍参数 一次反向传播4倍参数的系数。只要你知道模型多大、用了多少数据训练就能大致估算出需要多少算力。例如Meta训练LLaMA 65B的时候用了约1.4万亿个token那它的训练计算量就是6×650亿×1.4万亿大致相当于5.46×10^23次浮点运算。这个公式最大的价值是让你明白算力需求是可以预先算账的不是玄学。模型参数翻一倍数据量不变的情况下训练成本大概也翻一倍数据量翻一倍训练成本同样翻一倍。所谓Scaling Law规模法则本质上就是在说多吃才能强壮而多吃对应的账单是实打实的递增。1.3 胃口虽然能算但实际饭量还要打折扣上面那个6N公式算的是理论最小饭量。实际训练过程中还有通信同步、激活值存储、优化器状态更新、日志检查点保存这些额外开销。尤其是集群训练时GPU之间要通过NVLink或高速网络频繁交换梯度这部分通信时间往往能占到整体训练时间的20%到40%。所以在真实项目里一张GPU卡的利用率能到50%就已经算是不错的工程水平了。这就好比你给AI摆了一桌饭但有一小半它嘴巴没接住掉地上了。做预算的时候千万别拿理论算力直接当实际可用算力去用通常要在理论值上预留2到3倍的余量。2. 算力的度量衡——FLOPs、TOPS和GPU的真实饭量2.1 几个容易被搞混的单位聊算力之前得先把度量单位盘清楚。不然你看硬件参数表满屏都是数字根本分不清谁更能打。单位全称含义常见场景FLOPFloating-point Operation一次浮点运算描述总计算量FLOPsFloating-point Operations per Second每秒浮点运算次数描述算力峰值TOPSTera Operations per Second每秒万亿次整数运算描述INT8算力PFLOPS-day每秒千万亿次运算持续一天累计算力包描述大规模训练总消耗我跟你打赌十个人里有八个会把FLOPs当成FLOP来用。记住这个区分FLOPs带小写s是每秒能算多少次是个速度概念不带s的FLOP是总共算了多少次是个总量概念。至于TOPS主要出现在量化算力的场景里因为整数运算用不了浮点单位来衡量。2.2 一张表看懂主流GPU的饭量算力显卡界目前最常出镜的几张卡大概参数如下GPU型号FP16浮点算力INT8算力显存容量显存带宽典型定位RTX 309035.6 TFLOPS142 TOPS24GB GDDR6X936 GB/s消费级旗舰RTX 409082.6 TFLOPS660 TOPS24GB GDDR6X1008 GB/s消费级旗舰A100 80GB312 TFLOPS624 TOPS80GB HBM2e2039 GB/s数据中心训练H100 SXM990 TFLOPS3958 TOPS80GB HBM33350 GB/s数据中心旗舰光看峰值算力RTX 4090已经能到A100的差不多四分之一这让很多人觉得消费卡可以平替专业卡。但注意一个关键差异A100和H100的显存带宽是消费卡的2到3倍而推理大模型恰恰是带宽敏感型任务。后面我会专门讲这个显存带宽才是大模型推理的咽喉。2.3 算力显卡和游戏显卡到底差在哪先给结论游戏卡不是不能跑AI但在多卡互联、稳定性、显存容量、软件生态这几个维度上跟专业算力卡有代差。第一是NVLink。A100/H100之间可以通过NVLink以每秒600GB到900GB的速度直连而游戏卡之间只能走PCIe总线速度差了五到十倍。训练一个70B级别的模型梯度同步量巨大没有高速互联多卡训练效率会低到让人崩溃。这也是为什么很多人在家插了两张4090训练大模型发现速度还不如一张卡的原因——通信开销把多卡优势全吃掉了。第二是显存上限。消费级卡最多24GB而大模型训练动不动需要几百GB的显存。专业卡提供40GB、80GB的规格未来还有192GB的版本。显存不够模型根本装不下一切免谈。第三是稳定性和可靠性。数据中心卡支持ECC内存纠错长时间满载跑几周不出错游戏卡在高温高压下跑个三五天偶尔就会出现计算错误导致训练步数漂移整个训练白费。3. 训练账本训一个大模型要烧掉多少真金白银3.1 先用公开数据给训练成本称重要回答AI有多能吃最直观的办法是看真实案例。Meta在2023年公开过大模型LLaMA系列的一些细节训练65B参数版本的LLaMA用了2048张A100 80GB显卡整整跑了大半个月。到了Llama 2 70BMeta报告说累计消耗了约172万GPU小时。172万GPU小时是什么概念如果按当时公有云租用A100每小时大约1到2美元计算光算力租金就是一百多万美元量级折合人民币近千万。这还只是算力费用没算存储、网络带宽、调试人员的薪水。更残酷的是训练大模型不是一次就成的。我认识的一个团队做模型预训练连续跑了三周结果训练中期发现数据处理有个bug损失曲线从头就不对只能推倒重来。这笔钱直接翻倍。大模型训练就是这样失败成本也是账单的一部分而且比例相当惊人。3.2 把训练账单拆开看租金、电费和人力训练阶段的成本大致可以切成三块GPU算力成本大头。云上租卡按小时计费自建机房则要算硬件折旧通常三年折完。以A100整机为例一台8卡的服务器价格几十万元三年折旧分摊到每天也是一个不小的数字。电力成本A100单卡功耗400瓦8卡整机加上CPU、散热整机功耗奔着4到6千瓦去了。按商用一度电一块钱算一台机器跑一天光电费就要一百多块钱。上千张卡的大集群一天电费就是小几十万。人力成本训练一个几十B参数的模型至少需要一个3到5人的算法工程团队。这些人年薪加起来轻轻松松超过算力本身的费用。很多人算账只算GPU把工程师的时间成本忽略掉结果预算严重超标。3.3 为什么小团队训大模型是个伪命题明白了训练成本之后你大概也能理解为什么真正从零预训练大模型的基本都是巨无霸公司。个人开发者和小团队更现实的路径是基于开源模型做微调也就是站在别人的肩膀上。微调的计算量比预训练小了好几个量级但仍然不便宜。以LoRA低秩适配微调一个7B参数模型为例单卡24GB显存勉强能跑用一张4090连续训练一两天也就花几十块钱电费。但要微调70B级别模型最低也需要4张24GB显存的卡做量化微调或者一张80GB专业卡门槛明显更高。说到底预训练是满汉全席微调是小灶开火两者烧的钱完全不是一个数量级。4. 推理才是真正的无底洞——模型上线后每天都在花钱4.1 每生成一个token背后都在烧算力很多人以为模型训练完就万事大吉了这是最大的误解。实际上模型一旦上线服务推理成本是持续、每天都在发生的比一次性训练成本更磨人。先算一笔细账推理时每生成一个token模型大约需要执行2倍参数量的浮点运算。70B模型的单次推理生成每个token大约要140 GFLOPs。听起来还行但每秒要生成几十个token一天下来总量就很恐怖了。更关键的是推理任务的瓶颈不在算力峰值而在显存带宽。这是因为自回归生成是串行的算完一个token才能算下一个。而每算一个token理论上都要把模型全部权重从显存里读一遍。所以最大生成速度约等于显存带宽除以模型权重体积。拿4090举例它的显存带宽约1TB/s跑FP16精度的7B模型权重约14GB理论最高速度也就70token/s左右。如果把模型量化成4bit约4GB理论速度能飙到250token/s。这就是为什么大模型推理领域疯狂搞量化——不是为了省显存更是为了释放带宽、提升吞吐。4.2 KV Cache决定上下文有多贵的隐形账单推理成本里还有一个特别容易被忽略的大头叫KV Cache。生成过程中模型需要缓存所有历史token的注意力键值对每多生成一个token缓存就要增大一份。这个缓存占显存的增长速度跟模型层数、注意力头数、序列长度直接相关。以70B模型为例上下文每增加一个tokenKV Cache大约要占300多KB显存。看起来不多但一次聊够32K上下文光KV Cache就要吃掉10GB左右显存。这意味着用户对话越长单个并发占用的显存越大服务器能同时服务的用户就越少。摊到每个请求头上长对话的推理成本可能是短对话的数倍。4.3 一个API请求的裸硬件成本我不止一次被问市面上那些AI对话产品到底成本是多少这里给个量级参考。假设一个请求输入500token、输出500token模型是70B级别跑在一块A100上。受带宽限制这个输出要花20多秒才能生成完。按A100每小时租金约1美元折算这单次请求的裸算力成本大约不到1美分换算成人民币就是几分钱。当然产品方还要算上GPU利用率不饱和、服务冗余、开发运维、利润率所以你看API定价往往比这个裸成本高10倍甚至更多。拆完这笔账你会发现AI公司真正的经营难点不在做出模型而在把推理成本压到能规模化盈利的水平。这就是为什么OpenAI、Google这些公司对推理集群的技术抠得特别细。5. FP32、FP16、INT8精度越低胃口越小5.1 四种精度各代表什么既然算力这么贵有没有办法让AI少吃点有最核心的手段就是降精度。模型训练与推理中的数据有几种常见表示格式精度类型位宽指数位尾数位适用场景FP3232位823传统训练基线FP1616位510混合精度训练、推理BF1616位87大模型训练首选INT88位无整数推理量化加速FP32是单精度浮点范围大精度高但占用空间多、运算慢。FP16是半精度占用减半但指数范围小对太大或太小的数值容易溢出。BF16专为深度学习设计保留了FP32的指数范围牺牲了小数精度训练大模型时特别稳。INT8则直接把数值变成8位整数占用只有FP32的四分之一。5.2 训练用半精度推理用低比特这套组合拳怎么打大模型训练现在的主流做法是混合精度前向传播和反向传播用FP16或BF16优化器状态和主权重保留FP32副本。这样做的好处是既保证了训练的稳定性又能让GPU的Tensor Core以翻倍的速度跑计算。以A100为例FP32算力大约19.5 TFLOPS而FP16算力直接拉到312 TFLOPS16倍差距。你会毫不犹豫选后者。推理环节则更激进普遍用INT8甚至更低比特的量化。把70B模型从FP16量化成INT8显存占用从140GB降到70GB一张80GB的A100就能放下如果再量化成4bit只需要35GB几张消费级卡就能跑。显存瘦身加上带宽减负推理吞吐量可以提升好几倍。5.3 精度换速度不是免费的不过我得泼盆冷水量化不是无损操作它是拿模型精度换效率。模型量化之后推理输出的质量会有轻微下降。小模型量化后掉点明显大模型因为参数冗余度高量化后损失往往不太大但也不是绝对安全。我之前做本地部署的时候把某个7B模型从FP16量化到INT4之后明显感觉到它在复杂推理和中文长文本生成上的质量下降。对特定领域要求高的场景比如法律文书、代码生成我更建议至少保留FP8或INT8水平。省钱的度掌握在哪决定了一个系统是省到血赚还是省到翻车。6. 算力开销怎么省——租赁、自建还是本地部署6.1 算力租赁平台怎么选AutoDL与云厂商的正确打开方式对个人开发者和小团队来说最划算的路子是租算力而不是买卡。国内像AutoDL这类按小时计费的算力云平台租用RTX 4090、A100、H800这些主流卡型非常灵活新用户和预充值往往还有优惠用多久付多久适合跑项目、做训练实验。换到大型云厂商通常按秒计费还有竞价实例价格能比按量便宜很多但需要你能接受随时被回收的风险。我自己的实操心得是三点。第一看卡先看存储IO很多平台按小时计费机器本地盘读写慢到姥姥家数据加载能吞掉大把训练时间实际折算下来并不便宜第二抢节点要看时段赶上大模型行业高峰期热门卡型秒没提前设好提醒是关键第三别忽视带宽费很多平台流量单独计费大规模下载数据集可能比租卡的账单还吓人。6.2 本地部署的配置思路从7B到70B怎么配如果你就是自己玩想本地跑开源模型我给你一个按显存倒推配置的方法。模型权重大小约等于参数量乘以精度位宽除以8。以7B模型为例FP16约14GB显存建议RTX 4080/4090INT8约7GB显存RTX 4070及以上足够INT4约4GB显存RTX 3060都能跑如果目标是要跑70B模型FP16需要140GB显存得4张4090以上INT4量化后大约35GB一张RTX 4090或两张3090就能推理。至于训练和微调显存需求会大幅上升7B模型即使做LoRA微调单卡24GB也只能算勉强70B微调则建议直接上租赁平台别折腾本地了。6.3 省钱的核心逻辑让算力别闲着无论你选租赁还是自建最大的浪费都是算力摆在那边闲着。GPU这种硬件开机就在烧钱不管是折旧还是电费。所以省钱的核心功夫在于调度。个人层面同一张卡可以白天跑推理服务半夜跑训练任务把时间片榨干。企业层面就需要做算力池化和异构调度了。现在已经有OpenFuyao这类开源项目在做企业级异构算力调度平台把不同型号、不同新旧批次的GPU统一管理起来让推理、微调、数据预处理各取所需按优先级分配资源。这类平台的价值在于把利用率从百分之二三十拉到百分之七八十省下的钱比买新卡多得多。另外还有一个不算秘密的技巧把大模型任务拆开跑。不是所有任务都需要H100的算力。数据清洗、向量化、小模型分类这些脏活累活扔给游戏卡或者旧卡干就行高端GPU集中在训练和大模型推理上成本立刻降下来。6.4 个人电脑共享算力出租值不值热搜里经常看到个人电脑共享算力出租的说法。我的意见很明确趁早别碰。原因有几点——个人电脑的显卡通常没有专业的散热和电源管理7×24小时高负载跑硬件损耗和电费叠加起来收益大部分要被吞掉另外个人设备接入公网算力市场安全边界和隐私隔离也是隐患。你辛苦一晚上赚的租金可能还不够一块显卡一个小时的折旧钱纯纯的亏本买卖。如果你手里真有空闲的GPU最合适的用途不是出租而是拿来跑本地模型、做集群测试、积累经验。这些技能涨的身价可比共享租金值钱多了。算力这笔账说到底是一个目标-资源-成本的三角题。我自己现在的处理方式是先想清楚要解决什么问题再反推需要什么规模的模型、什么精度的推理最后才决定是租还是买、是量化还是full precision。别被算力焦虑带着跑也别因为心疼钱把精度砍到没法用。各路开源的量化模型、算力租赁平台和调度工具越来越成熟AI的饭量虽然大但只要你会点菜、会拼桌这顿饭钱完全有得谈。
返回列表