动手点关注
干货不迷路
标题 | You don’t need hosted LLMs, do you?
作者 | Sergei Savvov
在当前LLM应用开发的热潮里,可以随处看到很多文章,比如 "微调自己 LLaMA/Falcon/其他热门LLM"、"训练自己的私人ChatGPT"、"如何创建本 地 LLM "等内容。
与此同时,却很少有人探讨为什么需要这么做。是否真的确定需要自己托管LLM ?或许OpenAI API才是最佳选择。
在本文中,作者将从成本、文本生成质量、开发速度和隐私等方面比较使用 LLM 的两种方法(基于OpenAI 调用 API 和部署自己的模型),下面的相关数据截止2023年8月,后期可能会有变化。
成本
自建
以 LLaMA-2-70B 为例进行说明。值得注意 的是,大多数公司都采用较小的型号版本,并根据任务对其进行微调。不过,这里有意选择了最大的版本,因为只有它才能与 GPT-3.5 的效果相媲美。
部署时推荐使用 8x Nvidia A100,因此需要 AWS 上的 g5.48xlarge 或 GCP 上的 a2-megagpu-16g。价格如下:
不同供应商的 LLaMA-2-70B 聊天部署成本比较
aws和gcp是目前相对主流的供应商,更多供应商报价可参看(https://cloud-gpus.com/)
此外,服务器成本中还包括以下额外费用:
- 为负责服务器设置、负载平衡和监控的 DevOps工程师的费用。
- 支付负责 模型准备、维护和微调的 ML 工程师的费用。
- 可选择一次性支付用于微调的数据集收集和注释费用。
可以估算,推理 LLaMA-2-70B 的 GCP 费用约为每月 4-6 万美元。
OpenAI API
以计算使用 OpenAI API 生成文本的成本为例,更多报价参看:https://openai.com/pricing:
使用 OpenAI API,2.5 万美元能生成多少token?
为了更好地理解价格: 假如每天 10,000 次客户查询,则成本为 (0.0015 + 0.002 美元) * 10,000 * 30 =约每天 35 美元,或每月 1000 美元。
按 5,000 个每日活跃用户计算的应用程序接口成本近似值
对于每天请求量低于10,000 次,使用率较低的情况,OpenAI API 的成本要低于使用自托管 LLM。下图对此进行了示意:
OpenAI GPT-3.5 与自托管 LLM 的示意图比较
当然,也可以使用各种技术来缩小模型大小:量化、剪枝、混合精度等。不过,这些方法都是有损的,意味着性能会有所下降。
总之,如果日活跃用户数量较少(<10,000),使用 OpenAI API 将是最佳选择。
效果
尽管目前正在积极开发开源模型,但其质量仍不如 GPT-3.5 和 GPT-4。在标准基准上两者都是如此:
GPT-3.5 在主要基准测试中领先 llama。
在不同领域的任务的表现:
6种模型在 MT-bench 上的分类得分比较
不过可以相信,在不久的将来,由于社区的积极参与和支持,将见证新模型准确性的显著提高。不过,此时此刻,如果想充分发挥 LLM 的潜力,建议使用 OpenAI API。
开发速度
应用开发到推出时间示意图比较
每个参与过应用程序开发的人都知道,编写能够在重负载条件下可靠运行的高质量代码需要花费多少时间。与使用现成的 API 相比,将开源 LLM 部署到生产中的成本和复杂性要高得多。无需担心负载平衡、资源监控、水平扩展等问题。
因此,如果想快速构建原型并测试假设,最好的解决方案就是使用 OpenAI API。
隐私
这可能是大多数公司选择使用私有化LLM 的关键因素之一。OpenAI 的 "使用条款 "提到,他们 "可能会使用 API 以外的服务内容......以帮助开发和改进我们的服务":
这意味着,发送给 ChatGPT 的任何内容都将包含在他们的训练数据中。尽管可以努力对数据进行匿名化处理,但这些数据仍会对模型的知识有所帮助。例如,Avast 发表了一篇文章,强调一旦模型使用了用户的数据进行学习,就很难删除这些数据(目前甚至是不可能的)。许多公司已经禁止员工使用 ChatGPT,其中包括三星、苹果、摩根大通等知名企业。
如果您不希望 自己的内容被 用于改进服务,可以填写本表(https://docs.google.com/forms/d/e/1FAIpQLScrnC-\_A7JFs4LbIuzevQ\_78hVERlNqqCPCt3d8XqnKOfdRdQ/viewform)声明选择 退出。
另一方面,OpenAI 声称他们不会使用通过 API 发送的数据来训练模型或改进服务。 但是,无法确定未来他们是否会改变立场。
因此,如果要处理敏感数据,最稳妥的做法就是使用自托管 LLM。
控制力
通过自托管解决方案,可以完全控制自己的应用。只需要自己团队负责系统的正常运行。如果使用外部应用程序接口,就会增加新的依赖性,从而难以控制:
- 响应时间会随着负载的变化而变化。
- 外部服务的故障可能会影响您的应用程序。
- API 配额限制可能会意外提高,一位开发人员的经历就说明了这一点。
以下是 OpenAI API 过去 90 天的正常运行时间记录。在标有绿色以外颜色的日子里,那么依赖的应用程序不可用的时间从 10 分钟到数小时不等。
OpenAI API 过去 90 天的正常运行时间
使用开源模型可以拥有更强的控制力和透明度,企业可以访问底层代码,并根据需要进行修改。对于有特定隐私、安全或合规要求的公司来说,这种定制化程度非常有价值。
总结
比较 OpenAI 和自托管 LLM 的使用情况
在这个问题上,孰优孰劣没有统一的答案:OpenAI 还是自己部署LLM?这取决于具体的需求、资源和当前事务优先级。评估性能、定制、数据隐私和合规性等因素决定了使用 LLM 的正确方法。托管模式对于隐私、可靠性或合规性来说是必要的,而 OpenAI 则证明了其在快速原型设计和假设检验方面的优势,尤其是在不需要大量个性定制需求和高负载的情况下。
总的建议是,首先使用 OpenAI 的API接口创建原型产品快速推进市场,验证产品,然后逐步根据需求情况再考虑使用私有模型替换。
此外,也可以通过构建模型调用链来混合使用。目前一些开源项目提供了多源的选择,支持本地到云端多种选择,提高了模型服务的灵活性和自主性。
阅读至此了,分享、点赞、在看三选一吧🙏