很多人都在思考,LLM-based时代的应用应该怎么去开发。然而,时代的惯性会束缚我们的思维,就像iphone颠覆式出现一样,在它成为市场主流之前,我们根本想不出在手机屏幕上的软件会如此不同。这让我想到那句著名的论断,汽车出现之前,人们对交通工具的究极想象都是围绕马展开,给马带上昂贵的装备,给马车装上牛逼的助推器,而当汽车出现时,人们才恍然大悟,原来交通工具可以不需要马。AI时代的到来,新的iphone时刻,是否会改变人们使用信息技术的方式?人机的交互方式,还会永远和当下一样吗?计算机上的各种功能,将会以怎样的方式在我们的工作和生活中提供能力?本文将详细聊一聊这个话题。
LLM是基础设施
前段时间,英伟达发布了自己的本地大模型服务,购买它的显卡,可以直接在硬件上运行一个LLM。马斯克开源了迄今为止开源界参数最大的Grok,有人将它的源代码整理成一个可视化的3D模型,用以演示Grok的神经网络,人们发现Grok的架构如此复杂,层数如此之多,以完全超出现代工程的人力承受范围。大语言模型已经成为一种价格昂贵但唾手可得的基础设施。
去年大家都在讨论LLM的能力涌现,例如推理能力,当然,也无法避开它的幻觉。然而,今年,世界似乎已经发生了翻天覆地的变化。市场上的大模型应用越来越多,但目前来看,很多都是类Chat类应用,要说出现井喷式爆发,还为时尚早。
当然,现在仍然有非常多的人对LLM的理解还停留在ChatGPT的形式上,他们把大模型等同于和ChatGPT形式一模一样的聊天机器人。只有较少的人会把LLM理解为更底层的工具,它用以支撑和驱动新能力的开发,这类工具我们常常称为框架。简单讲,框架就是一系列工具的集合,以提升开发效率,让开发形成一种范式。而在AI领域做应用开发,在LLM之前有各种模式,现在LLM已经一统江湖,任何的AI应用,都可以用LLM来开发,这让我们的智能化应用(或者说需要智能化的功能)开发变得极为简单了。
举个例子,前几天,我在公众号 wwwtangshuangnet 中讲了自己利用AI来设计自己的DSL,里面除了借助chat来获得灵感外,另一个重要的点,就是直接利用LLM将自然语言生成DSL。
这在以前几乎是不可能的,也就意味着如果用户没有掌握平台定制的DSL,就无法使用某些功能,而在LLM成为基础设施之后,我们的开发更加贴近用户,更容易把用户的想法放到产品中去执行。而在这个过程中,我们甚至可以减少编程中间过程,因为现在很多大模型都有了直接执行代码的能力(functional calling)。这也代表着,必须一个字一个字准确编程的时代过去了,新的基于LLM的编程,可以在模糊的表达下完成编程过程,因此,也有人说,“面向对象”将会消失,“面向目标”将会爆发,以描述目标(而非机器执行)为编程内容的范式会逐渐兴起,这和SQL的设计极为相似,恰巧的是,有一个叫Chat2DB的项目,可以实现智能的数据查询和报表能力,直接用自然语言替代了SQL。
此外,LLM自身的封装性良好,这也就意味着,我们切换底层框架的灵活性大大提升。当我们发现更好更智能的LLM的时候,我们可以用非常小的代价切换底层设施到新的依赖上,这也使得我们的架构设计更加灵活,安全性更强,可持续迭代的能力更可靠。
Agent是AI时代的主角
之前的文章中,我有讲过,Agent作为AI时代功能搭建的基本单位,会出现真正的百花齐放。在移动互联网时代,APP是我们享受信息网络的入口,而到了AI时代,Agent就会替代APP,成为新时代的信息网络入口。
AI时代的核心使命,是极速的提升人们获取信息的效率和质量。人类获取信息的模式经历了很多次变革,从口口相传到结绳记事,从档案文书到信息管理,今天,我们将面临着走向知识管理的终极——智慧发掘。LLM-based AI把这种信息获取的难度拉的极低,以前我们要了解一个知识,需要从一部百科全书图书中去查找,效率和质量都很低,而在LLM的加持下,我们可能只需要10秒钟就可以获得高质量的知识内容。接下来的时代,我们需要把这一智能利用往前推一部,让人类突破信息传递的次元壁,能够让人类借助AI的力量,在有限的人类脑力前提下,获得最大程度的智力加持。
过去,我们有一个说法,手机是人类身体长出来的第三器官。因为人类已经无法离开手机了,所以它就像器官一样被我们需要和使用。而我相信,AI会成为人类的第二大脑,同时,人类还会长出第四器官。作为第三器官,手机智能在虚拟层面帮助人们解决一些效率问题,作为第四器官,Agent将会借助各种硬件,直接在现实中增强人类的生理极限。过去,让人长出第三只手,或者让人长出一对翅膀,人类的大脑是无法承受的,过去通过脑电波的形式来实现人体外肢的实践,即使再过几十年也不会有大的进展。而在大模型加持下,自适应的外肢并不需要大脑的直接控制,而是可以由大模型为大脑的AI系统控制,与人体的其他系统协调工作,就像人的淋巴系统、内分泌系统一样,与大脑协调工作。
AI系统是由Agent作为最小单元分工协作构成的,我们需要井喷式的Agents来为我们的创意提供原材料,就像开放世界游戏一样,只有当能满足我们创意的原材料都具备的时候,我们才能快速实现它,而当下,Agent还是太匮乏。
我认为很多人把Agent的设计看的太过复杂,我认为Agent就是非常简单的输入输出模式,对于我们现有的很多功能,都是可以重新设计为Agent的,甚至有时候不一定需要LLM,只要它能按照某种Agent协议,实现输入输出接口,就可以被用到AI系统中,作为组成宏大目标的一部分。
这个图是我提出来的一种设计模式,感知Agent和行动Agent本身通过事件协议与中枢部分沟通,通过端口与外界的硬件、软件联系。一旦这种通用的协议形成共识,我们的Agent市场将会很快丰富起来。有了足够多的Agent,我们接下来要办的事,就是让这些Agent能够协同工作。
Agent Workflow会是终极吗?
工作流是串联一系列单元,使它们能够按照开发者目标完成动作的有效方式。这些工作单元,如果独立去看,可能与我们最终的目标相去甚远,但是我们通过工作流,把这些看上去相去甚远的单元组织在一起,有效的分配任务,就可以实现我们自己的目标。世界上很多事情都是这样,看上去相去甚远的部件,可能在系统中起着关键作用,就像制作钓鱼竿的碳纤维材料成为我国航天公关中的关键突破,就像我们平时写的代码分看来每个语法都平平无奇,组合在一起却功能强大。
对应到我们的编程中,Workflow就是架构,即用以实现我具体目标的整体AI工作系统,与构成该系统的Agent工作单元之间的交互、联系、调度等等。
前几天,我看到一则消息,国外某实验室正在尝试让AI训练AI。当我们允许AI在解决我们提出的具体需求时,且它自己认为自己无法满足该需求的情况,可以通过训练一个具有针对性的AI来解决该问题时,AI就实现了自举。当这一现象产生时,意味着真正的AGI时刻到来了。那么这里有个问题,AI训练AI是我们的设定,还是AI自己的决策呢?如果在我们的设计中,没有这种设计,AI是否有能力自己想到要去训练一个AI来解决具体问题?
所以,当我们去设计Agent工作流时,我们应该换一个角度,即每一个Agent都是一个举足轻重的角色,就像工作中的同事,如果屏蔽了具体形象,只要它能完成工作流中的环节任务,那么无论他有没有实体生命,都需要在工作中被平等看待。
上图是一种拟人化的Agent工作流设计,这种设计把Agent作为工作环节上的角色,完成特定工作内容。虽然这些角色可以由人来代替,但是我们现在是在讨论AI系统,我们作为用户,期望得到的是结果。
从上面的设计来看,AI系统本身并不具备自举的潜力,因为我们往往只会根据当下的业务需要来设计工作流。即使我们在工作流环节中,允许AI进行AI训练,也会是把AI训练交给具体的Agent来完成,而Agent本身并不是主动决策自己要进行AI训练,它更多的是承担“人力”而非“人才”的角色。至于整套系统来说,就更不存在自己训练AI的说法。(当然,我们并不排除有人就是要设计一个可以训练AI的AI系统,而且据我所知,现在头部的大厂们,确实就是在用AI来训练大模型。)
结语
本文从思考AI时代的人机交互形式出发,提出了AI时代的Agent等效于移动互联网时代的APP的观点。手机上的APP是软件,而Agent则不局限于软件,还可以是硬件等。过去我们比较关注代码实现,“面向对象”是最流行的编程范式。但在以LLM为基础设施的时代,我们可以大幅减少对代码实现的依赖,比如一些算法、提取、转化、分析等,一起我们可能需要写大段代码,甚至搭建一套系统来实现,而现在,基于LLM的能力,可以直接获得结果。目前来说,其实我们的LLM基础设施已经很强了,比较欠缺的是Agent,现在的Agent实在是太少了,想要构建AI系统,任何功能(Agent)都需要自己从0去造。当然,或许这也是机会。
2024-04-01 1067