LLM “经济学”:ChatGPT 与开源模型,二者之间有哪些优劣权衡?谁的部署成本更低?
太长不看版:对于日均请求在 1000 次左右的低频使用场景,ChatGPT 的实现成本低于部署在 AWS 上的开源大模型。但面对每天数以百万计的请求,在 AWS 上部署开源模型则成本更低。(结论适用于 2023 年 4 月 24 日本文撰稿时。)
用图表比较不同大语言模型间的实现成本
大语言模型正席卷全球。随着 2017 年 Transformers 的推出,BERT、GPT 和 BART 等突破性模型开始陆续亮相,凭借亿级参数在情感分析、问答、分类等语言任务当中带来了前所未见的强大能力。
几年之前,OpenAI 和谷歌的研究人员曾经整理出多篇论文,表明拥有超百亿参数的大语言模型出现了“涌现”能力。简言之,它们似乎能够理解语言中种种复杂微妙之处,并获得了与人类相似的情境反应。
GPT-3 论文称,大语言模型拥有令人印象深刻的学习能力。
GPT-3 论文提到,参数在 10 亿至 1000 亿级别的模型只需几十个提示词,即可展示出令人印象深刻的学习能力。
然而,这些大模型也极耗资源,导致在经济意义上难以实现规模化部署。但这一切随着 ChatGPT 的到来而宣告终结。
就在 ChatGPT 发布后不久,OpenAI 又开放了 ChatGPT API,允许开发人员在自己的应用程序中接入 ChatGPT。
现在大模型的规模成本和经济可行性如何,让我们一起算算这笔账:
*ChatGPT API 使用成本*
ChatGPT API 的价格随使用方式而变化。其成本为每 1000 个 token 计费 0.002 美元。每个 token 约为一个英文单词的 3/4,就是说,一条请求内的 token 数量等于提示词 + 所生成的输出 token 的总和。
假定大家每天需要处理 1000 个小文本块,每个文本块对应一页文本(即 500 个单词,约合 667 个 token),那么日均成本就是 0.002 美元 /1000×667*1000= 约 1.3 美元。听起来还可以!
但如果每天需要处理上百万份这类文档,情况又会如何呢?那计算下来就是日均 1300 美元,每年约 50 万美元!达到这个规模,ChatGPT 就从酷炫的玩具一下子成了沉重的业务运营负担!(当然,能否靠它赚到更多的钱另说。)
*开源生成式模型*
在 ChatGPT 赢得众人惊叹之后,一系列开源项目也相继问世。
Meta 发布了 LLaMA ,一个具有数十亿参数的大语言模型,且性能优于 GPT-3。斯坦福随后在 52K 指令遵循演示中对 LLaMA 的 7B 版本做了微调,最终得出的 Aplaca 模型同样胜过 GPT-3。
一组研究人员最近还展示了名为 Vicuna 的 13B 参数微调版 LLaMA 模型,其表现已达 ChatGPT 的九成功力以上。而且企业选择开源生成式模型,而不用 OpenAI 家 GPT 系列模型的理由也有很多。可能是不满于 OpenAI 的服务经常中断,可能是开源大模型更易于定制,也可能是使用成本更有优势。
虽然开源模型可以免费使用,但用于托管和部署模型的基础设施却不可能凭空得来。
BERT 这类早期 transformer 模型倒是可以在装有高配 CPU 和普通 GPU 的个人计算机上轻松运行和微调,但如今的大语言模型却需要更多资源。一种常见的解决方案,是使用 AWS 等云服务商托管和部署这类模型。
那么,免费的开源模型在 AWS 那边到底会产生多少成本?
*AWS 成本分析*
首先,我们得先明确部署模型并以 API 的形式开放服务所对应的 AWS 标准架构。这通常分为三个步骤:
\1. 使用 AWS SageMaker 将模型部署为端点。
\2. 将这个 SageMaker 端点接入 AWS Lambda。
\3. 通过 API Gateway 将此 Lambda 函数开放为 API。
使用 API Gateway 加 Lambda 调用 SageMaker 模型端点。
当客户端对 API Gateway 执行 API 调用时就会触发 Lambda 函数,并在完成函数解析之后将其发送至 SageMaker 端点。之后由模型端点执行预测,把信息发送至 Lambda。Lambda 再做解析,将结果发送至 API 并最终返回至客户端。
SageMaker 的实际成本往往直接取决于用于托管模型的计算实例类型。大语言模型体量可观,自然要用到容量极大的计算实例。
各种 SageMaker 实例类型价格表。
例如,AWS 就专门发布一篇教程,介绍了如何部署一套包含 200 亿参数的 Flan UL2 模型。
文章中使用的是 ml.g5.4xlarge 实例。虽然上表的 SageMaker 定价并没有列出这个特定实例的价格,但粗略估算成本大约在每小时 5 美元左右。这就相当于每天 150 美元上下!而且这还只是托管实例的部分,我们还没算上 Lambda 和 API Gateway 的费用。
下面来看 AWS Lambda 部分的成本,它的价格由内存用量和请求频率决定。
AWS Lambda 价目表。
假定 5 秒之内向用户返回响应即可,那么考虑到将数据路由至 AWS SageMaker 端点的需求,128 MB 内存就够了。这样对于每 1000 条请求,成本为 5*.12810000.0000166667 美元 = 0.01 美元。如果按 100 万条请求计算,则费用为 10 美元。
最后是 API Gateway 部分的成本:
AWS API Gateway 价目表。
如大家所见,API Gateway 倒是非常便宜,每百万条请求只需 1 美元。
也就是说,在 AWS 上托管像 Flan-UL2 这样的开源大模型,每天 1000 请求时的成本为 150 美元,每天 150 万请求则为 160 美元。
但我们有必要选择这么昂贵的计算实例吗?对于像 BERT 这样亿级参数的小语言模型,选择 ml.m5.xlarge 这类更便宜的实例就足够了,其每小时成本仅为 0.23 美元,全天只合约 5 美元。与所谓能够理解语言中细微差别的大模型相比,这些小模型也已经相当强大,还能针对特定任务和训练数据进行微调。
*写在最后*
那么,到底是商用大模型好还是开源大模型好?OpenAI 的 GPT 家族到底有没有性价比?最终答案还是要看大家的实际需求:
付费服务模型的优势和短板。
开源大模型的优势和短板
注意:因为这个领域仍在快速发展,所以在规模化需求的推动之下,大语言模型的部署成本很可能会快速下降。而且虽然开源大模型的托管比较复杂,但像 BERT 这类亿级参数的小语言模型在特定任务上仍是个很好的选择。
从性能上看,ChatGPT 和 GPT-4 的响应质量确实比开源大模型强一些。但开源模型阵营也在迎头赶上,所以我们将有越来越坚定的理由选择这一派。
首先,企业希望根据特定数据源对开源模型做微调。在经过针对性微调之后,开源模型的性能往往会反超专为通用场景打造的 ChatGPT 及其他 OpenAI 后续模型。事实证明,BloombergGPT 等领域特定模型已经成为生成式 AI 世界中一股不容忽视的重要力量。
最后,希望 OpenAI 不会进一步提高 ChatGPT API 的价格。毕竟跟早期的 GPT-3 API 相比,ChatGPT API 在亮相之初就把价格压到了十分之一的水平,但愿 OpenAI 能继续保持住这样的优良传统。