Contents

AI迷思录

Contents

https://raw.githubusercontent.com/catbaron0/pic/main/images/202417203449.png

过去的 2023 年无疑是一个 AI 年。从年初伊始 ChatGPT 进入公众视野之后,立刻引发了一波 AI 军备竞赛。硬件层面和软件层面纷纷开始围绕 AI 发力,俨然 AI,或者严格地说是「生成式 AI」,已经是最热门的 magic word。虽然看上去这一波科技跳跃突飞猛进,我却觉得这波 AI 的热潮让商用 IT 领域变得越发无聊起来。

最直观的感受是2023年几乎没有 AI 领域之外的应用更新。效率工具纷纷把 AI 的接入当作(唯一的)重大更新来发布,比如 Notion、Raycast都推出了自己的 AI 接口和订阅服务。而在独立开发者这边大家也都想踩中这个风口,基于 AI 的 App 和服务纷纷涌现。这种繁荣背后却藏着一个有些矛盾的逻辑:大量的 App 只是调用 LLM 的API并返回结果,充其量也只是内嵌了特定的 prompt 来达成看似定制化的效果。在我看来这种 App 的竞争力就是一片蜃景而已,因为它并不具备足够的独创性和不可替代性。大量的使用场景都可以直接用 ChatGPT 或其他 LLM 的官方服务解决。而 prompt 本身也并不具备真正的竞争力。因此在结果上就是出现了大量千篇一律的应用,也反应出很多迷思。

ChatGPT 的流行被很多人看作是朝向通用 AI 的一大步。和以往的人工智能不同,基于 LLM 的类 ChatGPT 服务不再限定于某一个特定的任务。聊天?当然可以。分类任务?也行。写代码?小意思。最重要的是,只需要使用自然语言就可以指定任务,无需重新训练模型,也不用复杂的设定。一切都可以用对话解决。

然而这也许只是一种幻觉。事实上,越是复杂的任务,需要的 prompt 也就越复杂。而由于 LLM 的特性,对于复杂 prompt 的效果几乎是不可控的。这甚至催生了「Prompt Engineering」。(事实上,关于 Prompt Engineering 这一技术本身也是有争议的12)这种复杂性本质上出自对任务理解所需要的信息量。

想象一下,假设我们有了一个无所不能的通用 AI,原理上它可以帮你做任何事,它却依然很难取代一个真正的助手。比如你需要它帮你购买机票,在一切顺利的情况下自然没问题,但是如果它需要判断应该订经济舱还是商务舱、在不同的转机路线如何取舍、预估不同航班的时间安排,这些状况就需要了解你的经济预算、行程安排,甚至对你的生活作息以及对航空公司的偏好。再举一个例子,你想要快速了解「区块链和比特币」,如果你直接向LLM提问,你获得的回复很可能过于专业,又可能不够专业。即使你问一个人类专家,在他对你的专业背景不够了解的情况下,也很难给出与你匹配的答案。

这就是通用 AI 的第一个迷思。通用 AI 很可能并不是最优解。万用工具很美好,但一个好的设计师还需要一个好的甲方。对于可以清晰描述出来的任务(比如 CG 领域的物体识别),似乎使用非通用 AI 甚至非 AI 的工具就可以很好的解决。而由于自然语言本身的暧昧性和用户个人表达能力的多样性,「将自己的任务通过 prompt 准确地描述出来」这个任务本身就极具挑战性。因此,基于 prompt 的 AI 服务必然只是昙花一现。

在我看来 Chat 最大的优点是它的输入和输出都很直观易懂。2017 年Taryn Southern 就开始了用 AI 作曲的尝试,却并没有在公众引起什么热度;而同样是艺术创作领域的利用,之后图片生成 AI 却立刻引发了讨论热潮。一个不可忽视的因素是,音乐创作对普通人来说理解门槛过高,而画画却谁都能试一下;AI 生成的音乐好坏也很难评判,但是画好不好普通人却能有一个直观的感受。这种效果在 ChatGPT 的形势下更为明显:即使一个人没有受过任何专业训练,聊天的效果是对答如流还是鸡同鸭讲一眼就可以看懂。与此同时,对话能力一直是 NLP 领域一个难点,之前的聊天 AI 很快就会在大量用户的拷问下露出马脚,也因此公众对聊天 AI 一直以来都没有很高的期待:反正 ChatGPT 肯定很快就会露出马脚。所以当大家发现它真的能看懂你输入的话语,超出预期的惊喜会更令人印象深刻。

事实上,在OpenAI 曾经透露过ChatGPT的成功有很多无心插柳的成分。也就是说,聊天的形式只是出于测试的目的推出的产品,而并非出于实用性的考虑。作为面向公众的测试,聊天形式确实是合适的,因为它能迅速获得用户的反馈; 然而聊天的形式本身就有太多的局限。比如难以对文本进行控制;重要的信息很容易被无效信息掩埋(prompt 构造问题);输入和输出往往局限于文本。这些局限性有些可以通过多模态的技术解决(比如 Google 的 Gensim 可以在对话框中上传和处理图片),有些可以通过其他的UI包装解决(比如微软的 ChatBing 可以选择生成内容的创意程度),但说到底它只是对通用型的追求所诞生的产物,而自然语言本身和效率就是相悖的,所以罗老师当年 TNT 的 UI 才会有对这 Word 喊「变大」的梗。

那么为什么还是会出现大量套壳换皮的聊天 AI 工具呢?最直接的原因还是受限于 API 的形式。由于 OpenAI 这样的上游模型提供商是以对话形式训练的模型(严格地来说是文本补全任务,但表现出来的则是对话形式),它们提供的 API 也是以对话的形式来调用,因此对于下游开发者来说,在没有明确目的的情况下,「总之想做一个 AI 的应用」,那么自然而然就会从聊天 AI 入手。更深层的原因则是普通开发者缺少对模型的训练和掌控能力。说到底,开发者只能对已有的 API 做有限的包装,而不能真正对生成的内容有实质性的控制。

2013 年年底,百度千帆举办了一个 AI 游戏开发大赛,开发者可以利用百度文心一言 4.0 的 API 来开发游戏。从一位评委的总结可以看出,对 LLM 的利用最难的其实并不是利用生成内容,而是对生成内容的控制。通过将 LLM 接入 NPC 可以实现更自由的对话,但困难的是如何让 NPC 的行为更符合它的角色。这需要他有自己的立场和原则,同时还需要和游戏的进程匹配。如果只能通过 Prompt 和有限的参数设置,这些是很难达成的。而通过 Prompt 来构造决策 AI,带来的则是 耗时、烧钱、幻觉 这三大问题。具体来说,由于需要非常复杂冗长的 Prompt 来生成对话内容,这一方面会增加 API 的调用成本(API 调用会根据 Prompt 和生成结果的长度收费),同时响应也会变慢。幻觉则是目前 LLM 尚未解决的问题:AI 的回答可能是失真甚至是错误的。

特德姜说 ChatGPT 是对互联网的有损压缩,虽不准确却也有一股醍醐味在里面。如果只看生成的内容,如今的生成式 AI 确实更像是一种查询机制:它会将输入的内容编码,然后根据编码查询到自己在训练数据中看过的内容,然后以合适的形式输出,这也正是如今的 Chat AI 所表现出的能力。但更重要其实是背后对语言进行编码的能力,也就是自然语言处理的能力。对文本进行编码之后,除了生成新的内容之外,还可以做更多其他类似分类、总结、信息查询的任务。这些任务在之前就已经又了长足的发展,也确实被利用在很多产品中。比如熊猫吃短信的作者就会利用机器学习模型来识别垃圾短信。但大模型之后,并没催生出更多真正 make a difference 的产品。

我希望并相信,很快聊天形式的应用会回归平淡,Prompt Engineering 会被模型训练取代,自然语言处理的基础技术会(重新)进入开发者的视野。形如 OpenAI 的公司所提供的 API 中包括了对大模型微调的训练接口,也就是作者可以用自己的数据对模型进行定制化。也许越来越多的小模型会涌现,如同软件世界的单片机一样。进入 AI 时代后,针对 AI 设计的硬件所带来的性能福利也会福泽小模型,加上类似苹果的公司一直致力于在本地运行 AI 模型,个人训练和使用小模型的成本会更低。如果能在特定任务使用小模型,在性价比上可能会更有竞争力。最重要的是,对 AI 生成的内容的控制也应该交给 LLM 来控制。这些基础的非泛用性技术的组合无疑会带来更多可能性。

https://raw.githubusercontent.com/catbaron0/pic/main/images/202417203213.png

回到最开始的话题。我在开头说到的「无聊」的现状令我想起世纪初的手机行业,那时候市场上有各种设计鲜明的手机。即使 iPhone 4 真正打开大屏幕智能手机之后,Android 阵营也以保持了旺盛的生命力。但很快,所有手机都变得强大而单调,甚至连屏幕尺寸都一心求大。(骂的就是三星 Note 始作俑者)这当然说不上是坏事,但也远远说不上好。App 开发者似乎也正在踏入这段河流:打开 Product Hunt,有 1/3 的产品都把 AI 挂在描述中。问题是,现在甚至还没有一个 AI 届的 iPhone 验证出一条清晰的道路(尽管有很多人都梦想着自己做出那个 iPhone)。

https://raw.githubusercontent.com/catbaron0/pic/main/images/202417202542.png

如同 Andrew Ng 所说,AI 是新时代的电力。大模型时代之后,终于出现了电力公司让所有人能接触到这种新电力,开发者却没能利用电力开发出有用的电器,而是出现了各种各样的电灯。全是灯,等灯等灯。过去的 2023 年无疑是一个 AI 年,在产品上却反而有些乏味。但我隐隐觉得接下来几年会变的愈加有趣起来,因为无论如何,时代已经变了。

https://raw.githubusercontent.com/catbaron0/pic/main/images/202417210357.png