最近思考比较多的是目前的LLM与AGI的关系。我个人觉得LLM不是通往AGI的正确路径,可能受限于自己的眼界,但更多是因为有很多试图接近AGI的想法是无法基于目前的LLM去实现的。这当中涉及到很多我认为的LLM的局限性。
目前的LLM不管应用起来有多复杂,本质都是主动输入token,然后等待模型输出token。往上开发的复杂应用也不外乎是提升输入的质量,或是基于输出去触发什么,再加上可选的多次调用形成的。但多次调用实际上也是在不断调整输入去meet我们期望的输出。
这里很关键的一点是“主动输入”,因为我好像还没有看到有“主动输出”的AI应用出现。现在很多人说「AI是助手」但从来没见过某个助手会在合适的时机基于当下环境给你输出你需要的信息。换句话说,不主动求助就得不到LLM的帮助。
鲜有人开发这样的应用可能有很多原因,因为前面说了LLM是需要主动输入的,所以想要LLM有「主动输出」的效果,我想到的有两种思路。
第一是持续输入,筛选输出。相当于这个系统内部是一直持续和LLM对话,但LLM的输出要不要真正输出给用户有个决策机制。想一想不用花钱,打个比方,系统是有摄像头,每5秒都拍一张照片问LLM看到了什么,有什么你觉得用户是需要帮忙的信息,再加一层LLM作为输出决策,就形成一个可以随时给你提供意见的助手。比如摄像头拍到用户在看某英文说明书,认为需要翻译服务,就会在用户拿起说明书后不久说“这说明书讲的是…”。这个思路听起来不错,就是比较费钱,因为持续调用就意味着一直在利用算力。
那第二种思路就是中断调用。系统里面有不依赖LLM的持续监测模块,满足规则后就会把相关信息发给LLM。或者最简单的就是定时器。比方说监测我的微博,每发10条微博就给我归纳一下跟我说几句话,又或者固定每天晚上9点给我一个汇总,每天早上给我群里发一份日报。
但不管是哪条思路,重点都是什么时候调用LLM,以及输入是什么。
想到这也会觉得LLM这种内部没有“记忆”只能靠外部来管理上下文的架构很难操作。所以更加接近AGI的思路我个人认为是:有记忆、保持激活、保持输出。
这种记忆是可以由模型自己控制精确寻址的,而保持激活保持输出更像是一种一对一服务。比如我想过做一个由AI自主驱动的广播系统,我自己可以每天24小时开着收音机听听AI给我讲什么东西。但怎么保持激活保持输出却难倒了我。
再往下想我觉得还得有外显输出和内部输出之分,哪些是模型自言自语哪些是输出给用户的。带思考的模型算是往这个方向稍微靠近了一些,但我需要的可能是在输出中区分对外和对内的两个字段。
我在很多摸鱼项目中都有这样的概念,使用的是模型的json模式,在prompt中定义好系统内部使用的信息字段和对外输出的字段。比如说写过一个求签系统,除了输出的签文我内部还设置了一些评估的字段,满足一定条件就不输出给用户了。
LLM除了没法「主动输出」,还有一个概念就是模型的skill我认为不太行。不是说生成质量不好,而是模型有些特定任务只能一步步引导、prompt去教它。比方说我前些天拍了一张迷宫照片,很明显我的意图就是要LLM帮忙解决这个迷宫,但我直接问肯定是得不到解的。于是我和他一步步去写cv算法/Q9dhB8lS0。虽然最后出来一个比较满意的结果,但换一个人有相同的需求模型又“不会了”。因为这个过程相当于是模型被动去掌握一项skill,没办法主动去学习。迷宫现在我有工具去解了,但下一次我问魔方怎么复原,那估计还得再让LLM写一段求解脚本。