AI 之后软件开发领域的 3 个预测 [译]
关键概括:必须采用多模型战略,新兴 AI 基础设施的发展,以及大语言模型(LLM)作为新的抽象层次。
2023 年 11 月 28 日
OpenAI 的发展历程在科技界引发了一场堪比电视剧《继承》的巨大波澜,Sam Altman 在短短大约 72 小时之内,从 CEO 的位置上跃升为微软(Microsoft)的 CEO。
我不是一名记者,但网络上有众多关于 OpenAI 这一戏剧性事件的深入报道。
我想从一个不同的角度来探讨这一事件:它对于软件工程师乃至整个行业将意味着什么。
我的思考集中在三个主要观点上。
多模型策略将变得必不可少
所谓的多模型策略,是指一个组织或应用程序采用多个模型,比如大语言模型(LLM),来实现其 AI 应用的场景。这样做的好处是,即便某个模型突然无法使用,也能有其他模型作为后备。
这与公司采用多云策略的做法颇为相似。但是,多云策略通常只在你的业务规模扩大到需要高度供应商冗余的程度时才显得有意义。对大多数公司而言,这种策略并不切实际,且难以管理。我认为,相较于多云策略,多模型策略更为关键,而且更易于实现。
与数据存储方式不同,模型未来将更容易替换。数据库储存的是具体数据,但是模型可以在相同的数据集上进行训练和微调。随着 AI 技术的进步,我相信所有模型的基础质量会趋于一致,而高端的模型质量将归属于那些拥有最独特数据集或解决合成数据生成问题的人。
这一观点得到了 OpenAI 研究员 James Betker 的支持,他在AI 模型中的“关键”是数据集一文中有深入探讨。
他指出:“模型的行为并不是由其架构、超参数或优化器的选择决定的,而是完全取决于数据集。”
因此,当我们谈论“Lambda”、“ChatGPT”、“Bard”或“Claude”时,我们实际上是在谈论它们的数据集,而不仅仅是模型本身的权重。
未来,大部分数据集将向公众开放。这意味着大多数模型将达到一个“足够好”的基本性能水平,在这个水平上,轻松地使用不同模型作为替代品是完全可行的。
这也暗示了模型本身可能*不再是竞争优势的核心*。
本地模型显得越来越重要了。拥有本地模型意味着你可以掌握自己的数据、调整过的模型和版本控制等。这样一来,类似 GPT-4 质量突然下降(这个问题在网上已经引发了热烈讨论)的情况就不再那么让人担心了。
我在此想对比一下云服务:使用像 Firebase 或 Supabase 这样的托管后端即服务,与在 EC2 这样的服务器上直接部署数据库相比,后者虽然需要更多的维护和“DevOps”工作,但同时也能提供更多的控制权。
我们是否需要专门的 AI 基础设施和工具?
随着多模型策略变得越来越重要,对于可靠的“AI 基础设施”和工具的需求也在增加。这到底意味着什么呢?即使我自己也还没有完全理解,但我已经有了一些初步的想法。
OpenAI 曾引发的担忧使得一些人和公司开始首次尝试本地模型,这些模型自从 Meta 发布 LLaMA 以来,在质量和易用性方面已经取得了巨大的进步。例如,Google Cloud 等云服务提供商已经开始提供 LLaMA 和 Claude 模型的实例。即使某个模型出现故障,依赖大语言模型 (LLM) 的程序应该仍能平稳运行,虽然可能会有一些质量上的损失。
参考:Georgi Gerganov 的文章“在 AWS 实例中使用 llama.cpp”。
为了比较不同模型在各种提示和用途上的质量,我们将需要更多的基础设施支持。为此,使用 LLM 的应用程序可能需要更加深入的遥测、日志记录以及对提示、使用等方面的备份。
这些基本上就是将普通网络应用的基本原则应用于基于 LLM 的应用程序。
我相信,我们最终会看到一些独特的 AI 基础设施布局,就像谷歌、Facebook 和亚马逊等公司在分布式系统方面发表的里程碑论文一样。
Latent Space 的文章“AI 工程师的崛起”也对此进行了很好的讨论。
再者,也许这里的“AI 基础设施”可以更具体地被称为“跨模型基础设施”。
大语言模型(LLM)其实增加了工作量,而非减少
面对大语言模型特有的挑战,比如其非确定性特性,以及构建更合适的 AI 或大语言模型基础设施的需求,意味着我们未来的软件工作量会增加,而不是减少。正是像大语言模型这样的抽象层,开辟了更多可能性,从而也带来了更多工作量。
这种变化是好是坏?这个问题我还没有答案。
以前端开发为例,每一种新的框架都在减少对 DOM 的直接操作,但这也导致了现在 Web 开发的复杂性(参见:Matt Rickard 的文章)。深入理解底层机制及如何恰当运用这些抽象层,对于成为顶尖的前端开发者至关重要(例如:Malte Ubl)。
现今,大部分软件开发工作集中在应用层,因为底层架构已被抽象化。
同理,大语言模型就像是对“真正的工作”即编码的一个抽象包装。尽管大语言模型正减少编码和样板代码的直接编写,但那些对他们使用的语言或框架、以及编写的代码有深入理解的人,可能会更有效地指导大语言模型的发展方向。
我认为,软件领域的需求只会增长。大语言模型作为一种持久存在的技术,将会催生出全新的工作领域,例如 AI 基础设施建设,同时也将推动更快的开发速度和新类型的难以察觉的复杂 bug 的出现。
您的看法如何?
欢迎在评论区分享您对这些预测或想法的看法。我很愿意进行讨论、辩论,并乐于接受不同意见。🙂