热衷于写博客的前谷歌科学家Yi Tay近日坐飞机太无聊,又撰写了一篇深度文章,探讨了当下很多人关心的一个话题——LLM时代模型架构的此消彼长和风云变幻。
他上一篇自述创业辛酸史的博文就引发了业界的广泛关注,获得了Karpathy的转赞。
这次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能再次乘坐长途飞机,这样就又能够看到他更新博客了。