Why decoder-only? LLM架构的演化之路

打印 上一主题 下一主题

主题 549|帖子 549|积分 1647


如何根据大模型架构进行选型
©作者|Zhongmei
来源|神州问学
弁言

本文想为大型语言模型(LLMs)及其下游自然语言处理(NLP)任务的实践者和用户提供一份全面且实用的指南。将从模型架构的角度出发,对比不同架构的特点,盼望可以从最底层给大模型选型一些参考意见。以及针对大模型架构的演变过程做出探究,分析decoder-only成为主流架构背后的原因。

大模型常见架构

LLM(大型语言模型)的架构命名某种水平上是混乱而反常的。所谓的“decoder-only(仅解码器)”实际上意味着“自回归编码器-解码器”。“encoder only(仅编码器)” 实际上包含一个编码器和解码器(非自回归),而所谓的“encoder-decoder(编码器-解码器)”真实含义是”自回归编码器-解码器“
—— Yann Lecun

这个小节会简要介绍常见的不同的大模型的模型架构和用例。目前比力常见的是将其分类为:encoder-only, decoder-only以及encoder-decoder。但是正如杨立昆推特帖子中说的,实在这些名称比力难懂确。个人觉得最好明确的方式如下:机器学习模型都是根据给定的输入来推测输出,在NLP模型中把出处理输入的组件叫做Encoder,它负责将输入的文字序列转化为一种隐蔽表现(语义上丰富表现的特性向量);而生成输出的组件叫做Decoder,负责试用隐蔽表达来生成目的文字序列。所以从这种角度讲全部的模型都可以从”Encoder-decoder“的角度来明确,差别在于Encoder、Decoder的注意力模式以及如何共享参数。所以个人觉得更直观的方法是上表格。



表一:模型架构



图1. 不同语言模型的注意力掩码操持不同,掩码全部取1为双向注意力,掩码下三角矩阵为单向注意力。图中蓝色指处理输入时前缀token相互的注意力,绿色指输入token和输出token间的注意力,黄色则指的是输出token和掩码token间的注意力

架构特性

比年来,大型语言模型(LLM)的快速发展正在彻底改变自然语言处理(NLP)领域。但是,有效且高效地利用这些模型必要对其能力和范围性有实际的了解。

由于自然语言数据易于获得,且已提出了更好地利用极大数据集的无监督训练范式,这促进了自然语言的无监督学习。但NLP领域要求模型不仅能明确语言(NLU),还要能生成语言(NLG),不同架构在平衡这两方面的能力上存在明显差别。



表2:架构特性

1.  Encoder-only:

一种常见的训练方法,是在考虑周围上下文的环境下推测句子中的掩藏词。这种训练范式被称为掩码语言模型(Masked Language Model)。这种类型的训练通过Masked LM和Next Sentence Prediction的学习目的,使模型能够更深入地明确单词之间及其利用上下文中的关系。这类模型在语义明确上展现出强大的能力,在如情感分析和命名实体识别的NLP任务中取得很好的效果。然而,其完形填空式的训练目的与文本生成任务并不直接相关,且这种架构难以直接应用于重新到尾依次基于上文推测下一个token的尺度语言模型目的。最著名的掩码语言模型是BERT,同时,国货之光GLM-130B也属于带掩码处理的这一类型。

2.  Encoder-decoder:

当处理输入和输出的参数不共享时,模型在明确输入和据此生成特定输出方面表现出色。因此,非常得当于机器翻译、文本摘要等必要精确映射的任务。这种精确的映射关系虽然在特定应用中非常有效,但同时也使模型的通用性和机动性受限,这意味着,费力训练得到的模型,仅对特定类型的任务表现良好。好比谷歌做翻译的模型就不能用于进行语音识别,每涉及到一种新的功能,便必要重新训练一个模型,耗时耗力,很不机动。代表性的模型是T5。

3.  Decoder-only:

这类模型通过生成给定的前缀单词序列中的下一个单词来训练,这种自回归语言模型被发现在少样本和零样天性能方面最成功。基于这种架构训练得到的模型能够处理广泛的文本生成任务,还能通过无监督学习明确文本内容不必要针对每一种任务进行专门的训练或调整,展现出极大的机动性和广泛的应用潜力。非常得当内容创作、问答等下游任务。自回归语言模型的例子包罗GPT-3、LLaMA等等。

观察:演化过程



图2. LLM进化树(来自论文[2304.13712] Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond)

著名的进化树图出处论文的作者,总结了以下关于大模型演进的观察:

1.  在LLM发展得早期阶段,encoder-only和encoder-decoder模型更受欢迎。然而,自2021年起,随着游戏规则改变者GPT-3入局,decoder-only经历了明显的增长并逐渐主导LLMs的发展,于此同时在BERT带来的初期爆炸式增长之后,encoder-only模型逐渐开始淡出。

2.  encoder-decoder模型仍具有前景,由于这种类型的架构仍在积极探索中,而且大多数都是开源的。Google对开源该架构做出了庞大贡献。然而,decoder-only模型的机动性和多功能性似乎使得Google对峙这一方向的前景不太乐观。

3.  LLMs展现出向封闭源代码的趋势。在LLM开发的早期阶段(2020年之前),大多数模型是开源的。然而,随着GPT-3的引入,公司越来越倾向于闭源,如PaLM、文心一言、Claude2和GPT-4。因此,学术研究职员在进行LLM训练实验变得更加困,基于API的研究可能成为学术界的主流方法。

4.  OpenAI在LLM领域始终保持领导职位,无论是目前还是未来。其他公司和机构正积极赶上OpenAI,开发与GPT-3和GPT-4相媲美的模型。这种领导职位可能归功于OpenAI对其技能路径的刚强承诺,纵然最初并未广泛认可。

5.  Meta在开源LLMs方面做出了庞大贡献,并推动了LLMs的研究。在考虑对开源社区的贡献时,特殊是与LLMs相关的贡献,Meta作为最慷慨的商业公司之一脱颖而出,由于Meta开发的全部LLM都是开源的。

为什么是decoder-only?为什么尤其是Casual decoder?

起首,像之前提到的,BERT这种encoder-only,由于它用masked language modeling预训练,不擅长做生成任务,做NLU一般也必要有监督的下游数据微调,所以它很自然出局,接下来重要讨论的是剩下的encoder-decoder和Prefix-LM为什么纵然也能兼顾明确和生成,泛化性能也不错,却没有被大部分大模型工作采用。

原因1:过往研究证明decoder-only泛化化性能更好

Google有两篇著名的发表于ICML’22的论文,一个是《Examining Scaling and Transfer of Language Model Architectures for Machine Translation》,另一个是《What Language Model Architecture and Pretraining Objective Work Best for Zero-Shot Generalization?》,两篇论文都是很实践性的分析论文,和常见的论文在模型做创新不一样,两篇论文都是针对现有NLP语言模型的架构和训练方法、探索其在不同场景下的优劣并总结出履历规律。?

第一篇重要探索语言模型在机器翻译任务上传统语言模型能有多好的表现,是否可以与主流的encoder-decoder对抗。作者采用类似Transformer-base的架构做基线模型,在WMT14 英法、英德,WMT19 英中,以及自有英德数据集上做了主实验。以此来探索不同模型架构随着加大参数目在机器翻译上的影响。(图3)



图3.在两个数据集上,各种LM变体以及encoder-decoder的BLEU分数-参数目曲线图
(来自:[2202.00528] Examining Scaling and Transfer of Language Model Architectures for Machine Translation)

作者的重要结论如下:

1.  Encoder-decoder架构在盘算效率上(以FLOPs衡量)优于全部的LM架构,这或许就是为什么encoder-decoder占据了机器翻译的绝对主流

2.  在模型参数目较小的时候,架构对性能的影响最大。不同的模型表现出不同的参数目特性,但这种差距在都利用大规模参数时缩小了。而且句子序列长度对语言模型参数目特性的影响较小。所以在模型参数目较大时,合理地操持语言模型可以使其与传统的encoder-decoder架构做机器翻译任务的性能半斤八两

3.  在机器翻译的zero-shot场景下,PrefixLM 有较好的表现,但是CausalLM掩码看起来就没那么得当。不外,在小语种机器翻译上的迁移性能都优于encoder-decoder架构。而且在大语种翻译上也更少有off-target(翻错语种)的环境

第二篇则针对Zero-shot场景进行更深的研究,探索用什么架构、什么预训练目的最有效。

这篇论文将三种架构:causal decoder-only, non-causal decoder-only,和encoder-decoder和两种预训练目的:autoregressive(自回归语言模型训练)、masked language modeling(掩码语言模型训练)做排列组合测试性能。测试则是看各个模型+训练方式的组合在zero-shot和multitask prompted finetuning后,在新任务上的性能。

作者们发现:

1. 在不做finetuning的环境下,Causal decoder+自回归训练,可以让模型具有最好的zero-shot泛化性能。(这个结论实在符合目前GPT-3这类模型在zero-shot NLG上的突出表现)

2.  有multitask finetuning 的环境下,encoder-decoder+masked language modeling训练则具有最好的zero-shot泛化性能。而且单个任务finetune表现好的架构往往在multitask场景下泛化行也好。

3.  decoder-only架构的模型在做adaptation大概task transfer时,比encoder-decoder必要的开销更小、即更容易任务迁移。

原因2. 本钱

Google这个论文大户又有两篇论文,一个是UL2的论文《UL2: Unifying Language Learning Paradigms》,另一个是T5的论文《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》都拼了老命证明Encoder-Decoder架构相比于Decoder-only的优势,但是它们遭人诟病的在于,这两篇论文的模型尺度都还不算大,以及多数的LLM确实都是在做Decoder-only的,所以这个优势能否连续到更大尺度的LLM以及这个优势本身的缘由。由于如果看回表1,可以看见,如果GPT-3和T5这种模型比力,实在存在两个变量,一个是输入部分的注意力改为双向,另一个是由于输入输出的注意力不共享造成的参数翻倍。这就造成我们无法确定Encoder-Decoder架构的优势,究竟是输入部分改为双向注意力导致的,还是参数翻倍导致的。而如果我们严酷控制变量,将GPT-3与仅输入注意力双向的UniLM对比,我们会发现UniLM相比GPT并无任何优势,乃至某些任务更差。如果我们假设这个结论是充足有代表性的,那么可以结论输入部分的注意力改为双向不会带来收益,Encoder-Decoder架构的优势很可能只是源于参数翻倍。如果同样参数目,decoder-only本钱消耗类似时效果更好。

其次,Decoder only结构比Encoder-Decoder结构更加简单,训练中Decoder only结构只必要一次前向传播,而Encoder-Decoder结构则必要两次前向传播。所以对比之下,自然盘算效率更高。同时,推理过程中,Casual decoder-only支持一直复用KV-Cache,对多轮对话更友爱,由于每个token的表现只和它之前的输入有关,而encoder-decoder和PrefixLM就难以做到。

原因3. 训练目的已经奠定了模型能力上限

第一个是预训练的难度上讲,Casual decoder这种架构预训练时每个位置所能打仗的信息比其他架构少,要推测下一个token难度更高,当模型充足大,数据充足多的时候,能学习通用表征的上限更高;与此同时,Casual decoder这种架构具有隐式的位置编码功能 ,冲破了transformer的位置稳定性,而带有双向attention的模型,如果不带位置编码,双向attention的部分token可以对换也不改变表现,对语序的区分能力天生较弱。再加上前人发 现的Casual decoder架构带来了更强的上下文学习能力,它自然而然成为在不同任务上泛化能力和学习上限最强的模型架构。

第二个是知乎上来自负佬苏剑林的高赞回答,我个人感到极其赞同。苏神提出的是注意力改为双向时的低轶标题带来效果下降。Attention矩阵一般是由一个低秩分解的矩阵加softmax而来,具体来说是一个
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表