新物网

当前位置:首页 > 互联网

互联网

在游戏开发中,如何平衡 GPT-3.5 和 GPT-4 的成本与性能?

时间:2023-11-28 20:59:44 小新
声明:本文来自于微信公众号CSDN(ID:CSDNnews)),作者 | Andrew Brown译者 | 弯月 责编 | 郑 丽 媛,授权站长之家转载发布。

声明:本文来自于微信公众号CSDN(ID:CSDNnews)),作者 | Andrew Brown译者 | 弯月 责编 | 郑 丽 媛,授权站长之家转载发布。

【CSDN 编者按】在成本允许的条件下,从性能方面考虑自然优先选择 GPT-4;但考虑到游戏成本,适当“降级”到GPT-3.5似乎也在情理之中。那么,作为一名游戏开发者而言,具体要如何抉择呢?

原文链接:https://medium.com/chroma-golem/balancing-gpt-3-5-and-gpt-4-for-cost-versus-performance-in-game-dev-8397022eef59

最近,我们的游戏《You Are Not Alice》的演示版上线,很高兴看到许多人对技术演示感兴趣,并将其发送给他们的朋友。与此同时,我们看到 OpenAI 的成本上升速度远超我们的预期——这是一个重大问题,应当尽快解决。

图:演示版上线后, OpenAI 的成本迅速上升

游戏上线的头两天,OpenAI 每日的开销超过了30美元。虽然对于一些资金充裕的公司来说,这项支出完全能长期负担,但我看到了深入研究每个提示的必要性,以此来分析哪些应该继续使用 GPT-4,而哪些“降级”到 GPT-3.5也不会导致质量或性能下降。

在深入介绍最后的研究结果之前,我想先简要介绍一下游戏,以便你对背景有大致的了解。

我们的游戏

我们的游戏名为《You Are Not Alice》,主人公 Alice 是一家大公司的财务实习生。你将在游戏中扮演一名黑客,入侵 Alice 的办公电脑。通过远程访问浏览她的文件,并与她的同事交谈(伪装成Alice),可以将病毒文件(virus.exe)发送到她的文件系统,控制他们的电脑。

核心游戏循环要求你欺骗公司的其他雇员,让他们运行你的病毒文件,这样你就可以通过公司网络传播并控制更多的计算机,获取更多员工电脑的访问权限,然后再伪装成他们,感染他们的同事。

我们使用的生成式人工智能需要完成以下任务:

1. 为每个员工生成文件系统;

2. 为每个文件的内容生成文本;

3. 员工两两之间的现有对话记录;

4. 实时响应所有新消息。

GPT-3.5与 GPT-4之间的分工

刚开始的时候,所有提示都发送给了 GPT-4,但对于其中一些提示来说,很明显使用 GPT-4有点大材小用了。在意识到这一点后,我们针对每个提示分别尝试了 GPT-3.5和 GPT-4,并发现了以下规则,可在保持高质量的同时将成本最小化。

1. 每个提示使用的模型不必完全相同

这应该是最明显的结论之一,但对于使用第三方库的人来说,可配置的部分比较有限,因此可能这个结论没有那么直观。所有提示不需要统一使用 GPT-3.5或 GPT-4,你可以根据需要为每个提示选择不同的模型。

2. 对于要求完美格式的输出的提示,请使用 GPT-4

如果你需要生成 JSON、XML 或 YAML 这类机器可读的输出,则应该使用 GPT-4。虽然在大多数情况下 GPT-3.5也能确保格式正确,但我们发现它偶尔会出现一些句法错误,而根据我们的经验,GPT-4没有这个问题。

我们的游戏在生成文件系统时,会生成一个文件夹和文件的树状图,缩进用空格表示,如下所示:

对于这种格式,前导空格的数量和行前缀都会影响到能否构建正确的文件系统。我们在使用 GPT-3.5时偶尔会遇到一些句法错误(一次缩进超过1个空格,多余的空行,添加其他前缀等)。为了避免在遇到解析问题时“重新生成”,我们切换到了 GPT-4,从那以后就没有再遇到过任何句法错误。

3. 生成速度敏感的提示,请使用 GPT-4

在游戏中,当用户尝试打开文件时,我们需要快速响应。我们没有预加载文件系统上的所有文件,而是选择为每个员工生成文件系统结构,然后在玩家打开文件时生成文件的内容。

我们针对生成文件内容的提示,分别测试了在 GPT-3.5与 GPT-4的性能,结果显示 GPT-4的平均输出速度快了4~5倍。

大多数生成可以(而且通常应该)在玩家需要输出之前预加载。然而,如果你想等到用户发出动作再生成,那我建议使用 GPT-4以获得最快的响应。

4. 生成内容期间应播放动画或游戏事件

这条建议显而易见,但对于你选择使用 GPT-3.5还是 GPT-4可能会产生影响。

下面是两个例子:

(1)我们都希望尽快生成文件内容。在游戏中,我们缓存了每个文件生成花费的时间,并显示一个类似 Windows 的加载条,让玩家大致了解此次生成将花费多长时间。在添加这个动画之前,游戏看起来像是出了问题或卡住了;添加之后,玩家可以选择等待(知道大约需要多长时间)或者利用这段时间做其他事情。

(2)对话响应可以容忍较长的响应延迟,因为我们模拟了一个“真实”员工回复消息。对于这种类型的生成,游戏的聊天程序使用了带有动画的打字指示,让玩家知道消息已收到,而且还会回复。如果没有这些指示,我们可能会为了提高响应速度而感到更有压力。有了这些指示后,我们就可以慢慢提供响应了。

5. 对于上下文没有限制的生成,建议使用 GPT-3.5

这条建议很重要,如果玩家在玩游戏时可以生成越来越大的上下文窗口(例如聊天对话中的消息越来越多),而你又不想限制上下文窗口,则应该将这些提示从 GPT-4换到 GPT-3.5。

我们的游戏使用 GPT-3.5来回复所有新的对话消息。这是我们节省的最大的一笔 OpenAI 费用,一些对话的长度甚至接近 OpenAI 的上下文窗口限制(GPT-4为8K 或32K Token,而 GPT-3.5-turbo 为4K 或16K Token)。

6. 对于很短的生成,请使用Temperature 较高的GPT-3.5

为了避免偶尔的句法错误,我们将文件系统生成提示切换到了 GPT-4。但在这之前我们曾尝试使用 GPT-3.5生成文件系统,因为它可以在后台生成,而且不需要极高的质量。

然而我们发现,当结果非常短时,GPT-3.5会“照抄”系统提示中给定的输出示例。同一部门内的许多员工所拥有的文件夹相同,甚至连文件都相同,因此浏览电脑就变成了重复动作。我们发现Temperature(一个超参数,可用于控制生成语言模型中生成文本的随机性和创造性)的小幅提升(从0.7提高到0.8,甚至0.85)可在保持高质量输出的同时,提高为每个员工生成的文件夹/文件的差异性。

还有一个额外的好处,这与使用 GPT-4生成的文件内容非常契合,因为可以根据文件名(以及其他元数据,如员工姓名、职位等)生成非常逼真的内容,即使文件名本身与工作似乎毫不相关。

7. 对于所有其他情况,默认使用 GPT-3.5

对于大多数生成任务而言,GPT-3.5已经足够好了,而 GPT-4可提供更多功能,但同时成本也更高。除非你有特殊原因(速度、语法等)必须使用 GPT-4,否则我建议首先使用 GPT-3.5,并尝试Temperature、采样策略和生成惩罚。通过一些测试,通常能够以较小的成本得到很好的结果!

小贴士:为每个提示设置备用模型!

在过去的一段时间里,我们还看到有时 GPT-3.5宕机,而 GPT-4仍然保持正常运行。如果你已经配置了基础设施,并指定了每个提示使用的模型,那么只需略调整配置就可以在某些依赖性宕机时故障转移模型。

在我们的游戏中,GPT-3.5宕机会导致游戏中出现空文件系统,也会导致游戏中的角色不回复消息,这样基本上游戏就没法玩了。将这些出现故障的提示切换到 GPT-4(或切换到 GPT-3.5),可以让游戏更加稳定,并为无法玩游戏的玩家提供持续的、无缝的游戏体验。

最后的一点想法

为了确保玩家获得最佳体验,我们常常会默认选择 GPT-4,但有时这些资源可以在其他地方得到更好的利用。大幅度降低成本后,我们无需将这些成本转嫁给玩家,无需要求玩家提供自己的 API 密钥来玩游戏,也可以提供寿命更长的游戏以及无缝流畅的游戏体验