为了账号安全,请及时绑定邮箱和手机立即绑定

浅谈AI技术栈的层次:为什么应用层最有前景

那我为什么选择在应用程序层工作呢?

一些重叠的层。图片来自Unsplash。

🔥 如果你想定制一个集成生成式AI的网页应用,请访问 losangelesaiapps.com

📕 以下是一系列关于使用生成式AI构建 web 应用的第一部分。

目录:
  • 介绍
  • 应用层的优势
  • 厚层封装
  • Clippy 的再现
  • 睡觉时也能搞定事情
简介

人工智能领域是一个广阔且复杂的领域。著名的马特·图尔克每年都会发布他的机器学习、人工智能和数据(MAD)景观图,而且这些景观图看起来每年变得更疯狂。可以看看2024年的版本

点击上面的链接可以在这里查看大图。图片来自Matt Turck

至少可以说,这真是压倒性的。

然而,我们可以使用抽象的概念来帮助我们理解我们所处的这个疯狂的领域。本文中我将要讨论并拆解的概念是AI技术栈。栈就是用来构建应用程序的一系列技术的组合。那些熟悉web开发的人可能知道LAMP技术栈:Linux,Apache,MySQL,PHP。这就是用来运行Wordpress的技术栈。使用像LAMP这样的好记的缩写是帮助我们人类应对web应用程序复杂性的一个好方法。在数据领域工作的人可能听说过现代数据栈:通常包括dbt,Snowflake,Fivetran和Looker(或者后现代数据栈(见这里))。

AI的技术堆栈也很相似,但在本文中我们将更侧重概念性。我不会具体说明你应该在每一层使用哪些技术,而是简单地列出每一层,让你自己决定你适合哪一层,以及使用什么技术来取得成功。

有许多方式可以描述AI技术栈。我更喜欢简单明了;因此,这里将AI技术栈分为四层,如下:从离最终用户最远的(底部)到最近的(顶部)排列:

许多 方式 可以 描述 AI技术栈。

  • 基础设施层(底层): 用于训练和进行AI推理所需的原始物理硬件。例如,GPU、TPU、云服务(AWS/Azure/GCP)。
  • 数据层(底层): 训练机器学习模型所需的数据,以及存储这些数据所需的数据库。例如,ImageNet、TensorFlow 数据集、Postgres、MongoDB、Pinecone 等。
  • 模型和管理层(中间): 这指的是实际的大语言、视觉和推理模型本身。例如,GPT、Claude、Gemini 或任何机器学习模型。这还包括开发人员用来构建、部署和观察模型的工具和框架。例如,PyTorch/TensorFlow、Weights&Bias 和 LangChain。
  • 应用层(顶层应用): 由客户使用的AI驱动的应用程序。例如,ChatGPT、GitHub Copilot、Notion、Grammarly。

AI堆栈中的层级:作者提供。

许多公司会在多个层次上进行尝试。例如,OpenAI 同时训练了 GPT-4o 并开发了 ChatGPT 网站。在基础设施层,他们与微软合作,使用 Azure 云提供的按需 GPU。至于数据层,他们开发了网络抓取工具来抓取大量自然语言数据,用于模型训练,并非没有争议,详情请参阅

应用层的优点

我非常赞同Andrew Ng和[许多人和其他人](https://x.com/gradypb/status/1899485092247916891, https://www.sequoiacap.com/article/generative-ais-act-o1/)的说法,认为**AI的应用层面才是值得关注的地方**。

这是为什么呢?我们从基础设施层开始说起。这一层除非你有数百亿美元的风险投资资金来花,否则进入的成本非常高。尝试创建自己的云服务或开发新型GPU的技术复杂度非常高。这就是为什么像亚马逊、谷歌、英伟达和微软这样的科技巨头在这个层面上占据主导地位。同样的情况也适用于基础模型这一层。像OpenAI和Anthropic这样的公司拥有大量的博士来进行创新。此外,他们还必须与科技巨头合作来资助模型的训练和托管。这两层也正在迅速变得商品化,这意味着它们的特殊性正在消失。这意味着一个云服务或模型在性能上与其他服务或模型相差无几。它们可以互换,也可以轻松替换。它们主要在价格、便捷性和品牌名称上竞争。

数据层挺有意思的。随着生成式AI的兴起,很多公司都声称自己是最受欢迎的向量数据库,包括Pinecone、Weaviate和Chroma。然而,这一层的用户群比应用层要小得多(使用AI应用如ChatGPT的人远远多于开发这些应用的开发者)。这一领域也正在迅速走向商品化。将Pinecone换成Weaviate很容易,如果比如Weaviate大幅降低它们的托管费用,许多开发者很可能会转向它们。

也需要注意数据库层面的创新。诸如pgvectorsqlite-vec这样的项目正在将成熟的数据库系统使之能够处理向量嵌入。这就是我想参与的地方。然而,盈利之路并不清晰,考虑盈利问题在这里感觉有些奇怪(我♥️开源!)

这就把我们带到了应用层。这也是小玩家们能够取得重大胜利的领域。 将最新的AI技术创新集成到网络应用程序中的能力将会持续受到高度需求,并且这种能力在未来也将持续热门。最清晰的盈利路径是开发人们喜爱的产品。应用程序既可以是SaaS产品,也可以是根据特定公司需求定制的解决方案。

记得,那些在底层模型层工作的公司一直在努力发布更好、更快、更经济的模型。比如说,如果你的应用程序使用的是 gpt-4o 模型,而 OpenAI 更新了该模型,你什么都不用做,就能收到更新。你的应用会免费获得性能的提升。这就像 iPhone 定期更新一样,甚至更好,因为根本不需要安装。从你的 API 提供商返回的流式数据块只是变得更棒了。

如果你想要换成一个新的提供商的模型,只需要改动一两行代码就能开始获得更好的回应(记住,商品化)。想想最近的DeepSeek那件事;对OpenAI来说可能让人害怕,但对于应用构建者来说则是令人兴奋的事。

需要注意的是,应用层也面临不少挑战。我在社交媒体上看到不少人对SaaS市场饱和表达了担忧。让新用户注册账号已经感觉很难,更不用说让他们掏出信用卡了。似乎你得靠风险投资来支持一场大规模的营销活动,还得配上一个时髦的黑底黑字网站。应用开发者还要注意不要开发出很快会被大公司替代的产品。想想Perplexity最初是如何通过结合大型语言模型和搜索功能来获得名声的。那时候这还很新颖;但现在大多数热门聊天应用都内置了类似功能。

另一个应用程序开发者的障碍是获取领域专长。领域专长是指了解法律、医学、汽车等特定领域。即使拥有所有技术技能,也依然不够,如果开发者没有必要的领域专长来确保他们的产品真正帮助到别人。比如,你可以设想一个文档摘要工具如何帮助一家法律公司,但如果不与律师密切合作,任何实际效用都无法验证。利用你的关系网与一些领域专家建立友谊;他们能让你的应用程序更有竞争力。

与领域专家合作的另一种选择是为自己打造一款特定的产品。如果你觉得这个产品好,别人大概也会喜欢。然后你可以开始“吃自己的狗粮”,即使用自己的应用,并逐步优化它。

过度包装

早期将通用AI集成的应用程序被批评为“简单的包装”,它们仅仅是将大型语言模型加上了一个简单的聊天界面。确实,仅仅简单地将一个大型语言模型加上聊天界面是行不通的。这基本上是在进行一场向低质竞争,与ChatGPT、Claude等相比。

通常的简单封装看起来是这样的

  • 聊天界面
  • 基本的提示设计
  • 功能可能很快就会被大型模型提供商取代,或者已经可以通过他们的应用程序实现

一个例子就是一种“AI写的助手”,它只是将提示传递给ChatGPT或Claude等AI,使用简单的提示技巧。另一种例子则是一种“AI摘要工具”,它将文本传递给一个LLM来生成一个摘要,不进行任何处理,也不具备特定领域的知识。

凭借我们在洛杉矶AI应用公司开发具有AI集成的web应用程序的经验,我们总结了以下标准来避免创建浅层包装应用程序。

如果这款应用在搜索方面远远比不上ChatGPT,那么它就太弱了。

这里有几个要点需要注意,首先是“关键因素”的概念。即使你能够在某个特定领域稍微超越ChatGPT,这可能还是不够。你得比ChatGPT强很多才行,人们才会考虑用这个程序。

让我用一个例子来说明这个见解。当我学习数据科学的时候,我创建了一个电影推荐系统。这是一次很棒的经历,我学到了很多关于RAG和Web应用的知识。

我以前用的电影推荐应用。真怀念!作者提供

这会是个好的生产应用吗?不会的。

无论你问什么问题,ChatGPT几乎都会给你一个类似的电影推荐。然而,我使用了RAG并引入了一个精心策划的电影数据集,用户可能还是觉得ChatGPT加上搜索得到的回答更有吸引力。因为用户熟悉ChatGPT,他们可能会继续使用它来获取电影推荐,即使我的应用程序的回复比ChatGPT好两到三倍(当然,如何定义“更好”在这里是相当棘手的)。

再举一个例子。我们曾考虑开发一个针对城市政府网站的网页应用。这些网站通常很大,且难以浏览。我们认为,如果我们能通过抓取网站内容并利用RAG技术,就可以打造一个能够有效回答用户问题的聊天机器人。这运作得还不错,但具有搜索功能的ChatGPT非常厉害。它的表现常常与我们的聊天机器人持平或超越。要使我们的应用持续优于ChatGPT加搜索,我们需要不断迭代RAG系统。即便如此,当ChatGPT加搜索也能提供类似结果时,又有谁愿意专门去一个新的网站获取城市问题的答案呢?只有通过将我们的服务卖给城市政府,并将聊天机器人整合到城市网站中,我们才能获得稳定的使用量。

一种区分自己的方式是通过专有数据。如果模型提供商无法访问某些私人数据,这些数据可能具有很高的价值。在这种情况下,重要性在于数据的收集,而不是你在聊天界面或检索增强技术上的创新。考虑一家法律人工智能初创公司,它提供了一个庞大的法律文件数据库,其中包含大量无法在开放网络上找到的文件。也许可以使用检索增强技术帮助模型回答有关这些私人文件的法律问题。这样的系统能否比 ChatGPT 加搜索功能做得更好?可以,假设这些法律文件在 Google 上也找不到。

更进一步说,我认为让你的应用突出的最佳方式是干脆不使用聊天功能。这里有两个想法:

  • 主动型人工智能
  • 一夜之间的人工智能崛起
克利普的归来

我读了一篇来自 Evil Martians 的优秀文章,该文章强调了应用程序层面开始出现的创新。他们放弃了传统的聊天界面,转而尝试一种他们称为主动式AI的新方法。回想一下微软 Word 中的Clippy,当你在文档中输入内容时,Clippy 会插进来提供建议。这些提示常常并不实用,Clippy 因此常常被用户戏弄。随着大语言模型的出现,你可以想象将 Clippy 做得更加强大,如大语言模型。它不会等到用户提问,而是可以主动为用户提供建议。它就像 VSCode 中的编程辅助工具 Copilot 一样,不会等到程序员输入完成,而是会随着编程过程给出建议。如果设计得当,这种类型的 AI 可以减少摩擦并提高用户体验。

当然,在创建主动型AI时有一些重要的考量。你不想让你的AI频繁地打扰用户,以至于让他们感到厌烦。也可以想象一个反乌托邦的未来,其中大型语言模型会不断地推动你去购买廉价垃圾或者花费时间在一些无意义的应用程序上,而你并没有主动要求。当然,机器学习模型已经在这么做了,但加上人类语言可以使其更加隐蔽和烦人。开发者必须确保他们的应用程序真正造福用户,而不是用来欺骗或影响用户。

睡着了也能搞定的活儿

这是一张AI熬夜工作的图片。图片来自GPT-4。

另一个选择是离线使用这些LLMs,而不是在线使用,从而避免聊天界面。例如,想象一下你想创建一个新闻通讯生成器。这个生成器会利用自动抓取工具从各种来源抓取潜在线索。接着,它会为有趣的线索生成文章。每次生成新的通讯期,都会由后台任务在每天或每周定时触发。重要的一点是:这里没有聊天界面。 用户无法进行任何输入,只需享受最新一期的通讯。现在我们真的开始有进展了!

我称它为overnight AI。关键是用户完全不需要与AI互动。它会在你睡觉时自动生成摘要、解释、分析等。到了早上,你醒来后就能看到它的成果。overnight AI不应该有任何聊天界面或提供建议的功能。当然,如果有一个人工干预环节,会非常有益。想象一下,你的通讯简报会带着推荐的文章来找你。你可以选择接受或拒绝这些文章的内容。你还可以添加功能来编辑标题、摘要或封面照片,如果对AI生成的内容不满意的话。

简短总结

在这篇文章中,我讲解了AI堆栈的基本概念。涵盖了基础设施、数据、模型和编排,以及应用层。我谈到了为什么我认为在应用层工作是最好的选择,主要是因为没有被商品化、更贴近最终用户以及有机会构建能充分利用底层技术的产品。我们讨论了如何避免你的应用仅仅是简单的包装层,以及如何在不依赖聊天界面的情况下使用AI。

在第二部分中,我将解释为什么如果你想构建带有AI集成的 web 应用,学习的最佳语言并不是 Python,而是 Ruby。我还将分解为什么对于 AI 应用来说,虽然微服务架构是大多数人的默认选择,但这可能并不是构建这些应用程序的最佳方式。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消