新浪科技

AI 推理成本高居不下,如何将推理成本下降一个数量级?

AI科技大本营

关注

算力成本高昂、大模型参数越来越大、多模态模型让推理成本再提高 2 个数量级、推理效率低、业务场景丰富但落地链路长等一系列现实问题,成为制约 AI 应用广泛落地的关键因素。如何降低算力成本,迎接推理算力爆发时代的到来?刚刚结束的 2024 全球机器学习技术大会上,王闻宇先生以《如何做到算力基建和推理优化的“软硬兼施”与创新突破》为题,对 AI 推理成本高企的原因进行深度剖析,并给出两个降低推理成本的有效方法。

作者 | 王闻宇

责编 | 王启隆

当前,AI 推理面临的首要问题是高昂的成本:

以 GPT-4 当前的推理价格为例,如果我们做一个粗略的估算,假设日活跃用户达到 10 亿,每人每天使用 7,000 个token(包含上下文信息),并且不考虑目前百万级脱壳的费用,每天产生的费用将高达 2.1 亿美金。若按 365 天计算,年费用将达到惊人的 600 亿美金。

GPT-4 推理价格估算 = 用户数 x 每用户生成 Token 数 x 单位 Token 推理价格 https://openai.com/pricing

这一数字相当于超过了 40 座世界第一高楼迪拜的哈利法塔(Burj Khalifa)的造价。更值得注意,这还只是今天的情况,还未考虑到多模态应用等更广泛的普及场景,因此实际使用量可能远超这一数字。

600 亿美金的概念意味着,如果 AI 推理市场的体量再放大十倍,其规模将接近甚至超过当前整个云计算产业的总收入。这表明 AI 推理在未来市场的发展潜力巨大,远远超过现有的云计算产业。因此,从商业角度看,AI 推理无疑是一个具有巨大潜力和前景的市场。

AI 推理成本高昂的原因分析

挑战 1:生产资料昂贵

导致 AI 推理成本高昂的原因有多种,其中生产资料成本是重要因素之一。例如,某些顶级芯片制造商的产品毛利率超过了 70%

当然,成本不仅仅局限于 GPU,电力消耗也是重要成本因素,特别是在电费较高的地区,电力成本可以显著影响总体运营成本。

挑战 2:LLM 参数还在越来越大

近年来,随着技术的不断进步,大型模型的参数规模也在迅速扩张。例如,今年 Mixtral 推出了具有 8*22 141B 参数的模型,Grok 发布了拥有 341B 参数的模型。Llama3 也公开了 400B 参数的模型,而传说中的 GPT-5 的参数规模更是将迈上新的台阶,尽管具体数值尚未揭晓。更大的模型意味着更高的计算需求,从而推高了推理成本

随着多模态技术的发展,尤其是音视频数据的处理,进一步增加了推理的复杂度。虽然据说 Sora 只有 10B 的参数量(没有得到官方的证明),但是音视频的生成具有长序列特性(对比 LLM 的 Token 数量大得多得多), 这种长序列特性会使得计算量和显存会大大增加,这最终也会使得推理成本的增长更是呈现指数级上升的趋势。

挑战 3:推理效率低

大模型系统的推理效率低下是行业普遍存在的问题,这主要是由于算法和硬件两方面原因导致的。

首先在算法层面,由于大模型自回归推理的特性,计算量随着文本生成长度平方增长,意味着生成的文本序列越长,推理的速度越慢。

其次经典的 GPU 硬件架构需要在推理过程中频繁进行数据传输和搬运,这会显著限制推理效率。比如在推理过程中,大量的数据通信发生在各级缓存层之间,不仅消耗 GPU 的算力,而且系统需要花费大量时间等待数据的搬运工作完成。

挑战 4:业务场景丰富,落地链路长

业务场景丰富和落地链路长会间接导致推理成本过高

当业务场景变得越来越多时,为了满足各种复杂和多样的需求,通常需要设计和训练更为复杂和庞大的模型。这些模型往往需要更高的计算资源和存储资源,导致推理过程中所需的计算成本增加。

落地链路长通常意味着从模型训练到实际部署应用的过程中,需要经过多个阶段和环节,包括数据预处理、模型训练、模型优化、模型部署等。这些环节都可能涉及到计算和存储资源的消耗,导致推理成本增加。

降低推理云成本两个有效思路

思路 1:分布式云,充分动员市场,降低生产资料成本

分布式云方面,充分动员市场的社会、经济、技术三大驱动力,以获得更便宜的生产资料,包括 GPU 卡与电力能源等。

以 GPU 为例,虽然高端 GPU 的价格昂贵,但是中低端 GPU/旧 GPU 便宜。我们可以通过分布式云的方式,利用其强大的市场动员能力,将大量中低端 GPU 汇聚起来(如 RTX 4090 等),形成一个庞大的分布式 GPU 算力网络,从而降低算力成本。同时,通过合理的能源管理和调度,可以降低能源消耗和散热成本,进一步降低推理成本。

传统的大型数据中心虽然具备强大的处理能力,但其成本高昂,不仅包括硬件设备的购置和维护,还包括能源的消耗和散热的需求。分布式云通过建立在全球各个位置小型数据中心或边缘计算节点,充分利用各地的廉价能源和算力资源,降低整体成本。

思路 2:AI 推理加速,提效降本

虽然生产资料的成本是能通过分布云的方式降低,但是下降空间都是有限的。其实降低推理成本,还有一个大杀器,用得好,其降本空间更大,这就是推理加速技术。

那么什么叫推理加速技术,拿 LLM 来举例,我们重点关注以下三个指标:

Time To First Token (TTFT): 首 Token 延迟,即从输入到输出第一个 token 的延迟。在在线的流式应用中,TTFT 是最重要的指标,因为它决定了用户体验。

Time Per Output Token (TPOT): 每个输出 token 的延迟(不含首个Token)。在离线的批处理应用中,TPOT 是最重要的指标,因为它决定了整个推理过程的时间。

Throughput:吞吐量,即每秒针对所有请求生成的 token 数。以上三个指标都针对单个请求,而吞吐量是针对所有并发请求的。

这是为了确保用户能够更快地获得系统的反馈,从而提升用户体验。同时,我们还努力增加系统的吞吐量,这意味着系统能够在单位时间内处理更多的数据,让系统推理的效率更高。

降低时延和增加吞吐量不仅关乎用户体验,更直接关系到推理成本。优化后的系统能够更高效地利用计算资源,如 CPU、GPU 和内存,从而降低单位推理任务的成本。这种成本降低不仅体现在硬件资源的消耗上,还体现在时间成本上,因为更高效的推理过程意味着更短的任务完成时间。

当同样的 GPU,如果更短的时间能够完成一个任务,就说明单位时间内能完成更多的任务,这样单任务的时间变短了,生产资料不变,那就说明单任务的推理成本降低了(例如,之前 10s 生成一张图片,现在 1s 生成一张图片,相当于 10s 生成了 10 张图片,也就时每张图片的推理成本降低了 10 倍)。

推理加速的本质在于解决制约性能的三要素:显存、算力和带宽。

想象一下,如果有一块固定的显存,能不能像打理家务一样精打细算,让这块显存存下更多的东西?这就是一个值得考虑的点。同样的,对于算力,我们是不是也能在运行时更精细地管理,让更多的计算任务同时跑起来呢?说到带宽,其实它就像是数据在显卡和其他存储设备之间传递的“道路”。如果我们能想办法减少数据在这条“道路”上的拥堵,比如降低通信量,那也是一种优化的思路。

推理优化实践:算法、系统、硬件的协同创新

针对制约性能的显存、算力和带宽三要素,我们进行了诸多推理优化实践,形成了算法、系统、硬件的协同创新,结合了一些最新的研究,探索了一些有效的方法。总体上可以分为算法优化、统一推理框架以及硬件适配这三个层次的综合优化。

无损优化系列

当前主流 LLM 基本都是 Decoder Only 的 Transformer 模型,其推理过程可以分为两个阶段。

  • Prefill:根据输入 Tokens(I,like,natural,language) 生成第一个输出 Token(Processing),通过一次 Forward 就可以完成,在 Forward 中,输入 Tokens 间可以并行执行(类似 Bert 这些 Encoder 模型),因此执行效率很高,通常都会位于 Compute Bound 区域。

  • Decoding从生成第一个 Token(Processing) 之后开始,采用自回归方式一次生成一个 Token,直到生成一个特殊的 Stop Token(或者满足用户的某个条件,比如超过特定长度) 才会结束,假设输出总共有 N 个 Token,则 Decoding 阶段需要执行 N-1 次 Forward,这 N-1 次 Forward 只能串行执行,效率很低,通常都会位于 Memory Bound 区域。

无损优化的本质,从一定程度上讲,是将 Memory Bound转化为 Compute Bound。

方法 1:算子融合,重点优化注意力计算和 KV-Cache

算子融合主要是针对 Transformer 模型中的两大核心组件——注意力(Attention)机制与前馈神经网络(FFN)进行优化,旨在显著提升推理速度。在此优化策略中,我们引入了一项被称为“KV 缓存”(KV-Cache)的关键技术,该技术使得 AI 模型在执行期间无需频繁重载数据,大幅度提升了运行效率。

具体而言,算子融合等同于将原本分离的运算步骤整合为单一的综合性操作,从而规避了数据在各操作间传输的开销,并允许这些操作直接在 GPU 的共享内存中高效执行。这一转变有效减少了 GPU 与外部存储器之间的数据交换需求,进而增强了整体处理效能。尤其在配备非高速 HBM 内存的高端显卡如 RTX 4090 上,此类优化显得尤为关键,因为这类硬件配置在没有高速内存支持的情况下,更依赖于高效的内存使用策略。

在实施算子融合策略时,我们侧重于注意力计算及其伴随的 KV-Cache。KV-Cache 的概念根植于 Attention 机制,该机制涉及 Query、Key 和 Value 三个基本元素。其中,通过 Query 与 Key 的矩阵乘积并经由 Softmax 函数处理后,选择相应的 Values 进行后续计算。鉴于在 Attention 计算过程中,Key 和 Value 会被反复访问,采用 KV-Cache 策略能够保留这些中间结果,避免了重复加载的耗时操作,从而在每个计算周期内显著增强了数据处理与传输的效率,这是 KV-Cache 技术的核心所在。

对于比较耗时的注意力计算,其涉及多次矩阵场乘和 Softmax 计算,如果可以将这些算子融合为一个大算子,同时减少慢速片外显存到高速的片上显存的传输次数,则可以将复杂度从平方降低到线性,让推理效率大幅提升,这是面向注意力计算的算子融合算法的核心思想。

方法 2:以虚拟内存的方式管理显存,减少显存碎片,提升显存使用效率

传统的推理方案中,系统由于无法精确估算每个生成的序列需要多少显存,非常简单粗暴的按配额为每个序列预分配一大段存储空间,这种做法一方面造成大量的显存空间浪费,另一方面也限制了并发处理序列的最大数量。因此,我们在推理过程中借鉴操作系统的“虚拟内存”概念,实现了动态显存管理技术,把逻辑和物理内存分开,用一个指针的方式去映射。

当处理多个序列时,这种方式能更灵活地利用显存碎片,让显存使用得更高效。这就像是把一堆小碎片重新组合起来,变成有用的东西一样。总的来说,这些技术都是为了让 AI 模型运行得更快、更高效。

方法 3:Continuous Batching,减少无效显存占用,提高显存利用率

当我们进行模型训练时,我们通常会分配一个固定的内存区域给模型。但问题是,用户输入的数据长度可能各不相同。有些人可能只输入几个字,而有些人可能会输入一大段文字。如果我们不进行优化,那么当较短的输入完成后,剩余的内存空间就会被浪费掉。

了解决这个问题,我们采用了“Continuous Batching”方案。简单来说,就是当一个输入序列结束后,我们不会让剩余的内存空间闲置,而是会接着填充下一个输入序列的数据。这样一来,内存的使用就更加高效了。但这个方法也有个缺点,那就是在处理序列对齐时可能会增加一些额外的开销。所以,是否使用这个方法,还需要根据具体的应用场景来决定。

与此同时,我们创新了“共享 Context”概念,用以减少计算量和显存开销减少计算量和显存开销。在实际应用中,很多时候用户会使用相同的提示词或问题来咨询。

为了避免重复存储这些相同的内容,我们可以将它们放在共享内存中。这样,当有多个用户使用相同的提示词时,我们就可以直接从共享内存中读取,而不需要重复加载,从而节省了内存和计算资源。

以上这些方法都属于基础的推理加速技术,它们的特点是不会对模型本身造成任何损害。但仅仅依靠这些无损的优化方法,我们可能无法达到理想的加速效果。所以,在实际应用中,我们还需要结合其他更高级的技术来进一步提升推理速度。

有损优化系列

我们在提升推理速度时,真正的挑战并不在之前提到的无损优化上,而是在接下来要讲的有损优化上。那么,什么是有损优化呢?

所谓有损优化是针对模型的结构特点,对模型进行压缩,通过小型化减少推理过程中的计算负载和数据传输量,进而提高推理效率。模型压缩可能会导致轻微的精度损失,但这些损失是可控且可接受的,带来的推理效率提升非常显著,本质是用少量的精度损失换取更大的推理加速

方法 1:量化

首先,我们要理解 AI 模型中的浮点数。在 AI 模型中,浮点数是由符号位、指数位和小数位组成的。我们经常听到的 FP32、FP16、FP8,其实就是在这些位数上做了不同的取舍。这些浮点数的位数越来越少,其实是 AI 硬件发展的一个趋势。

下面这个图展示的是英伟达最近几代 GPU 的架构,从 Ampere 架构到今天的 Hoper/Ada Lovelace 和 Blackwell 架构,你可以看到它们的浮点运算能力在逐渐增强,从 FP16->FP8->FP6/FP4,为什么要这么做呢?其实,这就是在进行能够更好地做量化。

量化就是将模型本身浮点数类型(FP16)转换成整数(INT8/INT4等)或者更低位数类(FP8 等)的方法,从而提高计算速度。

我们经常听到的 INT8 量化就是这样一种技术。但是,INT8 量化的一个问题在于,它不能对所有的内容都进行量化。对于一些复杂的操作,如 SoftMax 操作,可能需要先还原到 FP16 或 FP32 再进行计算。

传统的显卡,包括一些国产显卡,在量化时主要使用 INT8,并结合反复的量化和反量化来达到最终的效果。但是,INT8 有一个问题,就是当有大量接近于零的数据时,它们可能会被直接清零,导致精度损失。

而 FP8 则不同。即使在数据接近于零的情况下,FP8 也能很好地保持精度,不会出现直接清零的情况。这就是为什么现在的 4090 显卡以及 A100 等显卡会成为大家的主力选择。它们能够更好地支持 FP8 等低位数的浮点数运算,从而在保持精度的同时,提高计算速度。

现在 A100 和 B100 等高性能计算平台之所以成为大家的主力,主要是因为它们支持全内容量化,特别是 FP8 全链路量化。这种量化方式能在保持精度损失在可接受的 1% - 2% 范围内,显著提升计算速度,有时甚至能达到 4 倍以上的加速效果。这种优化对于需要高效推理的 AI 应用来说,是极具吸引力的。

方法 2:稀疏化的硬件优化

除了全链路量化,稀疏化也是另一种重要的优化技术。对 Transformer 来说,其注意力层的精确计算导致了序列长度二次的运算和内存复杂性,稀疏化可以理解为将矩阵中接近于零的值直接置为零,从而降低计算量。

其中,有一种叫做 HyperAttention 的方法,寻找对角矩阵 D , 一个矮胖矩阵 S, 将有价值的数据集中在斜对角线上,从而通过稀疏化计算实现约等于序列长度一次的运算和内存复杂性。

除了 HyperAttention 这种 attention 的近似方法之外,激活稀疏和 KV 缓存稀疏也是非常有效的优化方法,通过激活稀疏的预测方法,可以将热的神经元放入 GPU,冷的神经元放入 CPU,再通过实时预测的方法,动态计算当前输入对应的热神经元,不计算当前输入的冷神经元,从而大大降低神经元的计算量。

KV 缓存存储的是历史 token 列表,大模型的推理当中,实际只有少部分的热 token 对最终的输出起到决定作用,KV 缓存稀疏正是基于这门一种策略,通过计算不同 token 的累积贡献度,删除掉贡献度最低的 token,从而降低 KV 的输入长度,最终达到加速的目的。

在有限长度的 KV Cache 中,驱逐与 Query 相关度低的 KV 值。永久保留 KV Cache 中靠前的 KV 值,  Decoding 时用较少的 KV 实现较长 KV 的效果。

总的来说,这些推理加速方案为我们提供了更多的选择和可能性,让我们能够根据不同的应用场景和需求来定制最优的 AI 计算解决方案。

但这些原理听起来简单,但在实际应用中却需要针对每个模型进行细致的分析和优化。因为不同的模型对优化的敏感度和需求是不同的。而且,在进行有损优化后,还需要通过评测工具来评估精度损失和性能提升之间的平衡。只有当精度损失在可接受的范围内,且性能提升显著时,这样的优化方案才是有效的。

开发者正在迎接新一轮的技术浪潮变革。由 CSDN 和高端 IT 咨询和教育平台 Boolan 联合主办的 2024 年度「全球软件研发技术大会」秉承干货实料(案例)的内容原则,将于 7 月 4 日-5 日在北京正式举办。大会共设置了 12 个大会主题:大模型智能应用开发、软件开发智能化、AI 与 ML 智能运维、云原生架构……详情👉:http://sdcon.com.cn/

市场消息:在竞争对手英国石油公司(BP)股价暴跌之际,壳牌(SHELL)正在评估与 BP 进行交易的益处。

【壳牌研究收购英国石油公司的可行性】知情人士表示,最近几周,壳牌与顾问们更深入地讨论了收购英国石油公司的可行性和益处,最终决定很可能取决于英国石油公司的股价是否会继续下滑。由于其转型计划未能赢得投资者的青睐,加上油价暴跌,英国石油公司的股价在过去 12 个月里已下跌近三分之一。部分知情人士表示,壳牌公司可能还会等待英国石油公司主动联系,或者其他潜在收购方率先行动,而目前的工作可以帮助其为这种情况做好准备。他们还表示,相关商讨仍处于初期阶段,壳牌公司可能会选择专注于股票回购和小规模收购,而非大规模并购。知情人士称,其他大型能源公司也在分析是否要竞购英国石油公司。

【以军将大规模征召预备役部队 准备扩大加沙军事行动】以色列国防军当地时间5月3日晚发表声明称,将向数万名预备役人员发出新一轮征召令,为即将扩大在加沙地带的军事行动做准备。以军人士透露,目前尚不清楚本轮预备役服役期限,但“可能持续较长时间”。大部分被召回的人员将接替部署在以色列北部和约旦河西岸的现役部队,从而释放常规作战力量,加强对加沙的地面攻势。(央视新闻)

市场消息:在竞争对手英国石油公司(BP)股价暴跌之际,壳牌(SHELL)正在评估与 BP 进行交易的益处。

【壳牌研究收购英国石油公司的可行性】知情人士表示,最近几周,壳牌与顾问们更深入地讨论了收购英国石油公司的可行性和益处,最终决定很可能取决于英国石油公司的股价是否会继续下滑。由于其转型计划未能赢得投资者的青睐,加上油价暴跌,英国石油公司的股价在过去 12 个月里已下跌近三分之一。部分知情人士表示,壳牌公司可能还会等待英国石油公司主动联系,或者其他潜在收购方率先行动,而目前的工作可以帮助其为这种情况做好准备。他们还表示,相关商讨仍处于初期阶段,壳牌公司可能会选择专注于股票回购和小规模收购,而非大规模并购。知情人士称,其他大型能源公司也在分析是否要竞购英国石油公司。

请输入评论内容

举报成功

举报

请您选择举报的原因

说说你的看法

意见/建议 反馈入口
  • TOKEN
  • 标题/昵称
  • 反馈内容

已反馈成功~