【压缩泛化】对大语言模型智能涌现的理解

AGI = Maximizing Compression!

1. 智能定义

一年时间,大语言模型(LLM)席卷互联网行业,包括自己在内,日常工作生活已经快离不开大模型应用了。前段时间,看到有赞干掉了30多人的UI团队,后又干掉了HRBP团队,想当初自己还拿到过有赞的offer,对于公司果断、雷厉风行的风格还是有很深的印象的,在竞争异常激烈的当下,企业必须认清现实,预判未来,未雨绸缪,才能长久生存。有赞对于团队的变化,给出的理由是要用更新的工具和更新的工作方式和流程。不求变,迟早会被迫改变。因此在当下,要快速积极去拥抱大模型这一技术变革带来的变化,主动去适应和提升自己。事实上,在工作中,大模型确实对自己的工作效率有明显提升。如果对chatgpt熟悉的话,可以看到很多将其应用于文字写作、编程辅助、多媒体创作、开发应用程序、脚本灵感生成、分析总结报告、教育培训等多领域的应用案例。在不同的领域以及不同的语言提示背景,chatgpt可以输出相应的能力。

之所以当下大量公司或者业务场景融入了大模型作为效率倍增器,隐含的前提条件是其具备一定的可靠性和可用性,而这背后正是LLM所体现出的智能。当然不同人对于"智能"的理解可能存在些许差异。这里给出相对学术的定义:智能最具通用性的定义是"适应环境的能力",这一定义可包含智慧和行为能力两方面,狭义的智能是抽象、逻辑、理解、推理等能力,广义的智能可描述为在一定的环境或情境中感知和推断信息、保存为知识以应用于适应性行为。针对LLM仅是大型的语言模型,那么我们将智能限定在狭义层面,即抽象、逻辑、理解、推理等能力。

2. 智能缘由

对于大语言模型体现的智能缘由,有很多不同的看法,有一些关注点在表层的术,也就是模型结构或者训练流程等,比如去解释transformer,但transformer的NTP(next token prediction)产生智能太过于牵强。早期有观点认为通过NTP任务,LLM在模型参数里学到了某种知识图谱,当输入Prompt的时候,Prompt包含的概念启动知识图谱相关节点,然后在知识图谱上按照激活扩散理论引发知识间的激活扩散和信息传递,由此导致LLM产生了智能。这类观点相对来说有点路径依赖,难以支撑OpenAI不惜代价投入研发AGI。

2.1 压缩思路

今天来回顾一下OpenAI的科学家分享对于LLM的理解,提供了一种新的压缩思路,来解释大语言模型背后的哲学思想,虽然追溯起来,在AGI领域对于压缩作用的探讨很早就有,但OpenAI应该是将该理念工程化落地的最佳实践。此次分享主题为《Compression for AGI》,来自于Stanford MLSys Seminar,主讲人为Jack Rae。Jack Rae 是 OpenAI 的团队负责人,主要研究大型语言模型和远程记忆(large language models & long-range memory architectures)。此前,他在 DeepMind 工作多年,领导大语言模型 (LLM) 研究组。

首先,我们给出一个例子,来帮助理解什么是压缩。比如Alice和Bob需要通信一组数据,数据如下1,2,3,4,...,100000000。一种直观的做法就是将数据原模原样由Alice发送给Bob,那数据传输量不小。如果采用一种压缩的方法,比如发送一个语言编码器"生成1到100000000的之间连续的整数",然后将这个编码器发送给Bob,Bob接收之后,再通过解码器还原回1,2,3,4,...,100000000,那整体通信代价就非常小。这个例子至少包含以下要点:(1)对于发送的信息,需要理解抽象; (2)生成最小长度的编码来承载发送的信息; (3) 尽可能的无损压缩。

那么如何去刻画这种一项任务的目标函数,以及如何优化该目标函数?基于该问题,引出本次的分享的要点,也就是:

(1)对完成某个任务有效方法的最小描述长度代表了对该任务的最大理解;

(2)使用生成模型进行无损压缩可以对最小描述长度进行计算;

(3)大语言模型是 SOTA 的无损文本压缩器。

2.1.1 最小描述长度

所谓的最小描述长度,其实就是对于观测对象的最深层次的理解。例如对于英文翻译成中文的任务,仅仅通过直接查找词典把所有可能的短语翻译成中文,那么对该翻译任务理解是最差的,因为需要维护一个足够庞大的词典,而且由于英文与中文天然存在语言表达的差异,按词直译的效果往往不尽如人意。但如果将词典提炼为一系列的规则集(例如语法、词汇、短语等),那它将会有更好的理解能力,因此根据规则集的压缩程度对其进行最小描述长度的评价。如果将该规则集压缩到最小描述长度,那么可以获得对翻译任务有着最好的理解。

Jack给出了一种更数学化对压缩的描述公式,图中|D|表示数据集D的无损压缩,无损压缩的大小可以表示为对 D 评估的生成模型的负对数似然加上估计函数f的最小描述长度。对数据集D评估的生成模型的负对数似然等于对 next token 预测损失的总和。这里的最小描述长度可以理解成初始化模型的代码量,和模型大小无关,和具体语言或者三方包也无关(code from scratch)。

接下来通过LLaMA的例子,基于上述公式可以对比不同语言模型选出更好的压缩器,以及如何计算出精确的压缩率。

(1)模型效果对比:LLaMA 33B 和 LLaMA 65B 两个模型有着相同的数据描述长度,用于训练的代码大小相同。65B 模型有着更低的训练损失,根据公式把两项loss因子相加,可以得出 65B 模型是更好的压缩器。

(2)压缩比例的计算:LLaMA 65B 用于初始化和训练模型的代码约为 1MB,负对数似然大约是 400GB,而用于训练的原始数据是 5.6TB 的文本,因此该模型的压缩率为 14 倍。

2.1.2 使用生成模型进行无损压缩计算最小描述长度

使用算术编码实现无损压缩。假设在 t时刻有一个 token x_t,并且概率分布是p_t。简单来说,算术编码就是将 token x_t编码成z_t,z_t占用对应bit大小。解码 z_t时仍然需要用到分布p_t。

以 p_t是均匀分布为例,此时存储x_t需要的空间与直接二进制存储是一样的。当确切知道x_t是什么时,也就是概率为1,那么不需要耗费存储空间。这是两个极端的例子,说明需要尽可能好的生成模型来表征数据来降低空间的耗损。

因此,对于Satya 和Sundar的例子,Satya在数据D上训练transformer模型,然后记录下一个词出现的概率分布,使用算术编码来对数据进行编码。

然后 Satya 把模型代码和算术编码后的 z 发送给 Sundar,训练代码约为 1MB,编码量级为。也就是不发送神经网络的超大规模参数,而只是发送训练的代码。

在 Sundar 这端,他运行模型训练的代码:使用相同的初始化网络进行初始化,在 t=1时刻模型使用 P_1 对 Z_1进行算术解码得到 X_1,然后经过一个训练步长使得网络预测出 P_1,之后迭代地遍历并恢复整个数据集。

2.1.3 通过压缩实现对训练集以外的信息实现最大泛化能力

图中橙色部分代表模型的训练集,白色部分是训练数据所对应的真实世界信息,压缩的目标并不是保证能对训练数据做更好的预测,而是对训练数据所代表的真实世界信息能够最大程度的泛化表示。因此神经网络在橙色圆圈对应的训练数据上可能存在丢失部分信息,甚至不能很好地重建出训练集。LLM模型的训练更在意的是模型的泛化能力。

Jack认为对于通用人工智能的关键包含两个部分: (1)收集所有有效的感知信息;(2)通过使用更加强大的基础模型学习来尽可能压缩数据。也就是说可以从使用更好的模型架构、模型尺寸、第三方工具、信息检索、人工合成数据等各种可能的方案,来实现更好的无损压缩效果,不应该限制所使用的方法,这也说明其实GPT模型只是现阶段的一种优选网络结构,也许未来会出现更好的模型网络结构来代替。只要是能够提升压缩效果的手段,都是AGI 基础模型的可选项,生成模型只是被压缩过程的一个组成部分,而被压缩的完整过程是对应一个以生成模型为核心的系统,其中可能包含规则、第三方工具等。

2.2 局限性

前述章节讨论了使用大语言模型进行压缩的方案,接下来会谈其存在的局限性。

(1) 压缩有可能是正确的,但效率不高 对于像素级图像进行建模需要的代价是相对高昂的,特别是对于像素级的视频建模就更加夸张了。因此一开始会从语义信息进行建模。随着算力、价格等的变化,也会有相应的变化。

(2)现实世界的很多有用的信息是不可观察的, 比如 Alphazero可能只能观察到其可以进行围棋的自我博弈,但在训练它时用到了很多其他游戏的中间搜索结果。它看起来更像是一个代理人,可以通过搜索中间结果实现不同行为。

2.3 总结及展望

Jack提到,基础模型工作总纲:明确 AGI 基础模型的目标并搜集尽可能多的有效数据,然后使用所有可能的无损压缩方式,从而得到对任务方法的最小描述长度。大道至简,复杂现象的底层存在着简单的原理。

有效数据的搜集是 AGI 基础模型工作总纲中的两项工作之一,该项工作至关重要。从GPT4的技术报告中可以看到有大量的工作组投身在数据的收集、处理、对齐等任务。那么什么是有效数据,个人觉得应该是包含人类智慧结晶的数据,比如结构化的大规模的知识图谱数据、逻辑和架构清晰的人类编程语言数据都属于包含大量人类抽象总结信息在内的有效数据。密度越高,有效性越高的数据,对于数据压缩会有更显著的效用。另外,对于数据进行细致的文字描述,说明图像包含什么物体,特点是什么,描述了什么场景,那么这样一份图像和文字数据所包含的人类智慧密度就更高。新增多轮对话数据,可以让模型提升原本不具备的对话能力,这类数据的有效性也会帮助模型更好的压缩,提升语言表达能力。数据的异质化越高,有效性也会越高。AGI 基础模型是对人类智慧行为的概率预测,那么包含人类智慧信息的数据是对这种概率预测确定性的增强。

同时,Jack也提到会进一步探索更高效的压缩方案,探索新的LLM的算法架构、不同的模型尺寸,在有效数据上进行提取有效信息,不断增强AGI模型地理解和表达能力。比较直观理解其中的关系,可以描述为:压缩方法会决定压缩的行为的效率以及有效压缩力度的上限;压缩力度决定了你是否能成功完成压缩任务;压缩数据决定了你该选用何种压缩方法以及模型能力增强的程度。

3. 参考文献

【1】Compression for AGI - Jack Rae | Stanford MLSys #76

【2】《微软官方推出介绍Prompt 教学指南》

【3】智慧信息的压缩:模型智能的涌现之道

相关推荐
鸽芷咕14 分钟前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
FL162386312920 分钟前
AI健身体能测试之基于paddlehub实现引体向上计数个数统计
人工智能
黑客-雨23 分钟前
构建你的AI职业生涯:从基础知识到专业实践的路线图
人工智能·产品经理·ai大模型·ai产品经理·大模型学习·大模型入门·大模型教程
子午25 分钟前
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
人工智能·python·cnn
梦想科研社33 分钟前
【无人机设计与控制】四旋翼无人机俯仰姿态保持模糊PID控制(带说明报告)
开发语言·算法·数学建模·matlab·无人机
Milo_K34 分钟前
今日 leetCode 15.三数之和
算法·leetcode
营赢盈英35 分钟前
Azure OpenAI and token limit
ai·chatgpt·asp.net·azure·openai api
Darling_0037 分钟前
LeetCode_sql_day28(1767.寻找没有被执行的任务对)
sql·算法·leetcode
AlexMercer101238 分钟前
【C++】二、数据类型 (同C)
c语言·开发语言·数据结构·c++·笔记·算法
Greyplayground39 分钟前
【算法基础实验】图论-BellmanFord最短路径
算法·图论·最短路径