深入探索大模型的成本
大型语言模型 (LLM) 一直处于生成式 AI 革命的前沿,尤其是自 ChatGPT 出现以来。然而,它们的全部潜力尚未得到释放,而一个重大障碍是成本。将 LLM 纳入应用程序的费用范围从按需用例的几美分到在云环境中托管单个 LLM 实例的每月 20,000 美元以上。此外,微调、训练、向量搜索和扩展也会产生大量成本。
在这篇博文中,我将探讨导致 LLM 应用程序费用的因素,并将成本分解为主要组成部分。
1、分解 AI 和大模型的成本
在分析 LLM 的成本时,考虑两个主要角度很有用:可能使 LLM 更昂贵的因素和所涉及的各个成本组成部分。让我们首先概述一下这些因素。
导致 LLM 和 AI 模型更昂贵的因素:
- 模型复杂度(思考努力):这指的是你希望模型有多复杂。提高模型的智能通常需要使用更复杂的架构或更大的模型,例如从 70 亿个参数扩展到 3000 亿个参数,或者在混合专家 (MoE) 模型中同时雇用更多专家。更高的思考努力会增加计算需求和成本。显然,更智能的模型更昂贵。
- 输入大小:你发送到模型和从模型接收的令牌数量会影响处理时间和计算资源。更大的输入和输出需要更多的处理能力,从而增加成本。输入和输出越多,你支付的费用就越多。
- 媒体类型:模型处理的媒体类型(无论是文本、音频还是视频)都会影响成本。由于数据量更大、复杂性更高,处理音频和视频通常比文本需要更多的资源。
- 延迟要求:你需要多快的响应会影响成本。更低的延迟需要更多的计算资源或优化的基础设施,而维护起来可能会更加昂贵。
你如何支付运行 LLM 的费用?
通常,你会发现自己以两种主要方式之一支付生产中的 LLM 费用:
- 托管自己的基础设施:你可以构建和管理自己的基础设施来托管 LLM,无论是在本地还是在云中。例如,你可以下载像 Llama 3 这样的模型并在你的服务器上运行它。这种方法提供了控制和定制,但涉及大量的前期投资和持续的维护成本。
- 模型即服务:或者,你可以使用 AI 供应商提供的 LLM 作为服务。这些供应商通常采用按令牌付费的定价模式,你需要为发送到模型和从模型接收的每个令牌付费。对于那些不愿意处理基础设施管理的复杂性或规模较小的人而言,这种方法可能更具成本效益。
在深入研究一些流行模型的成本估算之前,让我们简要讨论一下如何训练您自己的 LLM。
我将通过介绍一些流行模型的成本估算来开始讨论 LLM 的成本,但在此之前,我想先介绍一下训练自己的 LLM。
2、创建 LLM 的成本
虽然大多数用户不会从头开始训练自己的 LLM,但有报道称,训练 BloombergGPT 等 LLM 的成本高达数百万美元,这主要是由于 GPU 成本。如今,训练 LLM 需要投资研究、获取和清理大量数据,并通过强化学习人工反馈 (RLHF) 等技术支付大量人工反馈费用。
虽然大多数将 LLM 集成到其生成式 AI 应用程序中的公司都使用由其他组织训练的模型(如 OpenAI 的 GPT-4 或 Meta 的 Llama 3),但他们间接支付了与创建这些 LLM 相关的成本。现在我们已经澄清了这一点,让我们看几个在云中托管 LLM 的成本示例。
3、在云中托管 LLM
在托管自己的模型时,如上所述,主要成本是硬件。例如,考虑在 AWS 上托管像 Llama 2 这样的开源模型。AWS 推荐的默认实例是 ml.p4d.24xlarge,标价为每小时近 38 美元(按需)。这意味着这样的部署每月至少要花费 27,360 美元(假设全天候运行),假设它不会扩大或缩小规模,并且不应用任何折扣。
此 AWS 服务的扩展和缩减可能需要注意、配置更改和优化过程;但是,此类部署的成本仍然非常高。
4、按令牌付费
托管 LLM 并支付硬件费用的另一种方法,是使用软件即服务 (SaaS) 模型并按使用的令牌(token)付费。令牌是供应商用来为其 API 调用定价的单位。不同的供应商(如 OpenAI 和 Anthropic)具有不同的标记化方法,并且它们根据它是输入令牌、输出令牌还是与模型大小相关而对每个token收取不同的价格。
例如,OpenAI 对 GPT-4 每 1,000 个输入token收取 0.03 美元,每 1,000 个输出token收取 0.06 美元,而 GPT-3.5 Turbo 每 1,000 个输入token收取 0.0015 美元,每 1,000 个输出token收取 0.002 美元。很明显,使用特殊字符或非英语语言会因标记化而导致更高的成本。如果你使用其他语言(例如希伯来语或中文),请注意成本可能会更高。
5、哪些因素会影响 LLM 调用成本?
LLM 的按token付费定价因多种因素而异,包括模型功能、使用模式和语言差异。以下是这些因素如何影响成本,并提供了流行模型的精确示例和表格:
5.1 模型选择和功能
由于性能和功能的差异,选择模型会显著影响成本。
示例:GPT-4 与 GPT-3.5 Turbo
- GPT-4:具有增强功能的高级多模态模型,8K 上下文长度(或扩展版本中的 32K),知识截止值为 2023。非常适合复杂的任务。
- GPT-3.5 Turbo:经济高效、速度更快,适用于要求不太复杂的一般应用程序。
价格比较:
- GPT-4:每 1,000 个输入token需要 0.03 美元,每 1,000 个输出token需要 0.06 美元。
- GPT-3.5 Turbo:每 1,000 个输入token需要 0.0015 美元,每 1,000 个输出token需要 0.002 美元。
对成本的影响:
处理 100 万个输入和输出token:
GPT-4:
- 输入:(1,000,000 个令牌/1,000)* 0.03 美元 = 30 美元
- 输出:(1,000,000 个令牌/1,000)* 0.06 美元 = 60 美元
- 总成本:90 美元
GPT-3.5 Turbo:
- 输入:(1,000,000 个令牌/1,000)* 0.0015 美元 = 1.50 美元
- 输出:(1,000,000 个令牌/1,000)* 0.002 美元 = 2.00 美元
- 总成本:3.50 美元
结论:GPT-4 以更高的成本提供卓越的功能,而 GPT-3.5 Turbo 为要求不高的任务提供了可负担性。
5.2 批处理 API 折扣
在不需要立即获得响应的情况下,使用批处理 API 可以将最多等待 24 小时的任务成本降低 50%。
批处理 API 定价:
示例:
使用 GPT-4o Mini 批量处理 200 万个输入和输出令牌:
- 输入:2 x $0.075 = $0.150
- 输出:2 x $0.300 = $0.600
- 总成本:$0.750
结论:批处理 API 对于非紧急、大规模任务具有成本效益。
5.3 思维过程
像 o1-preview 这样的模型可以应用思维过程进行复杂的推理,表明“代理即服务”。
o1-preview 的特点:
- 增强复杂任务的推理能力。
- 内部推理令牌包含在输出令牌计数中。
定价:
示例:
使用 o1-mini 处理 500,000 个输入和输出令牌:
- 输入:0.5 x $3.00 = $1.50
- 输出:0.5 x $12.00 = $6.00
- 总成本:$7.50
结论:虽然价格更高,但 o1 模型可以有效解决复杂问题,从而减少对多个更简单模型调用的需求。
5.4 媒体类型处理
由于计算需求不同,处理不同的媒体类型(文本、图像、音频)会影响定价。
使用 DALL·E 模型生成图像:
示例:
以 1024×1024 分辨率生成 50 张图像:
- DALL·E 3:50 x $0.040 = $2.00
- DALL·E 2:50 x $0.020 = $1.00
结论:更高质量的图像成本更高;根据质量需求和预算进行选择。
虽然我们已经介绍了 API 定价的差异,但这仍然没有解决 LLM 在生产中的真实成本。让我们深入探讨 AI 的真实成本。
6、LLM 应用程序的隐性成本
GPT-For-Work 开发了一个用于 AI 和 LLM 产品的跨平台定价计算器。我用它来估算处理 100 万个请求的 AI 应用程序的成本,并立即面临一个问题:在这种情况下将发送多少个令牌?答案很复杂,因为这个数字受到几个隐藏和未知因素的影响:
- 可变的输入和输出大小:用户输入和生成的输出的大小可能会有很大差异,从而影响使用的令牌数量。
- 隐藏的提示成本:应用程序提示存在隐藏成本。系统提示和说明可以为每个请求添加大量令牌。
- 后台 API 调用:利用代理库通常会在后台对 LLM 产生额外的 API 调用,以便实现 ReAct 等框架或汇总缓冲区的数据。
这些隐性成本通常是从原型设计阶段过渡到生产阶段时账单冲击的主要原因。因此,让这些成本变得可见至关重要。
7、向量数据库的出现
之前的大部分讨论都集中在托管 LLM 和与 LLM 的数据交换上。然而,事实证明 LLM 不仅对按需生成用例有用,而且对创建一种称为嵌入的新数据存储格式也很有用。这些嵌入是向量(数字数组),可以表示各种媒体类型,例如文本、图像、音频和视频。一旦数据被压缩成向量,就可以存储和索引它以用于高级搜索目的。
Weaviate 是一种领先的矢量数据库解决方案,它已经证明了以矢量形式存储和检索数据的有效性。它的特殊之处在于能够搜索概念上相似的媒体对象,例如具有相同语气或提及相同主题的电子邮件,即使没有使用完全相同的词语。
这些新数据库的成本要高得多,因为嵌入的创建和更新是通过调用 LLM 来完成的。此外,搜索数据库需要更先进、更昂贵的技术。
8、如何控制 LLM 的成本?
在探索了影响在生产中部署大型 LLM 和 AI 的成本的组件和因素(尤其是底层基础设施)之后,我们现在可以将注意力转向降低成本的策略。
一种有效的方法是优化硬件性能。通过选择更快或更先进的 GPU,您可以显着提高推理速度,但这通常会带来更高的成本。很明显,LLM 中的主要平衡是在性能和成本之间;它涉及速度、成本和准确性之间的权衡。虽然供应商提供硬件和算法方面的改进可能会降低一些成本,但你可以采用哪些技术来从现有基础设施中榨取更高的性能?
8.1 选择 LLM 的大小
LLM 的大小对其性能和成本起着至关重要的作用。较大的 LLM 通常提供更高的准确性,但由于资源需求增加,成本也会更高。例如,从 GPT-3.5 Turbo 升级到 GPT-4 可以提供更准确的结果,但也会产生更高的费用。这个决定需要仔细考虑准确性和成本之间的平衡。
下图按大小排序,说明了各种提示工程技术对不同 LLM 中 LLM 应用程序准确性的影响。虽然通过有效的提示工程可以实现不同的 LLM 之间的性能差异甚至重叠,但 LLM 的大小在确定准确性方面起着关键作用。这意味着更高的成本(因为更大的 LLM 更昂贵)与更高的准确性相关。
这张表列出了截至 2023 年 8 月 OpenAI 提供的各种 GPT 模型的定价。它说明了潜在费用的巨大差异。在本文后面,我们将讨论确保你为你的用例和预算选择最合适的 LLM 的策略。
8.2 量化 LLM
量化 LLM 是一种降低模型权重精度的技术,可提高速度和资源利用率方面的性能,但代价是准确度略有降低。这种方法在管理成本方面特别有效,同时仍能为许多应用程序保持可接受的性能。通过量化你的 LLM,你可以在性能和准确性之间实现更具成本效益的平衡。
量化模型可显着减小其大小,从而降低托管 LLM 的成本并改善延迟。但以什么准确性为代价呢?对于选定的基准,尽管尺寸小了近 50%,但量化后的 Llama2-13B 显示出比 Llama2-7B 更好的结果。请继续阅读 Miguel Neves 的文章。
8.3 微调 LLM
针对特定任务微调 LLM 可以显著提高性能。如果你的 LLM 需要用于特定功能,那么一次性投资微调可以提高其执行该任务的效率。这种方法可以根据你的特定需求定制模型的功能,从而更有效地利用资源,从长远来看可以降低总体成本。
8.4 构建更好的提示
系统提示是 LLM 应用程序中用于向模型提供指令的模板,此外还可以注入特定数据(如用户提示)。制作更好的系统提示可以大大提高 LLM 的准确性并减少幻觉的情况。诸如“思维链”提示之类的技术可以通过引导模型通过更合乎逻辑的生成响应过程来最大限度地减少错误。但是,这种方法可能会增加发送到模型的数据量,从而增加成本并可能影响性能。优化提示设计是管理成本、准确性和效率之间权衡的关键方面。
为了提供视角,请考虑 GitHub Copilot 的“泄露”提示,该应用程序可帮助开发人员自动完成代码。虽然未经证实,但报告的提示包含 487 个令牌,在引入任何用户特定的上下文之前会产生大量的开箱即用成本。
5、使用分析方法
虽然关于如何使用这些技术存在直觉和理论,但在优化 LLM 系统时,通常很难提前预测哪种方法更有效。因此,一个实用的解决方案是采用一种分析方法,让你可以跟踪不同的场景并根据你的数据进行测试。
TensorOps 的开源平台 LLMstudio 等工具正是为此而生。它使你能够针对任何供应商的各种 LLM 测试不同的提示,并记录请求和响应的历史记录以供以后评估。此外,它还跟踪与成本和延迟相关的关键指标,使你能够就 LLM 部署优化做出数据驱动的决策。
原文链接:Understanding the cost of Large Language Models (LLMs)
BimAnt翻译整理,转载请标明出处