有一件事让我非常困惑:当我在自己的 3070 上训练 Realtime Audio Variational autoEncoder(RAVE)来重现马来鼓声时,为什么更多数据并没有带来更好的“结果”。后来我意识到,这不就是基础统计学吗 - 小样本量、高方差,意味着任何一个稍微离群的数据点最终都会对模型性能产生不成比例的影响。这样的数据贫乏环境,是世界上多数使用场景的默认状态。好消息一如既往:我们可以拿一个大型强模型,在有限数据集上微调,从而 bootstrap 出很多能力,就像之前这里展示过的。
一个重要线索来自我的翠鸟声音如何被转换成更像带铃的 hadrah 鼓声,而不是之前那种非常“鼓”的声音。一方面你可以说,模型泛化得更好,因为它把更高音高的输入映射到某个偏差更小、误差更低的东西;但这就是它和我耳朵对不上的地方。我期待听到的只有鼓声,结果却听到一些训练数据中伴随鼓出现的铃声,而这些数据本来是用来学习表征的。归根结底,这又是一个选择:要不要让创作方向驱动技术开发。我们最后回到使用最初那组非常“鼓”的训练数据训练出的模型。
也值得一提的是,在声音领域,模型性能的衡量并不像看起来那么直接。loss 仍然可以下降,但人耳对声音这个信号的解释,并不总是和这样的 loss 指标好好对齐。所以我发现,直接听重构结果、听预测结果很有用。有时候想想真的很疯狂,人脑这台计算机是多么高效。在一个被信号淹没的世界里,我们却能以某种方式非常快速地泛化,并聚焦到具体细节 - 即使一群人同时说话。我们的大脑不知怎么已经解决了 speaker diarisation 的计算,并且即时完成它。
数据贫乏环境中有效训练的策略
使用的架构好像只是带 wasserstein 正则化的 v2,如果我没记错的话。过度拟合到只是记住样本、并且样本外表现不够好的危险,在某种程度上可以通过正则化缓解;其他一些典型可能性如下。我会更详细地谈后两点。
-
数据增强
-
更小的学习率计划或更多训练轮次
-
更好的模型*
-
迁移学习*
带星号的两点都与利用既有的、已编码的知识有关,以便在特定领域里用得更好。对于快速采用 A.I. 的组织来说,“免费午餐”实际上就是这个:如果你有专业能力和 GPU,就可以拥有一个在你自己的数据上训练的一流模型来处理特定任务,这意味着对自己的流程有更多自主权和控制权。
LLM 编码了世界知识
很多人没有意识到,现代 A.I. 应用所依托的 transformers 架构,在不同问题和数据模态之间惊人地有韧性,也很稳健。
Transformers:AI 中最好的想法 | Andrej Karpathy and Lex Fridman
我最近最困惑的时刻之一,是有位观众问我,把 “The Sound of Stories” 从 1 个故事扩展到 100 个,或 n 个故事,需要多久;答案是:只要我摄取那些数据所需的时间,也就是说在多数情况下很可能少于 1 秒?我构建 “The Sound of Stories” 时就让它天然可扩展,而且不锁定到任何一个模型,因此前期投入了很多精力去思考要使用的设计模式(虽然代码库在最终 demo 前变得越来越乱)。后来我发现,她以为我训练了 A.I. 去像某一个特定文化那样思考,这让我意识到,也许 A.I. 圈外的人甚至还没有意识到 transformers 已经解决了上下文问题,而这个深度学习时代与以往时代的区别,就在于系统正在变得多么通用、多么聪明。
当我把 GPT-4 换成 Claude 3 Opus 时,我完全不需要费心设计故事推进 - 我做的只是传入一个巨大到夸张的提示词,因为我太懒,不想用那种语言学方式处理;把 assistant 和 user 的回复追加进 API 调用;一直这样做,并只指示模型与用户互动、适时结束。在此之前,GPT-4 要么忽略,要么不知道如何处理用户突然冒出的回复,但 Opus 到目前为止确实证明自己更聪明,也更双语。它输出的普通话回复已经足够合理,让我看不出需要使用我调查过的任何中文大语言模型。
鉴于现在有大量在互联网规模数据上训练的大型开放模型可供微调和训练,最快这样做的公司会凭借更好的利润率和新能力领先,而那些不这样做的公司可能很快会发现自己陷入麻烦。事实上,在这场 A.I. 寒武纪大爆发中,一个很响亮的主题正是自下而上的用户采用有多强。我不认为今天的年轻人到了工作年龄时,会想在任何 A.I. 恐龙公司工作 - 这很棒。竞争是美丽的。
工作使用,是 A.I. 爆发出来的使用场景
这就是为什么我认为,阻止我们实现那些唾手可得的应用,比如规模化多语言翻译,以及用数据重新混合不同模态,唯一的东西可能就是组织惯性?这场仗是组织自己会输掉的,因为我们已经拥有构建自己一流模型所需的所有材料(再说一次,假设你有人才、GPU 和一些数据)。这一次,用户行为其实站在我们这边,只要读一读人们手里用 A.I. 做了多少事情的信号。幸运的话,希望我们可以让市场去分出这场 A.I. 采用竞赛中的赢家和输家。
作为终端用户,用 A.I. 工作正在成形为这项通用技术的“杀手级应用”。我在很多不同层面上都觉得这很迷人 - 互联网和手机改变了我们沟通和交换信息的方式,但相比之下,我们工作的方式可以说并没有改变那么多。你的老板给你一个提示词,你在大脑中处理那个提示词(你内在运作的权重和偏差对你不可见),执行一些转换,然后产出一个输出。我们依赖人类认知和智能来执行从例行事务到复杂多方谈判的各种任务,或者像是,一个无状态微服务架构,基于很慢的 LLM 提供实时体验,同时从本地电脑到远程虚拟机的整条价值链上有许多对应依赖和移动部件…… :’)
如果没有我的 A.I. 结对程序员,我不可能把 “The Sound of Stories” 变成一个利用多种 A.I. 模态、并通过 WhatsApp 实时提供的可扩展体验。
智能作为指数级力量
我曾经思考过,能做一整套事情的大模型是否总是比更小、更专门、更快的模型更好;而在用 A.I./LLM 构建的过程中,越来越明显的是,也许我应该重新框定这个视角 - 重点并不是你有多少参数,而是你的模型到底有多通用智能?越通用、底层智能越强,就越好 - 因为这意味着它能更可靠地遵循指令,用有限数据更好地预测,对数据执行新的转换,把其他领域的学习迁移到新领域 - 也就是做出人类会做的那类智能。
其中一部分只是工程:把任务拆开,分发到不同端点处理,利用模型集成;但更通用的智能(如我前面提到的 GPT-4 vs. Claude 3 Opus 的使用)总是更好。了解这些系统,是学习欣赏人类和社会能力的最好方式之一。
更多智能意味着你能用更少做更多。像 Claude 3 Opus 这样的模型,尽管有约 2 万亿参数、在 40 万亿 token 上训练,但这些带有世界底层知识的模型,相对于它们试图完成的工作仍然参数不足,这难道不疯狂吗?显然,2 万亿参数不足以捕捉整个世界知识的复杂性,所以当模型试图在有限架构中压缩并表示如此多数据时,高维空间里存在大量叠加。也许,掌握整个世界知识对任何一个个体来说都是不可能的任务,更别说一个模型。因此在人类社会中,我们有其他具身的领域知识智能体(专家),我们通过依赖图书馆、博物馆、外部知识库,甚至日常意义上一个带笔记本的人,来支撑和延伸我们的心智。我们就是这样把关于世界的知识拆分并分布出去。
而我们是存在过的最节能、样本效率最高、计算效率最高的生物计算机。为了让模型行为更符合期望,研究者做了很多强化学习、直接偏好优化和 Kahneman-Tversky 优化,但数据稀疏一直是挑战。相比之下,作为人类,我们在信号稀疏的情况下,却能学会顺应并作为社会性物种的成员运行,这难道不惊人吗?也许这就是媒体和文化的完整作用 - 向个人欲望注入一个偏好的特征向量。演化和竞争一样,是美丽的。
看起来,我们遗忘、抽象、类比、想象和制定计划等能力,是当前 A.I. 系统中缺失的部分,正在限制它们进一步的通用学习和扩展。人类在环境中探索和实验,组织并使用自己可支配的文化、社会和智力资源的能力,是无与伦比的。
所以我已经到达了那个 meta 状态:我意识到,如果自己再多想一想,就会做出不同的训练选择,而不是直接跳进去。同样,LLM 在被指示使用 Chain-of-Thought 推理时表现更好,这难道令人意外吗?
在下一篇后续文章中,我会进一步说明为什么更多智能很重要,并提出一些建议,说明个人用户、社区和公司可以如何引导并利用这种智能来服务自己的目的;其中大部分其实已经在这篇文章中讨论过:高质量、广泛且多样的数据集,外部知识库,人才,社会分享,算力和更好的模型。数据集这一部分是我想继续展开的,因为我怀疑很多组织已经有足够数据来构建有趣的东西 - 只是被僵局卡住了。我尤其想从这个角度研究合成数据集,因为那是我准备数据科学毕业项目时试过但没能做成功的东西,谢天谢地,世界已经变了,我现在也知道得更多了。;)
最初发表于 PubPub:erniesg.pubpub.org/pub/1eogiw8s。