本文来自微信公众号:OneMoreAI(ID:OneMoreAI1956),作者:冠叔,原文标题:《智慧信息的压缩:模型智能的涌现之道》,头图来自:视觉中国
2月28日,OpenAI 的核心研发人员 Jack Rae 在参加 Stanford MLSys Seminar 的访谈时进行了一个名为 Compression for AGI 的主题分享,其核心观点为:AGI 基础模型的目标是实现对有效信息最大限度的无损压缩。并同时给出了为什么这个目标是合理的逻辑分析,以及 OpenAI 是如何在这个目标下开展工作的行动原则。
我们认为这个不到 1 小时的 talk 是从去年 11 月 ChatGPT 出现以来,让人能够最大限度理解 OpenAI 工作思路的一个纲领性内容,在深入了解这个 talk 后,我们会对 OpenAI 的历史行为产生全新的认知,甚至有可能对其未来的动作进行某种程度的预测。
目前这个 talk 在 YouTube 上的播放量不高(截至3月25日的播放量是 4.5k),在国内的讨论更是寥寥无几,OneMoreAI 的学习小组对此内容进行了深入的学习讨论后形成了一些有趣的想法,在此与各位分享。
一、来自 OpenAI 的观点
让我们先来回顾一下这次 talk 的主要内容,在回顾之前我们介绍一下分享者:
Jack Rae 是 OpenAI 的团队负责人,主要研究大型语言模型和远程记忆。此前,他在 DeepMind 工作了 8 年,领导大型语言模型(LLM)研究组。从身份和经历来看,Jack Rae 可能是最有资格讨论 AGI 基础模型理念的人之一。
接下来我们回顾一下他在 talk 里的一些核心观点(本文不做详细展开介绍,更多内容请大家自行观看视频):
观点1:对完成某个任务有效方法的最小描述长度代表了对该任务的最大理解。
比如对英文到中文的翻译任务来说,通过将每个可能的词组查字典进行翻译,执行方法更复杂,同时效果也不好,所以这是一种描述长度更大的方法,同时也是一种更差的理解方式,而加入语法、固定词组搭配等规则信息后,翻译方法的描述长度更小了,并且翻译的结果也会更加准确,所以是一种更好的理解方式。
由此他提出,更小的有效方法描述长度代表了对任务的更好理解,当我们对有效方法无损压缩到最小长度时,就得到了对该任务的最优理解。
观点2:使用大语言模型进行无损压缩可以对最小描述进行计算。
这是第一个让人醍醐灌顶的信息:
大语言模型对任务的理解能力(描述长度)可被量化,所以存在一种计算方法,能够对一个大语言模型的理解能力可达到的上限进行计算从而预测其性能。
这对整个基础模型的工作思路带来了一种全新的思考方式,这里我们先对 talk 中的内容进行简单回顾:
|D|表示数据集D的无损压缩;
无损压缩的大小可以表示为对D评估的生成模型的负对数似然(即-log Pf(D) )加上估计函数的最小描述长度(即| f | );
对D评估的生成模型的负对数似然等于对 next token 预测损失的总和,即可以使用 loss 曲线的面积来计算;
估计函数的最小描述长度等于语言模型的描述长度,即可以使用训练代码的大小来计算。
接下来是一个例子,通过上述的公式可以对比不同语言模型谁是更好的压缩器,以及如何计算出精确的压缩率。
模型效果对比:LLaMA 33B 和 LLaMA 65B 两个模型有着相同的数据描述长度(用于训练的代码大小相同)。65B 模型有着更低的训练损失,根据我们上面的公式,把两项相加,我们可以知道 65B 是更好的压缩器。
压缩比例的计算:LLaMA 65B 用于初始化和训练模型的代码约为 1MB,粗略地计算负对数似然大约是 400GB,而用于训练的原始数据是 5.6TB 的文本,因此该模型的压缩率为 14 倍。
通过这个公式我们还能得到另一个有趣的结论:假设我们在D上预训练 ,使得对数似然为 0,那么这个模型对于D的描述是完美的,但此时| f |的描述长度包含了D的描述长度,即| f |对于D的压缩毫无帮助,这也引出了下一个观点。
观点3:AGI 基础模型的目标不是对训练集的重建,而是通过压缩实现对训练集以外的信息实现最大限度表示。
图中的红色部分代表模型的训练集,白色部分是训练数据所对应的真实世界信息,压缩的目标并不是保证能对训练数据做更好的预测,而是设定为对训练数据所代表的真实世界信息能够最大程度的泛化表示。
这里 Jack Rae 给出了个人认为本次 talk 最重要的一个信息,即AGI 基础模型工作的总纲:明确 AGI 基础模型的目标(任务)并搜集尽可能多的有效数据,然后使用所有可能的无损压缩方式,从而得到对任务方法的最小描述长度。
以上是对 talk 中我们认为比较重要的信息所做的总结,但是我们认为这远远不足以完整展现其内容价值,我们强烈建议大家观看完整视频。
二、衍生思考
OneMoreAI 的学习小组对 talk 内容做了很多讨论,以下是一些衍生出的有趣的思考片段,大部分内容属于头脑风暴的性质,缺乏严谨性,仅供大家作为对视频内容观看后进行更进一步思考的参考方向:
什么是有效数据?
talk 中提出了一个很重要的概念:有效数据。
在 Jack Rae 看来,有效数据的搜集是 AGI 基础模型工作总纲中的两项工作之一,其重要性不言而喻,遗憾的是 talk 中并没有这个有效数据的展开说明,我们在此对这个概念进行尝试说明。
我们的观点是:有效数据=含有人类智慧的数据
这个观点参考信息熵的定义,具体来说, AGI 基础模型是对人类智慧行为的概率预测,那么包含人类智慧信息的数据是对这种概率预测确定性的增强。
从这个观点出发,我们可以衍生出另一个概念:数据有效性的评估,即针对不同数据如何评估其对 AGI 基础模型的有效性,我们认为有两个评估维度:
数据与现有模型数据中所包含智力的同质程度,同质化越高,有效性越低,比如通过使用通用文本数据集训练后,模型已经具备流畅的自然语言表达这种能力时:
新增一份资讯类文本数据便只能提升其世界知识,而无法提升语言表达能力,该类数据的有效性就变低了。
新增一份多轮对话数据,可以让模型提升原本不具备的对话能力,该类数据的有效性就是更高的。
数据中包含人类智慧的密度,密度越高,有效性越高,比如对同样一份图像数据:
当我对数据的描述是一个标签(图像分类)时,其人类的智慧密度是很低的。
当对该数据中的特定目标进行框选标注并对目标名称打上标签(目标检测)时,其人类的智慧密度就变高了。
当对该数据进行细致的文字描述,说明图像其中包含什么物体,是何种颜色,描述了什么场景,那么这样一份文图数据对的智慧密度就更高了。
压缩器的形象表达
talk 中有一个观点:LLM 是目前 SOTA 的压缩器,为了更容易对压缩器这个概念进行理解,这里提供一种更直观但不严谨的表达:
如果我们把压缩这一动作,分为:
压缩的方法
压缩的力度
压缩标的
按照这个划分,我们可以做如下类比:
LLM的算法架构可以类比为选择什么样的压缩方法,比如是用擀面杖(RNN)还是液压机(Transformer)。
模型尺寸可以类比为压缩的力度,比如擀面杖和液压机能够压出的力道(能够支持的模型尺寸)是不一样的。
压缩的标的是我们上面提到的有效数据,比如压面团(文本分类)可能擀面杖和液压机都可以,但是要压铁块(多轮对话),可能擀面杖就不好用了,得用液压机。
所以比较直观理解的一个关系描述是:压缩方法会决定压缩的行为的效率以及有效压缩力度的上限;压缩力度决定了你是否能成功完成压缩任务;压缩标的决定了你该选用何种压缩方法。
更广义的压缩
talk 中指出:当目标是为了实现更好的无损压缩效果时,我们不应该限制所使用的方法,一些可使用方法的举例:
模型架构
模型尺寸
第三方工具
检索
人工合成数据
只要是能够提升压缩效果的手段,都是AGI 基础模型的可选项,这里其实给到了一个更广义的压缩概念,生成模型只是被压缩过程的一个组成部分,而被压缩的完整过程是对应一个以生成模型为核心的系统,其中可能包含规则(如检索)、第三方工具等。
这样一个广义的压缩对象降低了生成算法在 AGI 基础模型中的能力占比,但是会大幅提升整个 AGI 基础模型系统的智慧程度,ChatGPT(对话智能) 和 Plugin(使用工具的智能) 便是这样理念指导下的典型用例。
OpenAI 的行为解释
根据各种公开信息,我们认为 OpenAI 正是在上文提到的总纲的指导下有规划地开展了所有工作,以下是一些现象及其原因猜想:
GPT-3 预训练数据的体积相对稳定:
对于流畅的表达而言,目前的数据已足够,新增通用文本数据并无法提升数据中的人类智慧密度。
ChatGPT 只在对话任务上做了优化,为何却直接拥有了远强于 GPT-3 的场景化任务的能力,比如端到端的写作文案,邮件,小说,论文等:
这些能力来自于使用 GPT-3 接口去做各种写作应用产品的用户数据,包括应用开发者如何设计写作内容生成的规则,用户如何输入,输出到何种程度是更好的内容等数据,这些对于原始的 GPT-3 来说,都是人类智慧含量更高的数据。
OpenAI 不需要 langchain:
从传统产业链逻辑来说,OpenAI 提供基础模型能力,langchain 提供开发工具,这原本是没有太大冲突的,但是从获取更多含有人类智慧数据目标的角度,langchain 的存在会让“开发者是如何构建某种应用”这样一份极具价值的“有效数据”脱离 OpenAI 的控制范围。
一个悲伤的事实是:langchain 和 Plugin 对 OpenAI 来说都不重要,而没有 langchain 对 OpenAI 很重要。
PS:Plugin 和被集成应用的关系绝不是目前很多人认为的 iOS 和 APP 的关系。
更多的工具,更小的模型:
当加入检索后,模型只需掌握如何调用检索接口以及如何基于检索结果进行生成;当加入计算工具后,模型便可以将解决问题的办法简化到如何使用计算器,而不是生成计算结果。
这从生成模型的技术角度评估是一种妥协和消极,但从“提供解决问题方法的最小描述长度”这个目标来说就很进步。
大模型应用的发展怪圈
ChatGPT 出现以来,我们已经看到了太多的大模型应用在经历“其兴也勃焉,其亡也忽焉”的发展怪圈,每一代新的 GPT 发布同时也带来了上一代 GPT 应用的退场。
辩证的来看其底层逻辑:应用开发者在享受底层模型带来强大基础能力红利,从而能够低成本快速制作应用的同时,也需要接受缺乏核心模型技术以及业务逻辑和用户数据不受掌控的风险,这种风险的直接体现就是应用能力被新的底层模型能力覆盖。
在此模式下,OpenAI提供算法+微软提供产品的组合,带来了一种特殊的生态循环规律:
OpenAI 提供最新的低成本的算法能力;
开发者基于新的模型能力创建新应用;
平台长出好的应用;
OpenAI 使用这些应用的创建方法和其上的用户使用数据迭代其算法能力;
微软将优化后的算法能力接入其产品,选择性覆盖掉一些高价值场景应用,并启动下一轮循环。
曾经,大家兴奋地认为大模型提供的强大基础能力将会创造一个更大的移动互联网时代,但现在看来,相比于 iOS 或者云服务,OpenAI 更像是一个超级应用提供者,这个超级应用基于在其上所产生的垂直应用以及这些应用所产生的用户数据完成能力迭代,对于以 AGI 为目标的 OpenAI 来说,所有的应用似乎只是下一阶段 AGI 能力的“有效数据”的免费提供者。
三、作为行业从业者的反思
曾经有一个物理和哲学双修的朋友和我分享过一个观点:复杂现象的底层存在着一些极度简单的原理,当你熟知并能灵活使用这些原理时便可以像推导公式一样对事物的发展进行演绎和预测。
Jack Rae 的分享是对这个观点一个很好的证明:大模型并不复杂,甚至可以被一个极其简洁的公式来精确计算。
回到我们的工作,大模型、思维链、模型智慧的涌现、AGI...... 从 ChatGPT 发布以来,我们每天都在被全新的技术概念、不可解释的新能力,以及各种技术分析测评的文章进行着信息轰炸。
我们能对不同的模型参数量、训练数据集、评测结果、模型演进路线如数家珍,可以每周都听到不同的行业峰会圆桌讨论,也能每天都从 ProductHunt 上看到全新产品思路。
这些唾手可得的信息让我们博学,而做出 AGI 可能还需要我们变得更加深刻,并进一步使用这种深刻去进行 OpenAI 式的思考,我们也许早已拥有了足够的可参考信息,问题只是何时开始自己的压缩进程。
静胜燥,寒胜热,清静以为天下正,为了中国自己的 AGI,与大家共勉!
感谢 OneMoreAI 的好朋友 :@Tim 周昕宇、@周舒畅、@田老师 对本文提供的帮助。
Reference
1. [Compression for AGI - Jack Rae | Stanford MLSys #76](https://www.youtube.com/watch?v=dO4TPJkeaaU&t=247s)
2. [压缩即智慧](https://zhuanlan.zhihu.com/p/616903436)
3. [语言处理中的压缩(WIP)](https://zhuanlan.zhihu.com/p/613280662)
4. [Compression for AGI](https://mp.weixin.qq.com/s/G613tUo4TzjddaysGs26AQ)
本文来自微信公众号:OneMoreAI(ID:OneMoreAI1956),作者:冠叔