新智元报道
编辑:庸庸乔杨
前谷歌科学家 Yi Tay 重磅推出「LLM 时代的模型架构」系列博客,首篇博文的话题关于:基于 encoder-only 架构的 BERT 是如何被基于 encoder-decoder 架构的 T5 所取代的,分析了 BERT 灭绝的始末以及不同架构模型的优缺点,以史为鉴,对于未来的创新具有重要意义。
热衷于写博客的前谷歌科学家 Yi Tay 近日坐飞机太无聊,又撰写了一篇深度文章,探讨了当下很多人关心的一个话题——LLM 时代模型架构的此消彼长和风云变幻。
这次 Yi Tay 试图解开在新的 LLM 时代里正在发生的所有事情,关于「BERT 和 T5 发生了什么」?也关于 Transformer encoder、PrefixLM 和去噪目标的兴衰。
博客地址:https://www.yitay.net/blog/model-architecture-blogpost-encoders-prefixlm-denoising
为何 encoder-only 模型「风光不再」?为何 BERT 这么强,却不能「scale it」?
置身其中,很难看见事情的全貌。对于这些让业内人士都挠头的问题,Yi Tay 分享了自己的观察和思考。
而且 Yi Tay 还表示,这只是系列博客文章的第一弹,后续还可以期待他关于「LLM 时代的模型架构」这一话题的更多内容。
决定开始一个新博客系列的更新,内容关于 LLM 时代的模型架构。 下面是第 1 部分,内容涉及 Transformer Encoders/Encoder-Decoders、PrefixLM 和去噪目标等更广泛的架构。 许多人会问的一个问题是, 「大约 5 年多前从事语言和 NLP 研究的人都在挠头,不知道 encoder 模型都去哪儿了。如果 BERT 效果这么好,为什么不扩大它的规模?」 另外,encoder-decoder 或纯 encoder 模型怎么了?去噪目标好吗? 我在这篇博文中分享了我的想法。
Yi Tay 颇有 LLM 时代的「说书人」之姿,他在博客中简明扼要地梳理了过去几年中模型架构的发展脉络,并提出了自己的洞见。
背景
为了方便没那么贴近技术的人阅读,Yi Tay 先交代了一下故事发生的背景。
在过去的几年里,模型架构主要有三种重要范式。
encoder-only 模型(例如 BERT)、encoder-decoder 模型(例如 T5)和 decoder-only 模型(例如 GPT 系列)。
可是人们对这种划分感到很困惑,并且存在着大量的误解,所以这正是 Yi Tay 写作这篇博文的目的,他希望能够帮助大家建立更加清晰的理解。
首先要明确的一点是,encoder-decoder 模型实际上仍然是自回归模型。encoder-decoder 模型中的 decoder 无论从字面上还是从其本质上看,仍然是一个因果 decoder。
文本会先被传递到 encoder,然后通过交叉注意力机制发送到 decoder,而不是预先填充 decoder 模型。
因此,T5 模型也是语言模型!
它的一个变体是 Prefix 语言模型,或者说是 PrefixLM 架构,它们做的事情几乎一样,除了交叉注意力机制这一点不同之外。(以及其他一些小细节,如 encoder/decoder 之间共享权重,以及不存在 encoder 瓶颈)
PrefixLM 有时也被称为非因果 decoder。简而言之,encoder-decoder、encoder-only 和 PrefixLM 之间并没有那么不同!
如果对于这一点,你还是心存疑虑,Yi Tay 还给出了一个参考资料——Hyung Won 今年 4 月在斯坦福的精彩演讲,他对这些模型之间的关系进行了巧妙的解释。
演讲地址:https://www.youtube.com/watch?v=orDKvo8h71o
与此同时,诸如 BERT 这样的 encoder-only 模型的去噪方式是不同的(即 in-place),并且在一定程度上依赖于额外添加的「任务头」,以便用预训练后的基础模型执行各种操作。
BERT 的去噪目标后来也被应用于 T5 等模型,不过进行了一定修改,采用序列到序列的格式。
说到这里,值得注意的是,T5 中的去噪本身并不完全是一个新的目标函数(在机器学习的意义上),而是一种跨输入的数据转换,也就是说,你也可以在因果 decoder 中 span corruption 目标来训练!
人们总是认为 encoder-decoder 模型必须是去噪模型,形成这种错觉的部分原因是 T5 模型过于具有代表性。
然而,事实并非总是如此。
你可以用常规的语言建模任务(即 CLM)来训练 encoder-decoder,也可以用 span corruption 任务来训练因果 decoder。
正如前面所说的,这主要是一种数据转换。
还需要注意的是,一般来说,2N 个参数的 encoder-decoder 与N个参数的 decoder-only 模型具有相同的计算成本,因此他们的的 FLOP/参数比不同。
基于对以上背景情况的了解,我们现在就进入正文了——
关于去噪目标(它没用吗?它不能扩展吗?是不是太简单了?)
开宗明义,Yi Tay 所说的去噪目标(denoising objective)指的是 span corruption 的任何变体。
有时也被称之为 infilling,或者是 fill in the blank,表达方式有多种(还有 span length、randomness、sentinel tokens 等),只要你明白,它们都是一个意思就好。
虽然 BERT 风格模型中的去噪目标大多是 in-place,但稍微更现代的方法是「T5 风格」,也就是由 encoder/-ecoder 或 decoder-only 模型处理的数据转换。
在这种数据转换中,掩码 token 只是被「移到后面」,供模型进行预测。
预训练的主要目标是构建有用的内部表征,以最高效和最有效的方式与下游任务对齐。
内部表征越好,就越容易将这些学习到的表征用于以后有用的事情。
众所周知,简单的使用 next token 预测的「因果语言建模」(causal language modeling,CLM)目标就能很好地做到这一点,并且已成为 LLM 革命的基础。现在的问题是去噪目标是否同样好。
从公开的信息来看,我们知道 T5-11B 即使在对齐/SFT 后也能很好地工作(Flan-T5 XXL 的 MMLU 分数为 55+,对于当时这种规模的模型来说已经相当不错了)。
因此,我们可以得出一些结论:去噪目标从预训练到对齐的能力迁移,能够支持模型在 11B 这个规模上较好地工作。
Yi Tay 的看法是,去噪目标很棒,但作为一个独立的目标还远远不够。
我们可以将其缺点形容为「损失曝光」(loss exposure)较少。在去噪目标中,只有少量 token 被掩码并用于学习过程(即更新损失值)。
相反,在常规语言建模中,token 利用率接近 100%。
去噪目标的这个特点使得每 FLOP 的采样效率相当低,因此在基于 FLOP 的比较中处于非常不利的地位。
另一个缺点是去噪目标比常规语言建模更不自然,因为它以一种奇怪的方式重新格式化输入/输出,这使得它们对于少样本学习来说有点尴尬。(尽管如此,仍然可以对这些模型进行调整,使其在少样本任务上表现得相当不错)
因此,Yi Tay 认为去噪目标几乎只能用作常规语言建模的补充,而非独立的训练目标。
统一的早期以及 xBERT 灭绝的原因
类 BERT 模型的逐步淘汰是一个有趣的阶段,但如今没有多少人谈论这个阶段,这很微妙。
这也可以解释为什么我们不再看到任何超大型 BERT 模型在运行。原因是什么?
这主要是任务/建模范式的统一和转变的问题。
BERT 风格的模型很笨拙,但它们真正被弃用,是因为大家希望用一个模型完成所有任务,因此引入了一种更好的去噪方法——使用自回归模型。
2018 年至 2021 年期间,出现了从单任务微调到大规模多任务模型的隐蔽的范式转变。
所有人的注意力被慢慢吸引到统一的 SFT 模型上,这也是我们今天看到的统一的通用模型。
用 BERT 来做到这一点实在是太难了。
然而,BERT 的这种「笨拙」与「去噪」任务并没有太大关联。如果你依旧想使用这类模型,完全可以用另一种方式表达「降噪」任务(如 T5).
因此,BERT 风格的模型在这这个时间点几乎被弃用,因为有一个严格更好的替代方案出现了。
更具体地说,encoder-decoder 和 decoder-only 模型能够同时表达多个任务,而不需要用于特定任务的分类头。
同时,研究人员和工程师们发现,对于 encoder-decoder 模型,如果干脆拔掉 encoder 只留下 decoder,其性能和 BERT 的 encoder 也一样有竞争力。
不仅如此,只留下 decoder 还保留了使 BERT 在小规模(通常是生产规模)任务中优于 GPT 模型的双向注意力优势。
去噪目标的价值
与常规语言建模的方式类似,去噪预训练目标也会学习预测下一个单词。
不过,与常规 CLM 不同的是,后者会对序列进行数据转换,从而学会 「填空」(fill in the blanks),而不是简单地预测从左到右自然出现的文本。
值得注意的是,去噪目标有时也称为「填充任务」(infilling tasks),有时会与常规的语言建模任务混在一起进行预训练。
虽然具体的配置和实施细节可能各不相同,但今天的 LLM 可能会在某种程度上结合使用语言建模和填充。
而且,有趣的是,语言建模和填充的混合似乎是在同一时期传播开来的(例如 UL2、FIM、GLM、CM3),许多团队都以某种方式带来了自己的混合「风味」。
顺便提一句,以这种方式训练的最大的、有公开披露和报告的模型应该是是 PaLM-2。
值得注意的是,混合训练不一定要同时混合,而是可以按顺序堆叠。
例如,Flan-T5 最初在 1Tspan corruption token 上进行训练,然后在指令微调之前切换到 100B token 的前缀语言建模任务上。
在某种程度上,这可以说是去噪/语言建模目标混合模型。
Yi Tay 还分享了一个非官方的经验:去噪目标学习的表征在某些类别的任务中表现更佳,有时会以更有效的方式进行采样。
以此目标训练的微调模型通常会产生更好的 SFT 模型,尤其是在较小规模的情况下。
说到单任务微调,我们可以看到 PaLM-1 62B 模型被更小的 T5 打败了。
双向注意力+去噪目标在相对较小的范围内就能发挥出巨大的作用!相信现在很多从业者也看到了这种情况,尤其是在生产中。
encoder/decoder 架构的优缺点
与常规的 decoder-only 模型相比,encoder-decoder 架构实际上有一些优点。
encoder 侧不受因果掩码的限制,在某种程度上,你可以通过积极的池化或任何形式的线性注意来疯狂地堆叠注意力层,而不必担心自回归设计的限制。
这是一种将不太重要的「上下文」传递到 encoder 的好方法。你还可以让 encoder 变得更小,这也很不错。
Charformer 中的一个例子说明了 encoder-decoder 架构的必要性,我们可以在 encoder 上大做文章,减轻在字节级别进行编码时的速度缺陷。
但同时,encoder-decoder 与 PrefixLM 相比的一个缺点是,输入和目标必须有固定的分配长度。
例如,如果预定的输入长度是 1024 个 token,encoder 侧就必须填充到这个值,这就可能造成大量的计算浪费。
相反,在 PrefixLM 中,输入和目标可以直接连接起来,从而缓解了这一问题。
与当今模型的相关性和关键要点
无论是从模型架构角度还是从预训练的角度来看,要想成为一名称职的 LLM 研究者和从业人员,利用归纳偏差进行推理的能力都是必不可少的。而了解不同模型架构之间基本的细微差别有助于未来的不断创新。
Yi Tay 分享了他的主要收获:
-
encoder-decoder 和 decoder-only 模型都是自回归模型,但在实现层面上存在差异,各有利弊。 它们的归纳偏差有微妙的不同,最佳用法实际上取决于下游用例和相当多的应用限制。 对于大多数 LLM 应用和小众用例而言,BERT 风格的 encoder-only 模型大多已被视为过时。
-
去噪目标主要是 CLM 的补充,作为预训练中的「辅助目标」,通常会带来些许帮助。虽然这种情况经常发生在代码模型中(即代码填充),但在今天的通用模型中,使用带有某些去噪目标的 CLM 进行预训练的情况并不少见(尽管这不是必选项)。
-
双向注意力机制在较小的尺度上有很大帮助,但在较大规模的模型上通常只是一种选择。Yi Tay 认为双向注意力有一种归纳偏差,就像 Transformer 架构中许多其他类型的修改一样。
最后,总结一下,我们没有看到任何成功扩展的 xBERT:BERT 模型已被弃用,转而采用更灵活的去噪(自回归)T5 模型。
这主要是由于范式的统一,大家希望使用通用模型,而不是特定任务模型。
与此同时,自回归去噪有时也会作为附带的训练目标,被折叠到 CLM 中
作者介绍
Yi Tay 目前是 AI 初创公司 Reka 的联合创始人兼首席科学家。Reka 致力于构建最先进的生成式模型并推进人工智能研究。
在此之前,他是谷歌大脑的高级研究科学家,从事 LLM 和 AI 相关工作,还曾担任 Google Research 美国研究团队的技术主管,致力于 Transformer 扩展和架构。
服务谷歌期间,Yi Tay 为大约 20 个产品发布做出了贡献。
在 Yi Tay 担任谷歌研究科学家期间,他发表的大部分作品都围绕着 Transformer 展开,尤其是与效率、可扩展性和架构研究相关的内容。
除了喜欢写博客之外,Yi Tay 还爱好古典乐,他说,「如果我没有成为一名研究员,我也许会想成为一名职业音乐家」。有趣的是,他确实获得过相关文凭。
期待 Yi Tay 能再次乘坐长途飞机,这样就又能够看到他更新博客了。
参考资料: