GPT-4 现在是否已经足够划算?

我通常使用 GPT 的方式是,先用 GPT-4 来快速搭建一个原型,然后不断优化,直到解决方案能够在 GPT-3.5 模型上运行。

这个方法在我的实践中非常高效,它的一个重要好处是能迅速筛选出那些“行不通”的项目——如果你在几天内都无法使项目在 GPT-4 的基础上运行起来,那么这个项目可能就不值得进一步深入。

实际上,这就是我在 2023 年全年向合作公司推荐的工作流程。GPT-4 有一些问题,使得将其应用于实际生产环境并不理想。

我对 GPT-4 的具体担忧包括:

  1. 直到几个月前,OpenAI 本身还表示 GPT-4 尚未准备好投入生产使用。他们的官方建议是将其用于原型设计阶段。
  2. 长期以来,GPT-4 的请求速率限制非常严格。以前,它的上限仅为每分钟 200 个请求,而现在已经提升至每分钟 10,000 个。
  3. GPT-4 一直比 GPT-3.5 慢。我在 6 月对模型进行的基准测试显示,GPT-4 相比 GPT-3.5 的令牌间延迟高出 3 倍。
  4. 在历史上,GPT-4 的成本远高于 GPT-3.5。例如,2023 年 3 月,对于一个平均应用来说,GPT-3.5 的成本仅为 GPT-4 的五分之一。

自 2023 年 3 月起,这些因素都发生了显著的变化。请求速率限制、性能和定价都有了大幅提升,主流的 GPT-4 模型现已非常适用于生产环境——尽管 GPT-4 Turbo 还未达到这一水平。

GPT 价格历史

回顾一下,GPT 模型的成本如何随时间变化:

模型每千个输入 Token 的价格每千个输出 Token 的价格
gpt-4-1106-preview0.0100 美元0.0300 美元
gpt-4-06130.0300 美元0.0600 美元
gpt-4-03140.0300 美元0.0600 美元
gpt-3.5-turbo-11060.0010 美元0.0020 美元
gpt-3.5-turbo-16k-06130.0030 美元0.0040 美元
gpt-3.5-turbo-06130.0015 美元0.0020 美元
gpt-3.5-turbo-03010.0020 美元0.0020 美元

跨不同模型进行成本比较需要考虑两个维度的定价因素:你预计的 Token 使用总量和输入输出 Token 的比例。

第一个指标很直观:你的 OpenAI 账单会随着使用量的增加而线性上升。而第二个指标则涉及不同应用场景下的成本差异。以 11 月的模型为例,GPT-4 Turbo 的输出 Token 成本是输入 Token 的三倍,而 GPT-3.5 Turbo 的输出 Token 则是输入 Token 的两倍。

这意味着,对于输出 Token 使用量大的应用来说,GPT-4 Turbo 相较于 GPT-3.5 Turbo 会更加昂贵。相比之下,输入 Token 使用较多的应用会发现成本差异较小。

现实世界中的输入与输出比例

当 Sam Altman 宣布 GPT-4 Turbo 相较于七月的 GPT-4 模型降价时,他提到平均 API 用户的成本将减少约 2.75 倍。根据这个数据反推,我们可以得出平均输入与输出的 Token 比例大约为 9:1。

这个比例只是一个大致的平均值。OpenAI 有众多客户,他们的工作内容各不相同。在规划你的业务时,依赖这个 9:1 的比例可能不太可靠,因为实际的比例可能会有很大的差异。

以 Crimson Education 的产品为例,我观察到的输入与输出比例从 22.5:1 到 2.6:1 不等,这取决于具体功能。我个人观察到的最大比例是 22.5:1,但在其他情况下,我也看到过低至 1.47:1 的比例。

在开发和生产过程中实际测量和跟踪输入与输出 Token 的比例是极其重要的。因为现实世界中的比例变化极大,所以很难给出一个普适的标准比例。

如果我们只考虑成本而忽略模型的性能,那么具有 22.5:1 Token 比例的功能与 GPT-4 Turbo 非常匹配,因为我们可以通过这种方式最小化相对较高的输出 Token 成本。

价格比较

基于这些考量,这里是 11 月 GPT-4 Turbo 模型(gpt-4-1106-preview)在不同输入:输出比率下相对成本的详细分析。表中的“相对价格”一栏显示了 GPT-4 Turbo 相对于其他模型的额外成本;例如,在 9:1 输入:输出 Token 比率下,使用 GPT-4 Turbo 的综合成本是使用 11 月 GPT-3.5 Turbo 模型的成本的 10.91 倍。

输入:输出比率模型相对价格
1.47:1gpt-3.5-turbo-110612.88
gpt-3.5-turbo-061310.63
gpt-4-06130.43
9:1gpt-3.5-turbo-110610.91
gpt-3.5-turbo-06137.74
gpt-4-06130.36
22.5:1gpt-3.5-turbo-110610.41
gpt-3.5-turbo-06137.13
gpt-4-06130.35

明确地说,7 月 GPT-4 模型的成本是同期 GPT-3.5 模型的 20 倍,但性能仅为三分之一,这对我来说是难以接受的。我并不认为它适合投入实际应用,因为几乎在所有场合,只要适当地使用提示,GPT-3.5 Turbo 就能够达到与 GPT-4 相似的效果。这种在价格和性能上的巨大差异令人震惊。

但最新的模型变化大大改变了这一判断。

当我们将 GPT-4 Turbo 与 7 月份的模型相比较时,我发现差距已经显著缩小了。到目前为止,我一直很高兴地在这些模型上进行工作。在成本上,GPT-4 Turbo 是 7.13 至 10.63 倍于 7 月份的 GPT-3.5 Turbo 模型,但在每个 Token 之间的响应时间上,它仅比 GPT-3.5 Turbo 模型慢 26.2%。

如果你必须在 GPT-4 Turbo 和上一代 GPT-3.5 Turbo 模型中做出选择,那么 GPT-4 Turbo 无疑是更明智的选择。在大多数情况下,除非你需要的输出可以通过一个简单的提示就得到,否则 GPT-4 Turbo 在成本和性能上几乎总是更胜一筹。

当然,我们实际上并不需要在这两个模型之间做出选择,因为还有新推出的 GPT-3.5 Turbo 模型可以考虑。这个新模型的成本比 GPT-4 Turbo 高出 10.41 至 12.88 倍,但在性能方面,GPT-4 Turbo 的响应时间大约只有 GPT-3.5 Turbo 的一半。

只考虑当前这一代的模型时,选择就变得不那么明显了。

案例研究:文档审查

我们在 Crimson 最近推出了一个新功能,能够根据特定的评分标准来评估输入的文档。尽管 GPT-4 Turbo(GPT-4 Turbo)有能力单次提示下完成文档评分,但从经济和可扩展性角度考虑,我们选择使用 GPT-3.5 Turbo(GPT-3.5 Turbo)。

文档审查功能的屏幕截图。所审查的文档质量高,分数也反映了这一点。

文档审查功能的屏幕截图。所审查的文档质量高,分数也反映了这一点。

展示我们新的文档审查功能如何工作

对于这种文档审查应用,绕过较小型号 GPT-3.5 Turbo 的局限性相对容易。我们做法是:评分标准的每个项目都有各自的评分提示,并且这些提示可以同时运行(并行处理!)。然后,这些单独的提示结果会被送到最后的提示中,用来生成反馈。

Crimson 使用 GPT-3.5 Turbo 进行文档审查的具体流程。这张图表展示了如何在各项标准评分并行完成后,汇总并整合这些评分以产生反馈。

Crimson 使用 GPT-3.5 Turbo 进行文档审查的具体流程。这张图表展示了如何在各项标准评分并行完成后,汇总并整合这些评分以产生反馈。

因此,我们的“调用栈 (call stack)”仅有两个提示深度。鉴于 GPT-4 Turbo 的处理速度仅为 GPT-3.5 Turbo 的一半,这个选择是合理的。但重要的不仅是提示的数量,更关键的是输出 Token(Token)的数量。在大多数情况下,大语言模型 (LLM) 的响应时间几乎是线性的,取决于在关键流程中生成的 Token 数量。

而且很明显,我们每个更小、更受限制的提示生成的内容要比单个大型 GPT-4 Turbo 提示的内容少。至少在并行处理的每个评分提示中,我们只需要输出一个分数,而不是像之前那样需要顺序输出所有分数,这样可以节省不少 Token。

在实际操作中,我们的关键流程输出的 Token 数量还可以进一步减少。我们采用了思维链提示 (chain-of-thought prompting) 来获得更好的效果,当模型一次只需考虑评分标准中的一个方面时,其“思维”过程可以更加简洁。

我们通常能在 6 秒左右的时间内,使用 GPT-3.5 Turbo 生成一条评价。而 GPT-4 Turbo 的生成时间通常在 17 秒左右。但仅仅比较 Token 生成速度的直接基准测试,并不能完全展现出全部情况:将 gpt-3.5-turbo-1106 升级到 gpt-4-1106-preview 时,预期的性能下降约为 2.12 倍,这只是在一个相似场景下的测量结果。

值得一提的是,我们用于 GPT-3.5 Turbo 的架构也同样适用于 GPT-4 Turbo;并非一定要在大模型的单一提示中完成所有任务。但当我们的架构在较小模型上运行良好时,就没有必要改变,这通常是长时间架构优化后的常态。

最终,我们不仅节约了相当一部分成本,还显著提升了用户体验。六秒的响应时间几乎即时,对于终端用户而言并不显得过于漫长。

至少在我们迄今为止开发的应用中,文档审查是一个相对简单的任务。你并不真正需要更大模型的高级推理能力,因为我们希望用户能够几乎实时地编辑他们的文档,因此对性能的要求非常严格。

像这种情况下的用例,GPT-3.5 Turbo 仍然非常合适。但在更复杂的问题上,我不再认为避免使用 GPT-4 Turbo 是个好主意。对于你和你的公司而言,减少提示工程的工作量,承担 GPT-4 Turbo 较高的成本,以便更频繁地发布产品,从经济角度看是更合理的。

输入与输出比率及模型的选择

我们研究了输入与输出 Token 比率在成本分析中的应用,发现它们也是选择合适模型的重要指标。直观上,输入与输出比率高的应用更适合长提示(而非简短的补全),因此 GPT-4 Turbo 特别适用于这类场景。

实际上,我有一个具体的标准:在使用 GPT-3.5 系列模型时,我从未部署过输入与输出比率达到或超过 17.5:1 的应用。所有这类比率的特性都是使用 GPT-4 Turbo 来实现的。

深入分析这种直觉,我们可以发现两个关键因素:

一次性处理大量数据变得简单。 当你处理海量数据时——即拥有大量输入 Token——使用 GPT-3.5 就意味着你需要进行多轮的排序、筛选和总结,来应对其较小的上下文限制。

虽然使用 GPT-4 Turbo 时你可能仍需进行这些处理,但它在开发过程中的便捷性是显而易见的。

在 GPT-3.5 的环境中,你必须大量减少数据量,然后才能看到最终输出的示例。而在 GPT-4 的环境中,你可以立刻得到一个输出,然后利用这个输出来智能地优化你的预处理流程。

GPT-4 Turbo 在处理“中段忽略”问题上更加高效。 语言模型常常会忽视提示中间的指令,这个问题随着提示长度的增加而加剧。GPT-4 Turbo 虽未能完全解决这一问题,但它在处理更长上下文时的性能衰减程度较之前有了显著改善。

Greg Kamradt 的测量表明,在一项简单的回忆测试中,性能一直表现出色,直到输入 Token 达到 73K。这是个相当优秀的成果!在这项基准测试中,你基本上能够处理相当于两个完整大小的gpt-4-32k上下文,然后才会遇到问题。

简而言之,如果你的输入与输出 Token 的比例非常高,那么你的应用场景很可能非常适合使用 GPT-4 Turbo,无论是从成本还是模型性能的角度看都是如此。

结论

直到现在,我都不太倾向于推荐在实际应用中使用 GPT-4 模型,但技术的进步使得这些模型的应用变得更加可行。尽管 GPT-4 Turbo 目前还处于预览阶段,但它在速率限制方面已经取得了重大改进,我预计不久后 OpenAI 将会宣布它正式适用于生产环境。

与 2022 年 7 月的 GPT-3.5 Turbo 模型相比,转换到 GPT-4 Turbo 将使成本增加约 7.74 倍,且在相同架构下性能降低 50%。

但 GPT-4 模型的真正价值在于,它们能够通过更少的提示和更简洁的架构达到良好的效果。在我的经验中,一个 GPT-4 的提示往往能完成 3-4 个 GPT-3.5 提示的工作量。考虑到这一点,GPT-4 Turbo 将适合许多应用场景的成本效益。

然而,GPT-4 并不是 GPT-3.5 的直接升级。在性能要求严格的应用场景中,或者问题足够简单,可以为 GPT-3.5 重新设计架构的情况下,投入资源进行提示优化仍然是值得的。

 原文:Is GPT-4 cost effective yet?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413477.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【现代控制系统】能控性与能观性

能控性与能观性 2023年11月25日 #controlsys 文章目录 能控性与能观性1. 能控性1.1 能控性(可控性)的引入1.2 LTI系统的可控性1.3 LTV系统的可控性 2. 能观性2.1 能观性(可观性)引入2.2 LTI系统的可观性2.3 LTV系统的可观性 3. 状…

图解渠道网关:不只是对接渠道的接口(一)

这是《百图解码支付系统设计与实现》专栏系列文章中的第(20)篇。点击上方关注,深入了解支付系统的方方面面。 主要讲清楚什么是渠道,有哪些类型的渠道,什么是渠道网关,渠道网关在支付系统中定位、核心功能…

《动手学深度学习》学习笔记 第10章 注意力机制

文章目录 本系列为《动手学深度学习》学习笔记10.1 注意力提示10.1.1 生物学中的注意力提示10.1.2 查询、键和值10.1.3 注意力的可视化 10.2 注意力汇聚:Nadaraya-Watson 核回归10.2.1 生成数据集10.2.2 平均汇聚10.2.3 非参数注意力汇聚10.2.4 带参数注意力汇聚10.…

分布式Erlang/OTP(学习笔记)(一)

Erlang分布式基础 假设你在机器A和机器B上各跑着一个Simple Cache应用的实例。要是在机器A的缓存上插人一个键/值对之后,从机器B上也可以访问,那可就好了。显然,要达到这个目的,机器A必须以某种方式将相关信息告知给机器B。传递该…

网络协议与攻击模拟_04ICMP协议与ICMP重定向

ICMP协议是网络层协议, 利用ICMP协议可以实现网络中监听服务和拒绝服务,如 ICMP重定向的攻击。 一、ICMP基本概念 1、ICMP协议 ICMP是Internet控制报文协议,用于在IP主机、路由器之间传递控制消息,控制消息指网络通不通、主机是…

SpringBoot 启动优化实践!

背景 公司 SpringBoot 项目在日常开发过程中发现服务启动过程异常缓慢,常常需要 6-7 分钟才能暴露端口,严重降低开发效率。通过 SpringBoot 的 SpringApplicationRunListener 、BeanPostProcessor 原理和源码调试等手段排查发现,在 Bean 扫描…

K8s(一)Pod资源——Pod介绍、创建Pod、Pod简单资源配额

目录 Pod概述 pod网络 pod存储 pod和容器对比 创建pod的方式 pod运行方式分类 Pod的创建 Pod的创建过程 通过kubectl run来创建pod 通过yaml文件创建,yaml文件简单写法 Pod简单操作 Pod的标签labels Pod的资源配额resource 测试 Pod概述 Kubernetes …

docker部署Jira+配置MySQL8数据库

写在前面:如果你通过docker安装Jira且启动过,然后你现在又想使用mysql数据库,需要注意 你除了停掉原有容器,还需要删除:/var/lib/docker/volumes/jiraVolume/_data下的文件,否则启动后会无法正常使用。注意…

详解Vite创建Vue3项目+vue-router+ts+vite+element-plus

前言 在之前的文章中写过“Vue3TSElementPlus的安装和使用教程【详细讲解】”,但那篇文章写的是创建vue3的项目没有使用到Vite构建工具进行创建还是使用的常规webpacket构建工具进行创建的。提到Vite和webpacket的时候我们可以简单说一下。Vite 和 Webpack 都是现代…

iOS原生应用屏幕适配完整流程

1. 已iPhone 11 布局为设计布局,其他机型已这个来适配 2.变量与控件对应关系 txtViewer: txtAccount txtpwd seg btnOk 3.适配方法实现: //iOS屏幕适配 -(vo

IO网络5.0

思维导图 使用select实现TCP客户端的并发 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <myhead.h>#define SER_PORT 8888 //服务器端口号 #define SER_IP "192.168.122.61" //服务器客户端//客户端TCP int ma…

Jumpserver中安装httpx

查看已安装的包 pip freeze # python -V # Python 2.7.5安装anyio 刚开始直接pip install httpx&#xff0c;未设置版本号&#xff0c;因已有idna2.7&#xff0c;所以出现版本不兼容的现象 anyio 3.0.0 requires idna>2.8, but you have idna 2.7 which is incompatible.…