关于 AI 的阶段性思考

shellc 2024-03-31

tags: LLM  AI  GPT 

AI 短期内不能提供原创性想法,它不可能成为一个创造新理论和新发明的机器。它不会是人类的阿兰图灵。但是它可以非常高效地按照人的意图编写软件,我们这个世界会有无限量的 Jeff Dean 和 Linus Torvalds 供应。

感谢常老板提供的环境,让我最近四个月基于 LLM 搞了一些小玩具。在感受到这波 AI 浪潮的同时,又陷入一种没有方向感的困惑,这玩意到底能干什么。

现在流行讲第一性原理,凡事从最坚实的起点开始。解决这个困惑的起点,从定义目的开始。

对于 AI 的兴奋,是因为觉得可能可以做点什么。AI 能做什么呢?人工智能 是一个很长期的计算机科学的叙事,长达80多年了吧。每一次计算机技术的进步都会导致人们对于人造智能的惊叹和不切实际的期待。有一种态度是我认可的,就是你不要太高估 AI 的短期影响,但是不能低估它的长期影响。从长期来看,AI 一定会改变人类的各个场景。但是短期内,要提防各种宏大的科幻叙事。

AGI 就不是一个很好的词,Agent 也不是,甚至 AI 本身都不是。这些词更像是一种营销叙事,不精确,充满想象空间。

我更喜欢把 AI 当成一种软件实现方法。它是一些机器学习算法的集合。是计算机技术的天然的一部分,一个持续地发展的技术领域中的一个分支。

计算机解决的是什么问题?一种计算机器,通过数理逻辑来驱动物理世界的自动化。AI 算法,是为了更高效地驱动某些计算任务的自动化。AI 的根本目的就是计算自动化本身。

当下的 AI 更多被称为 AIGC,这是另一个营销词语。当文字处理软件和计算机图形软件出现的时候,它们对当时的内容生产行业的意义,肯定比今天的 AIGC 要大。在 AI 不能提供原创性想法之前,它依然是计算机技术在内容生产这个领域的量的优化。用乔布斯的话来说,计算机是头脑的自行车。AIGC 加持下的计算机只是一辆更省力的自行车。

本轮 AI 浪潮的革新是以 GPT 为代表的 Transformer。一种有效的对数据序列的建模和预测方法。基于这种方法,很多以前的老问题会有新的解决方案,比如分子合成的研究。以前科学研究依赖一些朴素的统计算法,现在 GPT 提供了一种更强大的数据分析方法,这是科研工具的更新,直接的影响是可预期未来研究的速度会更快,会有更多的新的发现和发明。

LLM 是另一个意义重大的应用方向。ChatGPT 是 LLM 破圈的一款创新性产品,提供了一种人和机器高质量对话的交互方式。这种交互方式会产生长远的影响,未来人机交互会越来越多地变成对话(包括语音)。

回到计算技术是自动化这个目的上。LLM 更重要的能力我认为是代码生成。生成代码、调用函数、理解自然语言意图、生成自然语言。这几个能力产生了全新的完整的软件生产和执行机制。

软件的开发和运行方式被 LLM 重新定义了。

AI 短期内不能提供原创性想法,它不可能成为一个创造新理论和新发明的机器。它不会是人类的阿兰图灵。但是它可以非常高效地按照人的意图编写软件,我们这个世界会有无限量的 Jeff Dean 和 Linus Torvalds 供应,当然这只是致敬他们的编码能力,那些工程上的奇思妙想 AI 还是望尘莫及。

当有 10000 个全世界最顶级的程序员供我驱使的时候,我能用他们产生什么价值呢?这可能才是更要命的问题。我会让他们帮我生产 100 万个抖音短视频吗?听起来有点荒诞,而且不符合经济规律,因为这个能力是普惠化的,每个人都生成 100 万个短视频并不会提供 100 万个想法、段子和美好生活的点滴,只会让信息冗余度变大,有效信息获取更困难。这时候让这 10000 个程序员来过滤无效信息反而可能是更有市场的想法。

更现实的问题是,我目前并没办法用 AI 搞到 10000 个 Jeff Dean。这是一个值得努力的方向。LLM 驱动的软件在淘汰了程序员的同时也为程序员创造了很多需要解决的问题。

GPT4 或 StarCoder、 Codellama 这种专门训练的代码生成 LLM,已经表现出来很不错的代码生成能力。但是还不够优秀,更强的代码生成模型是一个基础的需求。

LLM 生成的代码需要在安全的环境中执行,这对代码执行沙箱,服务弹性都提出了要求。代码执行过程中也会涉及到数据的访问,隐私和数据安全问题也需要解决。

函数调用能力让 LLM 能够根据需要动态的执行模型外部功能,这可以极大地扩展 LLM 软件栈的能力。对于自然语言意图的理解和函数的选择,以及多步函数调用组成工作流的编排是 LLM 需要继续加强的。已经有很多模型专门优化函数调用和编排。

一个人工辅助编写的开箱即用的 LLM 专用函数库也是很有吸引力的想法。这些函数库可以集成现有的基础设施、API 或 RPA能力。让 LLM 可以实现更大粒度的自动化任务。

另一个让 LLM 执行更大粒度的任务的方法是让 LLM 能够自主推理。ChatGPT 式的对话是人和模型交互迭代最终结果的过程。LLM 自己也可以完成某些自动迭代,这是目前一些像 ReAct 或 Multi-agent 推理框架试图解决的任务。

数据依然是最有价值的部分。如何让 LLM 能够更高效地处理数据也成了新问题。比如 RAG,向量数据的存储、检索带来了新的工程挑战。

LLM 定义的软件技术栈可能才更像 PC 和互联网提供的创新机会。只是新的 Apple、Google 和 Facebook 是什么样呢?他们会基于新的技术栈构建怎样的应用、商业模式和开发者生态呢?

LLM 技术栈,有很多可以做的事情。当然,想获得“成功”,想清楚让这 10000 个程序员做什么才是更重要的。商业上的第一性原理,还是要回答我要为谁提供什么价值这个终级问题。我没有答案。