【导读】当前,大语言模型的商业化持续进行,本文聚焦这一变革背景下的ChatGPT定价机制,深入剖析其核心技术内涵。通过细致研究ChatGPT-3.5turbo采用的Decode-Only架构,作者系统地探讨了模型在接收到输入提示并生成相应输出的过程中,如何差异化利用GPU算力资源,进而阐明了支撑该定价策略的独特技术原理。
作者|李波
责编|王启隆
出品|《新程序员》编辑部
2022年8月,美国科罗拉多州举办艺术博览会,《太空歌剧院》获得数字艺术类别冠军,此作品是游戏设计师JasonAllen使用AI绘图工具Midjourney生成;同年11月30日由OpenAI研发的一款聊天机器人程序ChatGPT发布,生成式AI(AIGC)概念开始极速式地席卷全球,逐渐深入人心,预示着一个新的AI时代。
现在回过头来看这幅《太空歌剧院》,你有什么感觉?
本文试图通过深入分析模型结构,了解成本成因,提炼ChatGPT的定价方法论,指导通用语言模型推理的基础方向,其中涉及的技术分析均以ChatGPT-3.5turbo采用的Decode-Only架构结构为基础,重点讨论宏观逻辑方向,并不做精确指向。
令人困惑的价格
ChatGPT是一个复杂的自然语言处理平台,利用先进的机器学习算法来分析和创建类似人类的文本或说话方式。它的功能非常广泛,包括文本推演、文本分类和语言翻译等。针对这类模型,合理的定价方式会是一个有意思的问题。
对此,OpenAI给出的答案非常新颖,其ChatGPT平台并没有按调用次数定价,而是对数据处理进行定价,这让人有点匪夷所思,甚至违反常识(参见图1)。更有特点的是,ChatGPT定价针对输入数据与输出数据的差异,可见其不仅在应用层面带来惊艳,定价也是与众不同。
图1ChatGPT定价表
由于ChatGPT的模型结构、部署卡数、限流策略、服务器资源的水位控制、最大的并发能力以及首token的延迟标准等影响推理系统的重要信息未被披露,我们无法计算出真实的推理成本以及他们的API毛利率。但作为世界上用户人数增长最快的应用,先拉低初次使用费用,再利用规模效应,优化算法与推理系统,以达到低成本的长尾收获,不失为一种冷启动的商业模式。只是,这种思路并没有完整的回答我内心的关于输入与输出定价不同的问题:它们之间的价格为什么是成倍的?且大多为2倍?这似乎隐约映射着某种底层逻辑。
我们先回顾一下图1中的几处关键概念:
我们再看一下通用模型的一般服务成本:
也许还有更多成本与商业定价策略未包含其中,但是以上3点会在定价策略中优先考虑,其中推理成本占比最高,尤其是其中的GPU算力成本,为了便于讨论,我们姑且将ChatGPT的定价策略都归因到算力上。
提示Token应该计费吗?又为什么更便宜?
LLM目前的主流模型为Decoder-Only类型中的CausalLM(CausalLanguageModel,因果语言模型),它的算力释放全过程如图2表示。
图2CausalLM的算力释放全过程
全流程中核心算力密度集中在Decoder-Only层,细化步骤如图3。
图3细化步骤示意图
Decoder-Block主要分2部分,Attention和FFN:
我们继续推演,窥探一下推理过程的算力分布,这里仅列出过程中的关键操作,省略计算的详细推导过程,同时忽略embedding,位置编码,logits的计算。下面先简短回顾核心公式以及计算张量的维度变化(参见图4、图5、图6、图7)。
图4Attention计算量公式
图5QK^T矩阵乘法的输入和输出形状
图6Xout输入和输出形状
图7FFN计算量公式
在embedding维度为d’的情况下,提示sqlen在第一次推理时的单一token需要的算力分布大致如下,单位为Flops(见图8):
图8算力分布公式
以上是在BatchSize=1的一次向前推理,后续的每一次推理理论上都需要相同的计算量。实际情况中,由于推理框架加速技术和KVcache的作用,实际计算量会显著下降,但推理速度并不会显著提升,这是因为还涉及到模型的计算需求与访存需求的限制或权衡。
对于访存密集型模型来说,其推理速度受限于GPU访存带宽,每种不同GPU的访存带宽不一,模型大小不一,其推理速度差别较大,这里只从宏观层面阐述一般性总结,忽略模型数据或中间结果的数据传输与访存带宽之间的关系。
Decoder-OnlyTransformer模型为访存密集型模型,其推理过程分为2个阶段,Stage1(阶段1)是Prefill,Stage2(阶段2)为Decode,Prefill由于可以通过大BatchSize计算,使得这一阶段为计算密集型,推理速度较快。
Decode为逐个token解码,采用自回归形式,期间需要在HBM和SDRAM中频繁搬运数据,导致模型进入访存密集型阶段,推理速度较慢,GPU显存分布可见图9,从上到下,访存带宽指数级减少。
图9GPU显存分布示意图
图10测试表现图其一
图11测试表现图其二
可以推断,Decode阶段增大BatchSize可以提高计算密度,对整体延迟降低有较大帮助,在此例子中如果达到256,Decode会重新回到计算密集型,整体推理延迟会显著下降,但在达到这个临界BatchSize之前,相比Prefill是数量级的缓慢。
回到我们的问题,我们很容易分辨出Prefill阶段对应API输入prompt处理,API回复对应Decode阶段的处理。由于对算力占用时长的不同,它们的定价有差异性才是正常,图1定价Prefill阶段几乎是Decode阶段的2倍,但是时长占比可能是20~200倍,似乎中间还有一个scale值;这或是因为我们只是考虑单卡单session的情况,在真实的GPU集群场景下,除了单卡加速外,TP/PP的并行计算,在集群性能的极限并发情况下,scale可能达到10~100倍。另外,由于Prefill的延迟极短,针对单token而言费用极低,从定价策略来说,可能只是象征性的,Decode阶段才是核心,内容是持续产生的,也是我们需要的。某种程度上可以理解为,API的单一定价策略,即总体成本以输出Decode阶段为主。
新势力带来的新趋势
ChatGPT的tokens价格在业内是极具竞争力的,OpenAI的AIinfra能力起到了决定性的作用,通过量化、TT、模型分布式部署、算子融合、显存管理和CPUoffload等技术,再加之商业让利,是可能达到这样的定价水平。
ChatGPT在2023年的几次降价都说明了OpenAI算法和工程化能力的快速进步,向技术拿收益确实是实打实的,不断降低模型推理成本是推动大语言模型广泛应用及实现AGI目标的关键驱动力。2024年所有的模型创新和推理加速技术创新一定会围绕高性能低成本这个目标。
基于Decoder-OnlyTransformer类似的LLM,存在计算与存储都与输入成二次方的关系,对算力、显存大小、访存带宽都有极高的要求,加上对上下文窗口的限制以及窗口内部分遗忘的问题,对LLM应用也产生了一定阻力,学术界因此也在不断发展新的模型结构,试图解决这些问题。
目前比较有创新力的新模型结构有StripedHyena和Mamba,它们突破了随着文本长度的增加,算力需求成二次方的要求,几乎可以做到算力对输入文本线性增长,并可以分段拆分输入文本,并行计算,极大提高推理速度,使得推理成本会进一步大幅降低。
另外,新的模型组合方式有MistralAI发布的Mixtral-7B×8-MoE(混合专家模型),由8个7B参数组成的网络,这种方式不仅可以提高模型处理信息的效率,提升模型性能(几乎已超越LLaMa-70B),更重要的是降低了运行成本。据官方说明,Mixtral-7B×8-MoE实际参数并非56B,而是45B。该模型中只有前馈层是各专家独有,其余参数与7B模型情况相同,各专家共享。每次推理过程,门控路由网络只会选择2个专家进行实际推理,过程中只会使用其中120亿参数,每个token会被2个模型处理。于是,MoE模型的推理速度和成本与12B参数规模的模型是一样的。当然,这暂时忽略了45B模型的部署成本,部署成本根据模型的量化程度所需要的启动GPU显存开销是不同的,比如FP16精度下,至少需要90GB的空间才能启动,这需要2张A100/800-80GB的卡,或者3张A100-40GB的卡。如果精度降到4bit,只要大于23GB就满足要求。MoE开启了用相对的低算力却可以达到需要高算力才能产生的模型精度的新范式,以独特的维度降低了大模型的服务成本。
2024年,新的模型结构与加速方式,配合新一代GPU硬件的发展,预计将对后续的模型研究产生积极的影响,并可能改写现行的计价模式——回归传统的按调用次数计费。这种转变不仅预期大幅降低使用成本,同时有利于简化计费系统架构设计及其流量控制管理等方面的操作。然而,调用次数计费模式的核心在于揭示了一个趋势:模型能力的价值在定价中的比重将显著提升(当前这一比例接近个位数);与此同时,模型推理成本在定价中的比重则会大幅下降(当前几乎占据了100%)。
随着成本逐渐走低,商业价值得到提升,应用回归商业底层逻辑,最终让大语言模型真正走进千行百业,发挥推动产业变革,企业数字化升级的新手段。
90%开发者用上了代码生成工具,第一名却不是Copilot?AI开发者生态报告出炉|新程序员