最近在研究 OpenAI 发现,他们其实做的只是机器学习的第一原理,也是机器学习的终局:优化对于未来观察的无损传输的压缩大小。进一步分析后发现,这个理论非常 powerful,因为仅仅如此,便能通向超过人类的智能 (Super-human Intelligence)。本文会介绍无损压缩的基本原理和具体实现以及对于 AI 未来发展的猜想。
在和小伙伴一起研究的过程中,引出一些有意思的讨论。虽然由于篇幅限制不会特别深入,但希望能引起大家的兴趣。讲无损压缩的部分为了保持 self-contained 的阅读体验,正文里尽量没有引用资料;参考文献会在最后一起给出。对模型训练的无损压缩解释有了解的同学,也可以直接跳到后面的章节开始阅读。本文不是为了创造新的理论、追求 novelty 等目标而写,只是为了尽自己努力去理解观察到的现象。当然同样的现象也可以用其他的理论来解释,也欢迎大家讨论,找到不同理论之间的联系。
模型训练的无损压缩解释
baseline 传输方法
baseline 方法的概率解释
基于神经网络训练的无损压缩方法
每次查找的动作都会有两种结果:向左或向右。
传输代价的计算
既然刚才我们讨论了一个看起来能利用已知概率分布降低传输量的方法,那么我们自然想知道,如何计算所需要的比特数?由于二分查找的可能提前结束,期望意义上的查询次数证明 在这里,也有 比较简单的解释。由于我们希望最小化传输量,那么优化传输量的上界,即 “最多查询次数” 也是殊途同归的。
实际上,查询次数的上界为
由此可知传输数据集 D_n 的代价 S_1
从而压缩率 r_n
讨论(从这里开始不 self-contained,有猜测,并且没有 truthfulness 保证)
Auto Regressive 模型的 训练过程 是在 显式的对数据集进行无损压缩
weights 并不是对数据集的压缩表示
- 大部份人会先验地认为 “训练是把数据压缩到了神经网络的 weights 中”。ChatGPT Is a Blurry JPEG of the Web 里虽然提到了无损压缩的 Hutter Prize, 但因为 没有被存下来,而被看做了 lossy compression。
- 进一步,我认为 weights 并没有存下对数据集的压缩。
- 我们从一些例子入手,比如 OpenAI 提到的 Grokking 现象
- 考虑用一个 Transformer 学习同余除法 (Modular Division) "a /b mod 97 = c" 这个问题,其中 a 和 b 的取值为 0~96 的整数。等价于找到一个 c 使得 b * c mod 97 = a mod 97
- 数据上,这个问题一共只有 97^2 ~= 10,000 个数据点,把其中 5,000 当作训练,剩下 5,000 当作测试。
- 训练中的准确率如下图(from Grokking paper)
- 这里有趣的发现是,训练集上很快准确率到达 1,验证集上 "overfitting" 而一直学不会,直到 3 个量级以上的训练步数后,也慢慢会了,准确率趋近于 1。这里说 “overfitting” 是因为,按照传统统计机器学习的观点,随便一个 Transformer 的 VC dimension 都会非常大,在一个只有 5000 个样本的这么简单的训练集上训练几乎就是奔着 overfitting 去的。
- 如果 weights 在训练中随着 training loss 下降 仅仅 在更完美地记忆原始数据集,那么不应该能在 validation set 上能达到 1, 因为真的是一点 validation set 都没见过。
- 如果这个例子会有 “数据量太少” 的 concern,那么可以考虑类似的 “8 位数加法” 的问题,一共有 10^16个样本,基本上不可能学习完。后面的实验表明是能学出来的。如果随便挑两个 8 位数作为 validation,那么也是几乎一定没有在训练集里出现过的。
- 那么 weights 既然不是对数据的压缩,那么到底存了什么呢?
- weights 是对 “智能” 的表示
- 这句话有点民科的感觉 ,但其实想说的是,weights + transformer 计算了数据分布中可解释的部分(后面会展开)。
- 另外一个角度,“智能” 其实是消耗能源用 Transformer + SGD 做压缩后的副产品 (by-product)
- 我们继续考虑 8 位数加法的例子,数据是均匀随机生成的,每字符就是一个 token (没有 bpe),并且沿用 auto regressive 的方式来训练。这其实就是一个常见的 GPT 训练的子集。比如我们考虑下面这个例子用来做训练好的模型的验证
- 17282456+79546852=96829308
- 当训练完全收敛时,对于这个序列的 loss 应该会长下面这样
- Accuracy 曲线
- 实际实现中
- 字符集为 0-9,s,e,+,= 共 14 个字符
- 序列长度为 1(s 开始符)+ 8(数字 a) + 1(+ 号) + 8(数字 b)+ 1(等号)+ 9(答案)+ 1(e 结束符) = 29
- 但因为是 predict 下一个字符,所以训练长度为 28
- training 比 validation 还差且 accuracy 没有到底是因为没注意到 mingpt 里训练 默认带 0.1 的 dropout
- loss 的收敛点大约是 1.31 左右,我们计算 "理论最低" loss
- 等一等,你只是在拟合训练集么?为什么能推导出测试集泛化?
- Good question from @汪彧之
- 这里面有个很有趣的角度:是的,没错,训练是在拟合训练集。但在 autoregressive 的场景里,假设数据集里每个 token 都只看过一遍的话,那么 所谓的 "training loss" 其实是 "next token validation loss"。
- 类似的,在传统的过多遍数据集的场景下(如 ImageNet),第一个 epoch 的 loss 是可以看作和压缩率有线性关系的。但从第二个 epoch 开始,我们 empirically 知道模型的能力还在提高,但我暂时无法用压缩的观点来看 loss 的下降了。
- 思考题:对数据训练两个及其以上 epoch 时该如何用压缩观点来解释?跳出来看,这个问题的意义有多大?
- 压缩有限样本可以学习到真的 “智能”
- 考虑在 有限 但 足够多 的数据的情况下,压缩是 有可能 学习到真的智能的。
- 在有限在足够多的样本的情况下,如果假设我们的压缩算法(a.k.a, for now, Transformer + SGD) 对于当前的数据做训练时 training (a.k.a, next token validation) loss 能 “比较稳定” 的下降,并且 从某个 step T 开始,training error 都是 0(更精确一点是 epistemic uncertainty =0),能对未来 token 的预测完全准确则该模型就真的 “懂” 了数据的生成规律。
- 思考题:这里面缺少很多严格的数学定义,该如何严格地 formualte 这个命题?
- 所以我们知道,有限样本训练也是可以达到最大压缩率的
- for skeptics: 是的,收敛率的问题没有讨论,可能 “有限” 也大得离谱,但我希望收敛速度尽可能快,也希望有更多人来研究这个事情。
- 涌现 (emergence) 可以理解为在 loss 下降过程中,数据的某个子集的 epistemic uncertainty 突然快速下降,模型突然开始 “悟” 了。
- 由于 training dynamics 的复杂性,据我所知还没有办法预测什么时候能力会涌现、在什么时候涌现。我猜测涌现可能只是(我们目前还搞不太懂的) training dynamics 的一种行为;“慢慢学会” 其实到最后也没有太大问题。
- @Xiangyu Zhang 有个更符合中文语境的说法叫做 “顿悟” 。
- 涌现得到的人可以理解的智能,是和人没有区别的智能
- 在训练过程中压缩率越高,模型越 ” 智能 “
- 我们知道在训练过程中的 loss 其实是 validation loss,且当 loss 下降时,我们对于 next token 的传输压缩率会越高,再考虑到有限样本也是可以达到最高压缩率的,所以模型也就会越来越智能。
- (empirically)模型越大压缩率越高,从而模型越智能
- 我们已经知道了,模型训练过程实际上是在对数据集做无损压缩。经验上,我们知道模型越大,模型能力越强。我的理解是,“大模型好” 这个说法实际上是在第三层:
- 第一层是 机器学习就是压缩,压缩通向智能
- 第二层是 Transformer + SGD 是一个目前经验主义看起来还挺好的压缩算法
- “好” 这个算法可以在提供更多的能源的情况下达到更高的压缩率
- 第三层是 增加模型参数是一个在给定训练能源消耗上限的情况下,一个对压缩率有显著影响的超参数调节方法。
- 从压缩的角度,我们可以理解为,大模型的 loss curve 一般更低,从而对应更高的压缩率
- (non-truth) 这和人的智能观察有一些有趣相似之处
- 在地球上,人比其他生物看起来都明显聪明
- 人的大脑(weights、神经元数量、皮层细胞数)从统计意义上比绝大部分生物都大(是的,不仅有非洲象、蓝鲸等 outlier,人类自身也有小头症和巨头症)
Extrapolate into the future (There's no guaranteed truth here)
- 长期看来,碳基的智能一定会远远小于硅基的智能
- 现在的 gpt 表现出的硅基智能是 “人类可以理解的智能”,但在压缩过程中也可能会产生 “人类不可理解的智能”。
- 我们可以将 GPU 和人类进行对比
- GPU 加能源超频,人脑加能源发烧
- GPU 之间传输 nvlink+infiniband,人脑之间传输靠动能(说话 = 空气震动,打字 = 手敲键盘,所以三体人很厉害)
- 机器 24x7 小时工作,人脑每天高强度工作 8 小时,剩下的时间在睡觉放松养身,否则就会认为在被 PUA。
- 从计算到通信到能源使用量,人类统统不占优。
- 压缩可以超过人类智能
- 当压缩率足够高时,模型将不得不找到数据中的规律。而有些规律可能是我们不知道的。
- DeepMind 已经在数学的纽结理论上做出了一些尝试。
- 压缩也可以发现物理定律。如果我们把很多 “苹果树的生长” 的视频给压缩好了 ,那么苹果可能 “砸中” 的不是牛顿而是模型,因为模型需要会预测苹果落下的规律,那么其 weights 中一定有一个隐式的 “牛顿定律”。压缩天文视频我们可以得到开普勒定律。那么压缩强子对撞机的数据呢?
- 这样看起来,AI for Science 的前途好像一片光明。
- 但正因为这样, AI for Science 单独存在的意义反而可能变低了
- 进一步,我们把天文地理人文政治生物化学物理数学的知识一起压缩,说不定 gpt 会一口气吐出基于某种 新的 penrose tiling 而设计出的拥有新物理化学特性的晶体,可以作为脑机接口的优秀植入材料,并预测人因此能力的增强对于科技发展的二阶推动作用,分析对社会发展造成冲击,进而如何影响地缘政治,导致可能人类需要尽快殖民火星成为 multi-planetary species 而避免因地球毁灭产生的种族灭绝危机(这里 @elonmusk)
- 相对于 gpt 只是是一个模型在 inference,人类需要调动大量不同领域的专家并耗费大量资源来维持人这个生物化学计算机的运行,并且通过高超的管理艺术协调解决人类之间靠空气振动传播知识带宽低下的问题,加上毅力和运气才能有可能做出相同的工作。
- GPT 很危险
- 没人同时是天文地理人文政治生物化学物理数学专家,而 GPT 压缩了足够的知识后就可以是。
- 如果一个毒贩问 GPT 你是否有便宜简单的方法合成冰毒,GPT 若回答了,那可能地球上某个地区就会毒品泛滥
- 当然 GPT-4 已经做好了一定的防护措施(即使使用了 "DAN" prompt)
- GPT 的价值观和政治倾向也可能会对世界格局产生巨大影响。
- 为了不教大家做坏事,这里就不展开了。
- 如何控制训练好的硅基智能?
- 不要让它控制自己的能源
- 用 EMP (电磁脉冲) 设备对准机房,不听话就电疗(杨教授?)
- 对有限数据压缩只能对有限世界进行解释。如果这时智能 “有意识”,那么也只是 “有限世界” 的意识,
- 可以推断的是,现有的 GPT 如果造成了对人类的破环,那么这个行为的要求一定最初是人类发起的。
- 因为虽然 GPT 在训练中在不停地通过 SGD 尝试压缩一个 token 的表示,但就目前的使用形态来说并没有在尝试在优化对未来世界的观察的压缩率,a.k.a, 没有做 SGD。@niuyuanlei
- 硅基只需要 encode “对未来下一个 token 预测的压缩” 这一条规则,并且人类给了它这个机会,可能也会造成不可控的危害。
- 所以 “GPT 继续训练” 这个按钮应该要选执剑人?:)
- 但,别慌:压缩告诉了我们目标,但没有告诉我们道路。
- 我们如果把视野放得开一点,我们会发现,其实很多计算问题都是学习问题,于是都可以从压缩角度来理解。
- 一个例子是密码学。从某个角度看,机器学习和密码学其实都在研究数据的学习能力:机器学习研究一份数据有 多可学,而密码学研究一个东西有 多不可学。
- 假设我们用 RSA 算法生成了一对密钥后,对于一段明文 u, 用其私钥u加密 得到密文 v,把 u、v 连在一起得到 [v,u] ,然后用看做一个 autoregressive 学习问题。如果能正确预测 u,则说明模型学到了 RSA 算法 + 所用的密钥。
- 虽然可以认为现在只有 2^n 的指数级 “学习”(a.k.a, 破译) 算法,虑到模型还懂那么多数学 + RSA 的算法实现本身但我无法断定在强大的压缩算法下,依然学不到破译算法。
- 希望懂密码学的同学可以来展开讲一下。
- 同样的,刚才 8 位数加法的问题,如果我们认为数据是一个很长的序列 [a1+b1=c1, a2+b2=c2, ...] ,且压缩算法足够厉害(可能 Transformer + SGD 还不够),那么最后不仅应该学会加法,还应该能学到随机数生成器及随机数种子。
- 当然,还有很多很多的问题可以探讨,这里还有一些没有展开的话题
传统统计机器学习学习分布
的视角和压缩的联系是什么?VAE 是否也是在做压缩 (@malike)?判别模型中的 Information Bottleneck 和 生成模型的 Minimum Description Length (a.k.a., 压缩) 之间关系该怎么理解?( @Xiangyu Zhang )
- Mathematica 的 symbolic computation 能力被 GPT 学会是不是只是时间问题?最近也有一些 用 GPT 模拟图灵机 的工作。这样下去是不是 google/bing/wolframalpha 最后都会沦为 gpt 的一个外部数据库?wolframalpha 可能是其中 truthfulness 最高的。
- RLHF 在压缩的视角里是什么作用?
- Computer Vision 为什么抄 NLP 到今天也还在一个百分点一个百分点地把 ImageNet/MSCOCO 往上拱?
- Transformer -> ViT,BERT -> MAE,GPT -> ViT-VQGAN,为什么还是不 work
- 扩散模型 (Diffusion Model) 在计算过程中加入了随机噪声,是否意味着白白增大了 aleatoric uncertainty?是否意味着其压缩效率上限在更多任务上会受到天生的劣势。
- 小测验:diffusion model 里有随机噪声,那还是无损压缩么?
- 经验上加宽网络,可以使得网络学习能力更强,从而提高压缩率。从 NTK 角度如何理解压缩?( @Xiangyu Zhang )
- 如果我的 GPT 输出的是围棋棋谱, Alignment 的 Reward Model 是读棋谱数目数,那么在 RLHF 是否包含了一个 AlphaGo 的实现?如果不是还差什么?
- 如果我想把中文学术做好,知网数据的价值该怎么来衡量?
- Chain of Thoughts 利用 "Let's think step-by-step" 诱导出更多的 token,从而使得能 Transformer 能写更多中间步骤,最后给出更好的答案。Self-critique or self-relfection 也可以看作是一种广义的 CoT。从压缩角度好像选择了一条 Alice 和 Bob 同时 “降智”、压缩率更低的解。如何理解这一点?
这里面的问题很多都想写一些观点,也想把我们对数据 和 Alignment 的一些想法写出来(上面有一些很相关的问题),但发现到这里文章已经挺长了,并且 “猜想” 的不严谨部分已经挺多了,所以打算先写到这里。如果大家对于哪个问题比较好奇,可以告诉我,之后有时间会再来谈谈。
结语
前段时间在研究 OpenAI 到底在做什么时,发现了其过去的主要路径只是在做一件事:压缩。这段时间拉着很多小伙伴们或多或少的讨论后,大家纷纷觉得有道理,也 写了 几篇 文章 。从无损压缩开始,有了一个非常具体的实现和证明,便能一点点来解释 OpenAI 坚定这样做的原因、Sam Altman 为什么 2019 年 给投资人说我们把 AGI 造出来问他怎么赚钱就行了,为什么他这么担心 AI 安全, OpenAI 的使命是 "Creating safe AGI that benefits all of humanity"。这很马后炮,但如果从 “通过压缩的观点可以合理解释 OpenAI 的行为” 这句话来看,我们其实也是把 对 OpenAI 的观察做了很高的压缩,那么这句话的压缩率其实也挺高的 ,可能还是值得花时间来思考一下。
本篇文章内容没有用 ChatGPT,为人类创作作品。封面为 Midjourney V5 生成。
One More Thing
很多朋友也知道,我最近刚从本科毕业工作了快 9 年的旷视离职,和同学一起成立一家新公司,专注于实现对人类有益的 AGI,当然不免俗也会从用大模型做起(毕竟是目前最 scalable 的压缩算法)。还在观望想下场的同学欢迎来联系我(知乎私信即可),方便的话还可以线下找个地方聊聊(我 base 北京)。
Acknowledgement
- @wangyuzhi@xuxinran @wangguan @zhangmeng @xionghuixin@zhengyanan@duyulun@zhouerjin@yangtong @linzongyu @yangzhilin@zhangyutao@niuyuanlei@malike@zhangzilun @chenfeng
- Reference
- Ilya Sutskever (OpenAI Chief Scientist) - Building AGI, Alignment, Spies, Microsoft, & Enlightenment | Youtube
- Sam Altman: OpenAI CEO on GPT-4, ChatGPT, and the Future of AI | Lex Fridman Podcast #367 | Youtube
- Compression for AGI - Jack Rae | Stanford MLSys #76 | Youtube
- Theory of Mind Breakthrough: AI Consciousness & Disagreements at OpenAI [GPT 4 Tested] | Youtube
- GPT-4 Creator Ilya Sutskever | Youtube
- What is NOT Random | Youtube
- Hutter Prize
- Neural Data Compression
- An Introduction to Arithmetic Coding
- 压缩即智慧 @xuxinran
- 智慧信息的压缩:模型智能的涌现之道 @wangguan
- 为什么说 GPT 是无损压缩 @wangyuzhi
- 毅马当闲
- Pause Giant AI Experiments: An Open Letter
- 【搜出来的文本】⋅(三)基于 BERT 的文本采样
- 基于算数编码的二分查找进行压缩的期望查询次数证明 @zhangmeng
- Can LLMs Critique and Iterate on Their Own Outputs?
- Reflexion: an autonomous agent with dynamic memory and self-reflection
原文链接:https://zhuanlan.zhihu.com/p/619511222