应对 AI 计算的高成本

应对 AI 计算的高成本

应对人工智能计算的高成本柏拉图区块链数据智能。垂直搜索。人工智能。
资料来源:中途

生成式 AI 热潮受计算限制。 它具有独特的属性,即增加更多的计算直接产生更好的产品。 通常,研发投资与产品的价值更直接相关,而且这种关系明显是次线性的。 但目前人工智能并非如此,因此,推动当今行业发展的一个主要因素就是培训和推理的成本。 

虽然我们不知道真实的数字,但我们从可靠的消息来源获悉,计算的供应非常有限,需求超过了它的 10 倍(!)所以我们认为现在可以公平地说, 以最低的总成本访问计算资源已成为 AI 公司成功的决定性因素.

事实上,我们已经看到许多公司将其筹集的总资本的 80% 以上用于计算资源!

在这篇文章中,我们试图分解 AI 公司的成本因素。 绝对数字当然会随着时间的推移而变化,但我们看不到 AI 公司受计算资源访问限制的立即缓解。 因此,希望这是一个有助于通过景观进行思考的框架。 

为什么 AI 模型的计算成本如此之高?

生成式 AI 模型种类繁多,推理和训练成本取决于模型的大小和类型。 幸运的是,当今最流行的模型大多是基于 transformer 的架构,其中包括流行的大型语言模型 (LLM),例如 GPT-3、GPT-J 或 BERT。 虽然 transformer 的推理和学习操作的确切数量是特定于模型的(请参阅 这张纸),有一个相当准确的经验法则,它仅取决于模型的参数数量(即神经网络的权重)以及输入和输出标记的数量。 

令牌本质上是几个字符的短序列。 它们对应于单词或单词的一部分。 获得代币直觉的最佳方法是尝试使用公开可用的在线标记器进行标记化(例如, OpenAI). 对于 GPT-3,令牌的平均长度 是4个字符

Transformer 的经验法则是模型的前向传递(即推理) p 输入和输出长度序列的参数 n 令牌 , 大约需要 2*n*p 浮点运算 (浮点数)¹。 同一模型的训练大约需要 6*p 每个令牌的 FLOPS(即,额外的向后传递需要另外四次操作²). 您可以通过将其乘以训练数据中的标记数量来估算总训练成本。

变压器的内存要求也取决于模型大小。 为了推理,我们需要 p 模型参数以适应内存。 对于学习(即反向传播),我们需要在正向和反向传递之间为每个参数存储额外的中间值。 假设我们使用 32 位浮点数,这就是每个参数额外的 8 个字节。 为了训练一个 175 亿参数的模型,我们需要在内存中保留超过 16TB 的数据——这超过了当今存在的任何 GPU,并且需要我们将模型拆分到不同的卡上。 推理和训练的内存要求可以通过使用更短的浮点值来优化,8 位变得普遍,XNUMX 位预计在不久的将来。

应对人工智能计算的高成本柏拉图区块链数据智能。垂直搜索。人工智能。

上表列出了几种流行模型的大小和计算成本。 GPT-3 有大约 175 亿个参数,对于 1,024 个令牌的输入和输出,导致大约 350 万亿次浮点运算(即 Teraflops 或 TFLOPS)的计算成本。 训练像 GPT-3 这样的模型大约需要 3.14*10^23 次浮点运算。 其他模型如 Meta 的 LLaMA 有 更高 计算要求。 训练这样的模型是人类迄今为止承担的计算量更大的任务之一。 

总结一下:AI 基础设施非常昂贵,因为底层的算法问题在计算上极其困难。 与使用 GPT-3 生成单个单词的复杂性相比,对具有一百万个条目的数据库表进行排序的算法复杂性微不足道。 这意味着您要选择能够解决您的用例的最小模型。 

好消息是,对于 transformer,我们可以很容易地估计出一个特定大小的模型将消耗多少计算和内存。 因此,选择合适的硬件成为下一个考虑因素。 

GPU 的时间和成本争论

计算复杂性如何转化为时间? 一个处理器内核通常每个周期可以执行 1-2 条指令,并且在过去的 3 年里处理器时钟速率一直稳定在 15 GHz 左右,这是由于 丹纳德缩放. 在不利用任何并行架构的情况下执行单个 GPT-3 推理操作将花费大约 350 TFLOPS/(3 GHz*1 FLOP) 或 116,000 秒,或 32 小时。 这是非常不切实际的; 相反,我们需要专门的芯片来加速这项任务。

实际上,今天所有的 AI 模型都在使用大量专用内核的卡上运行。 例如,NVIDIA A100 GPU 有 512 个“张量核心”,可以在单个周期内执行 4×4 矩阵乘法(相当于 64 次乘法和加法,或 128 FLOPS)。 AI 加速卡通常被称为 GPU(图形处理单元),因为该架构最初是为桌面游戏开发的。 在未来,我们预计 AI 将越来越成为一个独特的产品系列。 

A100 的标称性能为 312 TFLOPS 从理论上讲,这会将 GPT-3 的推理时间减少到大约 1 秒。 然而,由于多种原因,这是一个过于简化的计算。 首先,对于大多数用例,瓶颈不是 GPU 的计算能力,而是将数据从专用图形内存获取到张量核心的能力。 其次,175 亿个权重将占用 700GB,无法放入任何 GPU 的显存中。 需要使用分区和权重流等技术。 第三,有许多优化(例如,使用更短的浮点表示,如 FP16、FP8 或稀疏矩阵)用于加速计算。 但是,总的来说,上述数学让我们对当今 LLM 的总体计算成本有了直观的了解。

训练一个 transformer 模型每个标记花费的时间大约是进行推理的三倍。 然而,鉴于训练数据集比推理提示大约 300 亿倍,训练时间要长 1 亿倍。 在单个 GPU 上,训练需要数十年; 实际上,这是在专用数据中心或更有可能在云中的大型计算集群上完成的。 训练也比推理更难并行化,因为必须在节点之间交换更新的权重。 GPU 之间的内存和带宽通常成为一个更重要的因素,高速互连和专用结构很常见。 对于训练非常大的模型,创建合适的网络设置可能是主要挑战。 展望未来,AI加速器将在卡上甚至芯片上具备联网能力。 

这种计算复杂性如何转化为成本? 正如我们在上面看到的,GPT-3 推理在 A1 上花费大约 100 秒,对于 0.0002 个代币,原始计算成本在 0.0014 美元到 1,000 美元之间(相比之下,OpenAI 的定价为 0.002 美元/1000 个代币)。 每天生成 100 个推理请求的用户每年的成本约为美元。 这是一个非常低的价格点,使得大多数基于文本的人工智能用例在经济上是可行的。

产品培训 另一方面,GPT-3 要贵得多。 再次以上述速率仅计算 3.14*10^23 FLOPS 的计算成本,我们估计 A560,000 卡的计算成本为 100 美元 单次训练. 实际上,对于训练,我们不会在 GPU 中获得接近 100% 的效率; 然而,我们也可以使用优化来减少训练时间。 GPT-3 培训成本的其他估计范围为 $500,0004.6亿美元, 取决于硬件假设。 请注意,这是单次运行的成本,而不是总成本。 可能需要多次运行,云提供商将需要长期承诺(更多内容见下文)。 培训顶级模型仍然很昂贵,但在资金充足的初创企业的能力范围内。

总而言之,当今的生成式人工智能需要对人工智能基础设施进行大量投资。 没有理由相信这会在不久的将来发生改变。 训练像 GPT-3 这样的模型是人类有史以来计算量最大的任务之一。 虽然 GPU 变得越来越快,而且我们找到了优化训练的方法,但人工智能的快速扩张抵消了这两种影响。

人工智能基础设施的注意事项

至此,我们已尝试让您对进行 AI 模型训练和推理所需的规模以及驱动它们的底层参数有一些直觉。 在这种背景下,我们现在想就如何决定使用哪种 AI 基础设施提供一些实用指南。

外部与内部基础设施

让我们面对现实吧:GPU 很酷。 许多工程师和有工程头脑的创始人都倾向于配置自己的 AI 硬件,这不仅是因为它可以对模型训练进行细粒度控制,还因为利用大量计算能力会带来一些乐趣(展品A).

然而,现实是 许多初创公司——尤其是应用程序公司——不需要构建自己的 AI 基础设施 在第 1 天。取而代之的是,托管模型服务,如 OpenAI 或 Hugging Face(用于语言)和 Replicate(用于图像生成)允许创始人快速搜索产品市场契合度,而无需管理底层基础设施或模型。

这些服务变得非常好,以至于许多公司从未从中毕业。 开发人员可以通过即时工程和高阶微调抽象(即通过 API 调用微调)实现对模型性能的有意义控制。 这些服务的定价是基于消费的,因此它通常也比运行单独的基础设施便宜。 我们已经看到应用程序公司产生了超过 50 万美元的 ARR,价值超过 1 亿美元,它们在后台运行托管模型服务。

另一方面,一些初创公司——尤其是 那些训练新的基础模型或构建垂直集成的 AI 应用程序的人——无法避免直接运行自己的模型 在 GPU 上。 要么是因为模型实际上是产品并且团队正在寻找“模型-市场契合度”,要么是因为需要对训练和/或推理进行细粒度控制才能实现某些功能或大规模降低边际成本。 无论哪种方式,管理基础架构都可以成为竞争优势的来源。

云与数据中心构建

在大多数情况下,云是您的 AI 基础设施的正确位置。 对于大多数初创公司和大公司来说,较低的前期成本、扩大和缩小规模的能力、区域可用性以及减少构建自己的数据中心的注意力是很有吸引力的。

但这条规则有一些例外:

  • 如果您的运营规模非常大,那么运行自己的数据中心可能会更具成本效益。 确切的价格点因地理位置和设置而异,但通常需要每年超过 50 万美元的基础设施支出。
  • 您需要无法从云提供商处获得的非常特殊的硬件。 例如,未广泛使用的 GPU 类型,以及不寻常的内存、存储或网络要求。
  • 出于地缘政治考虑,您找不到可以接受的云。

如果您确实想构建自己的数据中心,可以针对您自己的设置对 GPU 进行全面的性价比分析(例如, Tim Dettmer 的分析). 除了卡本身的成本和性能外,硬件选择还取决于功率、空间和散热。 例如,两张 RTX 3080 Ti 卡的原始计算能力与 A100 相似,但各自的功耗分别为 700W 和 300W。 在三年的生命周期内,以 3,500 美元/千瓦时的市场价格计算的 0.10 kWh 功率差异使 RTX3080 Ti 的成本增加了近 2 倍(约 1,000 美元)。

综上所述,我们预计绝大多数初创公司都会使用云计算。 

比较云服务提供商 

Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud Platform (GCP) 都提供 GPU 实例,但新的提供商似乎也特别关注 AI 工作负载。 这是我们看到许多创始人用来选择云提供商的框架:

价格: 下表显示了截至 7 年 2023 月 XNUMX 日一些主要和较小的专业云的定价。该数据仅供参考,因为实例在网络带宽、数据出口成本、CPU 和网络的额外成本、可用折扣和其他因素。

应对人工智能计算的高成本柏拉图区块链数据智能。垂直搜索。人工智能。

特定硬件的计算能力是一种商品。 天真地,我们会期待相当统一的价格,但事实并非如此。 虽然云之间存在显着的功能差异,但它们不足以解释按需 NVIDIA A100 的定价在供应商之间相差近 4 倍。

在价格范围的顶端,大型公共云根据品牌声誉、经过验证的可靠性以及管理各种工作负载的需要收取溢价。 较小的专业 AI 提供商通过运行专用数据中心(例如 Coreweave)或套利其他云(例如 Lambda Labs)来提供较低的价格。

实际上,大多数较大的买家直接与云提供商协商价格,通常会承诺一些最低支出要求以及最短时间承诺(我们已经看到 1-3 年)。 经过谈判,云之间的价格差异有所缩小,但我们看到上表中的排名保持相对稳定。 同样重要的是要注意,较小的公司可以从专业云中获得积极的定价,而无需大量支出承诺。

库存: 在过去的 100 个多月里,最强大的 GPU(例如 Nvidia A12s)一直供不应求。 

鉴于前三大云提供商拥有强大的购买力和资源池,因此认为它们具有最佳可用性是合乎逻辑的。 但是,有些令人惊讶的是,许多初创公司并没有发现这是真的。 大云拥有大量硬件,但也有大量客户需要满足——例如,Azure 是 ChatGPT 的主要主机——并且不断增加/租赁容量以满足需求。 与此同时,Nvidia 致力于在整个行业广泛提供硬件,包括为新的专业供应商分配资源。 (他们这样做既是为了公平,也是为了减少对少数与他们竞争的大客户的依赖。)

结果,许多初创公司在较小的云提供商处找到了更多可用的芯片,包括尖端的 Nvidia H100。 如果您愿意与较新的基础设施公司合作,您可能能够减少硬件的等待时间并可能在此过程中节省资金。

计算交付模型: 今天的大型云只提供带有专用 GPU 的实例,原因是 GPU 虚拟化仍然是一个未解决的问题。 专门的 AI 云提供其他模型,例如容器或批处理作业,它们可以处理单个任务,而不会产生实例的启动和拆卸成本。 如果您对这种模式感到满意,它可以大大降低成本。

网络互连: 具体来说,对于培训,网络带宽是选择供应商的一个主要因素。 需要在节点之间具有专用结构的集群(例如 NVLink)来训练某些大型模型。 对于图像生成,出口流量费用也可能是主要的成本驱动因素。

客户支持: 大型云提供商为数以千计的产品 SKU 中的大量客户提供服务。 除非您是大客户,否则很难引起客户支持的注意或解决问题。 另一方面,许多专门的 AI 云甚至为小客户提供快速响应的支持。 这部分是因为它们的运营规模较小,但也因为它们的工作负载更加同质——因此它们更有动力专注于 AI 特定的功能和错误。

比较 GPU 

在其他条件相同的情况下,高端 GPU 将在几乎所有工作负载上表现最佳。 但是,正如您在下表中所见,最好的硬件也贵得多。 为您的特定应用程序选择正确类型的 GPU 可以显着降低成本,并可能在可行和不可行的商业模式之间产生差异。

应对人工智能计算的高成本柏拉图区块链数据智能。垂直搜索。人工智能。

决定在列表中走多远——也就是说,为您的应用程序确定最具成本效益的 GPU 选择——主要是一个技术决策,超出了本文的范围。 但我们将在下面分享一些我们认为最重要的选择标准:

训练与推理: 正如我们在上面第一节中看到的,训练一个 Transformer 模型除了模型权重之外,还需要我们存储 8 个字节的训练数据。 这意味着具有 12GB 内存的典型高端消费类 GPU 几乎无法用于训练 4 亿参数的模型。 实际上,训练大型模型是在机器集群上完成的,每台服务器最好有许多 GPU、大量 VRAM 和服务器之间的高带宽连接(即,使用高端数据中心 GPU 构建的集群)。

具体来说,许多型号在 NVIDIA H100 上的性价比最高,但目前很难找到,通常需要一年以上的长期承诺。 NVIDIA A100 目前运行大部分模型训练; 它更容易找到,但对于大型集群,可能还需要长期承诺。

内存要求: 大型 LLM 的参数数量太多,无法容纳在任何卡片中。 它们需要分成多张卡片,并且需要类似于训练的设置。 换句话说,即使是 LLM 推理,您也可能需要 H100 或 A100。 但是较小的模型(例如,Stable Diffusion)需要更少的 VRAM。 虽然 A100 仍然很受欢迎,但我们已经看到初创公司使用 A10、A40、A4000、A5000 和 A6000,甚至是 RTX 卡。 

硬件支持: 虽然我们谈过的公司中的绝大多数工作负载都在 NVIDIA 上运行,但也有一些公司已经开始与其他供应商进行试验。 最常见的是 Google TPU,但英特尔的 Gaudi 2 似乎也受到了一些关注。 这些供应商面临的挑战是,您的模型的性能通常高度依赖于这些芯片的软件优化的可用性。 您可能必须进行 PoC 才能了解性能。

延迟要求: 通常,对延迟不太敏感的工作负载(例如,批处理数据处理或不需要交互式 UI 响应的应用程序)可以使用功能较弱的 GPU。 这可以将计算成本降低多达 3-4 倍(例如,比较 AWS 上的 A100 和 A10)。 另一方面,面向用户的应用程序通常需要高端卡片来提供引人入胜的实时用户体验。 通常需要优化模型以将成本控制在可管理的范围内。

尖尖的:生成人工智能公司经常看到需求急剧上升,因为这项技术是如此新颖和令人兴奋。 根据新产品的发布,一天之内请求量增加 10 倍或每周持续增长 50% 的情况并不少见。 在低端 GPU 上处理这些峰值通常更容易,因为更多的计算节点可能会按需提供。 如果这种流量来自参与度较低或留存率较低的用户,那么以牺牲性能为代价,以较低成本的资源为此类流量提供服务通常也是有意义的。

优化和调度模型

软件优化可以极大地影响模型的运行时间——10 倍的收益并不少见。 但是,您需要确定哪些方法对您的特定模型和系统最有效。

一些技术适用于相当广泛的模型。 使用更短的浮点表示(即 FP16 或 FP8 与原始 FP32)或量化(INT8、INT4、INT2)实现的加速通常与位数的减少成线性关系。 这有时需要修改模型,但越来越多的技术可以自动以混合或更短的精度工作。 修剪神经网络通过忽略具有低值的权重来减少权重的数量。 结合高效的稀疏矩阵乘法,这可以在现代 GPU 上实现大幅加速。 另一组优化技术解决了内存带宽瓶颈(例如,通过流模型权重)。

其他优化是高度特定于模型的。 例如,Stable Diffusion 在推理所需的 VRAM 量方面取得了重大进展。 还有一类优化是特定于硬件的。 NVIDIA 的 TensorML 包括许多优化,但只能在 NVIDIA 硬件上运行。 最后但同样重要的是,人工智能任务的调度会造成巨大的性能瓶颈或改进。 以最小化权重交换的方式将模型分配给 GPU,如果有多个 GPU 可用,则为一项任务选择最佳 GPU,以及通过提前批处理工作负载来最小化停机时间,这些都是常用技术。

最后,模型优化仍然是一门黑色艺术,我们接触过的大多数初创公司都与第三方合作,以帮助解决其中一些软件方面的问题。 通常,这些不是传统的 MLops 供应商,而是专门针对特定生成模型(例如 OctoML 或 SegMind)进行优化的公司。

人工智能基础设施成本将如何演变?

在过去的几年里,我们看到两者呈指数级增长 模型参数GPU计算能力. 目前尚不清楚这种趋势是否会持续下去。

今天,人们普遍认为参数的最佳数量与训练数据集的大小之间存在关系(参见 Deepmind 的 龙猫 在这方面做更多的工作)。 今天最好的法学硕士都接受过培训 常见的抓取 (收集了 4.5 亿个网页,约占现有所有网页的 10%)。 训练语料库还包括维基百科和一系列书籍,尽管两者都小得多(现有书籍总数估计为 只有大约100亿). 已经提出了其他想法,例如转录视频或音频内容,但这些想法的规模都不大。 目前尚不清楚我们是否可以获得比已经使用的数据大 10 倍的非合成训练数据集。

GPU 性能将继续提高,但速度也会变慢。 摩尔定律仍然完好无损,允许更多的晶体管和更多的内核,但功率和 I/O 正在成为限制因素。 此外,已经采摘了许多易于实现的优化成果。 

但是,这并不意味着我们预计对计算容量的需求不会增加。 即使模型和训练集增长放缓,AI 行业的增长和 AI 开发人员数量的增加也会推动对更多更快 GPU 的需求。 在模型的开发阶段,开发人员将 GPU 容量的很大一部分用于测试,并且这种需求与人数呈线性关系。 没有迹象表明我们今天的 GPU 短缺会在不久的将来有所缓解。

人工智能基础设施的这种持续高成本是否会创造一条护城河,使新进入者无法赶上资金雄厚的现有企业? 我们还不知道这个问题的答案。 LLM 的培训成本今天可能看起来像一条护城河,但 Alpaca 或 Stable Diffusion 等开源模型表明这些市场仍处于早期阶段并且可能会迅速变化。 随着时间的推移,新兴人工智能软件堆栈的成本结构(看我们之前的帖子) 可能开始看起来更像传统软件行业。 

最终,这将是一件好事:历史表明,这会带来充满活力的生态系统,并为创业者提供快速创新和大量机会。

感谢 Moin Nadeem 和 Shangda Xu 在写作过程中的投入和指导。


¹ 这里的直觉是,对于神经网络中的任何参数(即权重),推理操作(即前向传递)需要对每个参数执行两个浮点运算。 首先,它将神经网络的输入节点的值与参数相乘。 其次,它将求和结果添加到神经网络的输出节点。 编码器中的参数每个输入令牌使用一次,解码器中的参数每个输出令牌使用一次。 如果我们假设一个模型有 p 参数和输入输出都有长度 n 令牌, 总浮点运算是 n*p. 模型中还有许多其他操作(例如归一化、编码/解码嵌入),但相比之下执行它们所需的时间要少。 

² 学习首先需要如上所述通过变换器进行前向传递,然后是向后传递,每个参数会产生四次额外的操作来计算梯度和调整权重。 请注意,计算梯度需要保留前向传递中计算出的节点值。 对于 GPT-3, 语言模型是学习者很少 讨论培训成本。

* * *

此处表达的观点是引用的个人 AH Capital Management, LLC (“a16z”) 人员的观点,而不是 a16z 或其关联公司的观点。 此处包含的某些信息是从第三方来源获得的,包括来自 a16z 管理的基金的投资组合公司。 虽然取自被认为可靠的来源,但 a16z 并未独立验证此类信息,也不对信息的持久准确性或其对特定情况的适用性做出任何陈述。 此外,该内容可能包含第三方广告; a16z 未审查此类广告,也不认可其中包含的任何广告内容。

此内容仅供参考,不应被视为法律、商业、投资或税务建议。 您应该就这些事项咨询您自己的顾问。 对任何证券或数字资产的引用仅用于说明目的,并不构成投资建议或提供投资咨询服务的要约。 此外,本内容并非针对也不打算供任何投资者或潜在投资者使用,并且在任何情况下都不得在决定投资于 a16z 管理的任何基金时作为依据。 (投资 a16z 基金的要约仅通过私募备忘录、认购协议和任何此类基金的其他相关文件提出,并应完整阅读。)任何提及、提及或提及的投资或投资组合公司所描述的并不代表对 a16z 管理的车辆的所有投资,并且不能保证这些投资将是有利可图的,或者将来进行的其他投资将具有类似的特征或结果。 由 Andreessen Horowitz 管理的基金进行的投资清单(不包括发行人未允许 a16z 公开披露的投资以及对公开交易的数字资产的未宣布投资)可在 https://a16z.com/investments 获得/。

其中提供的图表仅供参考,在做出任何投资决定时不应依赖。 过去的表现并不预示未来的结果。 内容仅在所示日期生效。 这些材料中表达的任何预测、估计、预测、目标、前景和/或意见如有更改,恕不另行通知,并且可能与他人表达的意见不同或相反。 有关其他重要信息,请参阅 https://a16z.com/disclosures。

时间戳记:

更多来自 安德森霍洛维茨