或许不该实现持续学习?

或许不该实现持续学习?

仿生学的问题在于,碳基生物的实现方式并不一定是硅基生物的最优设计 譬如飞行。鸟通过扇动翅膀来获得升力和前进的动力,其对控制的要求非常高,以至于到今天人类都不太能做出类似的飞行器 但是,人类使用固定翼+螺旋桨,却能获得远远大于鸟类飞行的速度 类似的事情或许正在重演 对于AI,现在最大的未解之谜莫过于如何实现持续学习 人类的记忆与大语言模型截然不同: 人类的记忆是时序的,而大语言模型预训练进的数据并没有先后之分 人类学习知识需要按顺序,比如先学加减乘除,再学初等代数和平面几何,最后学微积分;然而大语言模型的学习样本必须是iid(independent and identical distribution,独立同分布),即样本顺序必须完全打乱 人类的技能可能在训练中动态变化,大语言模型只能等下一波后训练再调 等等 按照Dario 最近受采访的说法,如果把学习/记忆的时常排序的话,人类的学习进化包含多种模式,即更长的基因进化,和中长期的持续学习,当然也有短期的短时记忆 然而大语言模型的外循环预训练,和内循环in context learning(上下文学习),都并不严格对应以上的学习模式。如果画张图大概是这样:

添加图片注释,不超过 140 字(可选) 那为何会如此呢?我们为什么实现不了持续学习呢? 本文尝试提出一个反向的观点,即正因为没有走持续学习,我们才能提早十年实现接近人类的智能水平 首先,人类大脑有多少算力呢? 这个问题不好回答,或许等于1w块H100,或许10w,不太清楚 但是人类有一个特点与AI 完全不同,即我们训练的算力和推理的算力一样大 这或许意味着,每个人的大脑都会根据自己的情况做最大的调整,神经元随时调,思考方式随时复盘,每人一个脑子,训推一体 这会儿持续学习就是最好的解决方案 然而,AI 的训推算力并不一致 训练的时候,我们调集几千几万甚至几十万块H100 都是可以的 但是,推理的时候,往往GPU都是并行服务客户的。比如DS V3,一百多块卡一起推理,能做到每张卡2000 token 每秒,但是分到每个用户头上最多40 token 每秒,所以约等于推理的时候每人只用了1/50张卡 推理和训练所需算力的比例大约差了数十万倍 在这种情况下,用KV cache来作为“快参数”实现个性化,已经是对持续学习的缺失所能做的较大的弥补了 为何会这样? 人工智能比碳基智能最大的好处之一就是模型参数可以复制 作为人类,我不能把脑子直接复制塞到别人脑子里,但是大语言模型可以 能够做一件事情,意味着解除了一个限制,它一定是好事。但这个好事的体现是什么呢? 我想,它的好处正是使得人类在推理算力只有人脑几十万或者几百万分之一的时候,可以以经济的方式,将训练模型的成本均摊到几千万上亿用户头上,使得它用另类的预训练方法,低成本实现超人工智能 这种差异化或许也是它成功的原因。它或许不如人类适应性强,但它的知识广博确实任何人类都无法比拟的 不妨设想,假如给每个用户配一万块GPU,训推都是这一万块,会怎么样? 第一,参数量肯定要拉大 chinchilla optimal说假如总训练算力固定,参数量和数据量应该是1:20,模型性能最佳(用了muon之后这个数字大约变成1:8) 但今天正常人类都不这么训模型,因为不能只考虑训练成本而不考虑推理成本 更多的做法都是小模型,训远超chinchilla optimal的数据量,这样虽然不是固定算力能训出的最强模型,但确实在市场上有竞争力的,够便宜用户才能用 所以,一万块GPU,把参数量拉到100T,再加上比MoE更激进的稀疏化方案,对于一个人用来说问题不大 第二,训练可以不用next token prediction,而全部用类似RL pretrain的办法 Yann LeCun 曾描述过著名的蛋糕论:训练应该以无监督预训练为主,而以强化学习为最后点缀,因为强化学习做那么多次rollout(轨迹展开,指生成完整回答序列的过程)最后只得到一个比特的信息 但如果我们算力远远多于数据,那这还重要吗?似乎无所谓啊 我们完全可以,每读到一条文本,做非常多的分析,来决策要不要吸收它,怎么吸收,是筛选掉还是做数据增强,都可以哇 第三,深度学习模型为了压缩,往往会把很多信息用superposition(叠加态)压到一条vector(矢量)空间里,使得记忆编辑等事情变得困难。如果参数那么多,全都弄成稀疏化的记忆提取,似乎也可以? 当然,经济条件完全不允许我们这么做 未来,如果真人均伊万卡的话,我们会使用类人的持续学习吗? 说不好,或许看应用场景对个性化的需求,但也有可能大家发现,多出来的几十万倍算力不如全都攒一块儿,还是共享学习 举个例子,如果要实现自动驾驶,我们可以像人一样,通过大量冗余算力现场学习,边看路边开车(L5) 但也可以在预训练期间把整个城市道路所有地图全背下来,现场算力只需要根据路上情况做微调整(L4) 后者所需每车算力可能能少百倍千倍,但适应性肯定因此更差 好,道路交通比较常见,大家共用一个路网,或许可以靠预训练 但人形机器人呢? 比如我要让它打扫家里卫生,它得把家里有什么东西,什么安全什么危险,东西放哪里,我的习惯,全都背下来 这似乎应该还是依赖持续学习? 但如果我是机器人厂商,直接不管用模拟还是真实场景,搞一千万个家庭常见布局,让它把该学的都学差不多了,到了之后因为见过,直接in context 泛化,似乎也行? 这两种蠢办法都或许可以暴力解决本来应该靠持续学习达成的能力,是否意味着推理端算力可以小个几千倍? 总之,持续学习没有实现,未必是坏事 或许我们换个视角:因为我们利用了模型参数可复制的特性,进行了共享学习,将学习成本平摊,我们才可以在人均推理算力小几十万乃至几百万倍的情况下实现接近人的性能