AI技术栈的分层
本文中我要讨论并分解的主要抽象概念是人工智能栈的概念。栈只是用来构建应用程序的技术组合。

人工智能领域是一个庞大而复杂的景观。马特·图克每年都会做一次机器学习、人工智能和数据(MAD)全景图,而且它总是显得越来越疯狂。查看为2024年制作的最新版本:

令人不知所措,至少可以说如此。
然而,我们可以使用抽象来帮助我们理解这个疯狂的景观。本文中我要讨论并分解的主要抽象概念是人工智能栈的概念。栈只是用来构建应用程序的技术组合。熟悉Web开发的朋友们可能知道LAMP栈:Linux、Apache、MySQL、PHP。这是WordPress背后的栈。
像LAMP这样的有趣缩写是一种很好的方式,可以帮助我们人类应对Web应用景观的复杂性。数据领域的朋友们可能听说过现代数据栈:通常是dbt、Snowflake、Fivetran和Looker(或者后现代数据栈。你知道的)。
人工智能栈与此类似,但在本文中我们会更注重概念化一些。我不会指定你在栈的每一层应该使用哪些具体技术,而是简单地命名这些层,并让你自己决定你适合哪个层级,以及你会用什么技术来实现该层级的成功。
有许多方法描述人工智能栈。我喜欢简单的方式;所以这里是以四层组织的人工智能栈,从离最终用户最远(底层)到最近(顶层):
- 基础设施层(底层): 训练和推理AI所需的原始物理硬件。例如GPU、TPU、云服务(AWS/Azure/GCP)。
- 数据层(底层): 训练机器学习模型所需的数据,以及存储所有这些数据所需的数据库。例如ImageNet、TensorFlow数据集、Postgres、MongoDB、Pinecone等。
- 模型与编排层(中间层): 这指的是实际的大语言、视觉和推理模型本身。例如GPT、Claude、Gemini或任何机器学习模型。这还包括开发者用来构建、部署和观察模型的工具。例如PyTorch/TensorFlow、Weights & Biases和LangChain。
- 应用层(顶层): 客户使用的AI驱动的应用程序。例如ChatGPT、GitHub Copilot、Notion、Grammarly。

许多公司涉足多个层级。例如,OpenAI不仅训练了GPT-4o,还创建了ChatGPT网页应用。为了帮助基础设施层,他们与微软合作,利用Azure云的按需GPU。至于数据层,他们建立了网络爬虫,以帮助收集大量的自然语言数据,供其在训练期间喂给模型,争议颇多。
1、应用层的优点
我非常同意吴恩达和许多 其他人的看法,即人工智能的应用层是值得投入的地方。
为什么会这样?让我们从基础设施层开始。除非你有数亿美元的风险投资现金可以烧掉,否则进入这一层的成本是高得令人望而却步的。尝试创建自己的云服务或制造新型GPU的技术复杂度非常高。这就是为什么亚马逊、谷歌、英伟达和微软这样的科技巨头主导这一层的原因。同样适用于基础模型层。像OpenAI和Anthropic这样的公司拥有大批博士来创新这里。此外,他们必须与科技巨头合作,为其模型的训练和托管提供资金支持。这两层也正在迅速变得商品化。这意味着一个云服务/模型与其他的一个性能相差无几。它们是可以互换的,容易被替换。它们主要竞争价格、便利性和品牌名称。
数据层很有趣。生成式人工智能的到来使得许多公司声称自己是最受欢迎的向量数据库,包括Pinecone、Weaviate和Chroma。然而,这一层的客户群比应用层小得多(开发人员的数量远少于将使用像ChatGPT这样的AI应用的人)。这个领域也很快变得商品化。将Pinecone换成Weaviate并不是一件难事,如果例如Weaviate大幅降低其托管价格,许多开发人员可能会切换到其他服务。
同样重要的是要注意数据库级别的创新。像pvector和sqlite-vec这样的项目正在将传统的数据库改造,使其能够处理向量嵌入。这是我希望贡献的一个领域。然而,盈利的路径并不明确,考虑在这里盈利感觉有点令人不安(我爱开源!)
这就带我们到了应用层。这是小公司可以取得大成就的地方。将最新的AI技术创新整合到网络应用中的能力需求旺盛,并且将继续如此。当提供人们喜爱的产品时,盈利的路径最为清晰。应用程序可以是SaaS产品,也可以是根据公司特定用例定制的应用程序。
请记住,从事基础模型层的公司一直在努力发布更好、更快、更便宜的模型。例如,如果你在你的应用中使用gpt-4o
模型,而OpenAI更新了模型,你不需要做任何事情就可以获得更新。你的应用性能得到了提升,而且无需任何操作。这类似于iPhone定期更新的方式,但更好,因为不需要安装。从API提供商那里流回的片段只是变得更优秀了。
如果你想切换到新提供商的模型,只需更改一两行代码即可开始获得改进的响应(记住,商品化)。想想DeepSeek的时刻;对OpenAI来说可能是可怕的,但对应用开发者来说却是令人兴奋的。
需要注意的是,应用层并非没有挑战。我注意到社交媒体上有很多关于SaaS饱和的担忧。让人们注册账号已经很难了,更别说让他们掏出信用卡了。感觉你需要风险投资来进行营销闪电战和另一个时髦的黑底白字营销网站。应用开发者还需要小心不要构建一些很快就会被大型模型提供商蚕食的东西。想想Perplexity最初是如何通过结合LLM的力量和搜索功能来建立名声的。当时这很新颖;如今大多数流行的聊天应用都内置了这种功能。
应用开发者面临的另一个障碍是获得领域专业知识。领域专业知识是一个花哨的说法,指了解法律、医学、汽车等专业领域。如果开发者无法接触到必要的领域专业知识,确保他们的产品真正帮助到别人,那么世界上所有的技术技能都没有太大意义。举个简单的例子,可以推测文档摘要器如何帮助一家法律公司,但如果开发者没有实际在法律行业工作过,就很难确保产品真正有用。
此外,应用开发者还需要面对市场饱和的问题。在社交媒体上可以看到很多关于SaaS饱和的讨论。让用户体验并付费使用应用已经很困难了,更不用说吸引他们注册账户了。感觉需要风险投资来进行大规模营销活动和打造又一个时髦的黑色主题网站。开发者还需要小心不要构建出很快会被大型模型提供商复制或超越的产品。比如,Perplexity最初通过结合LLM和搜索引擎功能获得了关注,当时这是一个创新之举,但现在大多数主流聊天应用都已经具备了类似的功能。
2、厚包装
早期具有生成式人工智能集成的应用程序被嘲笑为“语言模型的薄包装”。确实,仅仅拿一个LLM并加上一个简单的聊天界面是不会成功的。你基本上是在与ChatGPT、Claude等竞争,在低端市场中一决高下。
典型的薄包装看起来像这样:
- 一个聊天界面
- 基本的提示工程
- 一个功能,很可能会被大模型提供商很快蚕食或已经可以通过他们的应用程序实现。
一个例子是一个“AI写作助手”,它只是将基本的提示工程传递给ChatGPT或Claude。另一个例子是一个“AI摘要工具”,它将文本传递给LLM进行摘要,没有任何处理或领域特定的知识。
根据我们在开发具有AI集成的Web应用程序的经验,洛杉矶AI应用公司制定了一些避免创建薄包装应用程序的标准:
如果应用程序不能在搜索方面显著优于ChatGPT,那么它就太薄了。
这里有一些需要注意的地方,首先是从“显著因素”的想法开始。即使你在某个特定领域能够稍微超过ChatGPT的能力,这可能还不足以确保成功。你需要比ChatGPT好得多,人们才会考虑使用你的应用程序。
让我用一个例子来说明这个见解。当我学习数据科学时,我创建了一个电影推荐项目。这是一个很棒的经历,我学到了很多关于RAG和Web应用程序的知识。

它会成为一个生产级的应用吗?不会。
无论你问它什么问题,ChatGPT很可能会给出一个与之相当的电影推荐。尽管我使用了RAG并引入了一个精心策划的电影数据集,但用户不太可能发现我的应用的回答比ChatGPT+搜索更有说服力。由于用户熟悉ChatGPT,他们很可能会坚持使用它进行电影推荐,即使我的应用的回答比ChatGPT好2倍或3倍(当然,“更好”的定义在这里很棘手)。
让我再举一个例子。我们曾经考虑过要开发的一个应用是一个城市政府网站的Web应用。这些网站以庞大且难以导航而闻名。我们认为如果我们可以抓取网站的内容域,然后使用RAG,我们可以制作一个聊天机器人,有效地回答用户的查询。它工作得相当好,但是带有搜索能力的ChatGPT是一个怪物。它经常能匹配甚至超越我们的机器人的性能。要让我们的应用始终优于ChatGPT+搜索,需要对RAG系统进行大量的迭代。即使这样,谁会愿意去一个新的领域获取关于城市问题的答案,当ChatGPT+搜索可以提供类似的结果时?只有通过向市政府销售我们的服务并将我们的聊天机器人集成到城市网站上,我们才能获得一致的使用量。
一种区分自己的方法是通过专有数据。如果有模型提供商无法访问的私人数据,那么这将是宝贵的。在这种情况下,价值在于数据的收集,而不是你聊天界面或RAG系统的创新。考虑一家法律AI初创公司,它为其模型提供了一个大型的法律文件数据库,这些文件在公开网络上找不到。也许可以通过RAG帮助模型回答这些私人文档中的法律问题。这样的东西能胜过ChatGPT+搜索吗?是的,假设这些法律文件在Google上找不到的话。
进一步说,我认为让你的应用脱颖而出的最佳方式是完全放弃聊天界面。让我介绍两个想法:
- 主动式AI
- 夜间AI
3、Clippy的回归
我读了一篇来自Evil Martians的优秀文章,它强调了在应用程序层面正在发生的创新。他们描述了如何完全放弃了聊天界面,并尝试了一种他们称之为主动式AI的东西。回想一下微软Word中的Clippy。当你在打字时,它会插入建议。这些往往没有帮助,可怜的Clippy受到了嘲笑。随着LLMs的到来,你可以想象制作一个更强大的Clippy版本。它不会等待用户提问,而是可以主动给用户提供建议。这类似于VSCode附带的编码Copilot。它不会等待程序员完成输入,而是在他们编码时提供建议。小心地使用这种风格的AI可以减少摩擦并提高用户满意度。
当然,在创建主动式AI时有一些重要的考虑因素。你不希望你的AI频繁地打扰用户,否则他们会感到沮丧。也可以想象一个反乌托邦的未来,LLMs不断推动你购买廉价垃圾货或花时间在一些无意义的应用上,而无需你的提示。当然,机器学习模型已经在这样做,但将人类语言放在上面可以使它更加阴险和令人讨厌。开发者必须确保他们的应用程序是为了造福用户,而不是欺骗或影响他们。
4、在你睡觉时完成任务

另一种替代聊天界面的方式是在线下而不是在线上使用LLMs。例如,想象一下你想创建一个新闻通讯生成器。这个生成器将使用自动爬虫从各种来源拉取线索。然后它将为它认为有趣的线索创建文章。你的新闻通讯的每一期新内容都将由后台作业启动,可能是每天或每周。关键细节:这里没有聊天界面。 用户无法有任何输入;他们只需享受最新一期的新闻通讯。现在我们真的开始烹饪了!
我称之为夜间AI。关键是用户永远不会与AI交互。它只是在你睡觉的时候产生总结、解释、分析等内容。早上醒来后,你可以享受结果。当然,在夜间AI中加入人工干预是非常有益的。想象一下,你的新闻通讯以提议的文章形式呈现给你。你可以接受或拒绝进入新闻通讯的故事。也许你可以添加功能来编辑AI生成的文章标题、摘要或封面照片,如果你不喜欢某些内容的话。
5、结束语
在这篇文章中,我介绍了AI栈背后的基本概念。这涵盖了基础设施、数据、模型/编排以及应用层。我讨论了为什么我认为应用层是最好的工作场所,主要是因为缺乏商品化、接近终端用户以及有机会构建受益于底层工作的产品。我们讨论了如何防止你的应用只是一个薄包装,以及如何使用AI完全避免聊天界面。
在第二部分,我将讨论如果你想构建具有AI集成的Web应用程序,最好的编程语言不是Python,而是Ruby。我还将分解为什么对于AI应用程序来说,微服务架构可能不是构建应用程序的最佳方式,尽管这是大多数人的默认选择。
原文链接:Layers of the AI Stack, Explained Simply
汇智网翻译整理,转载请标明出处
