大模型架构
Prefix Decoder 和 Causal Decoder 和 Encoder-Decoder 区别 在于 attention mask不同:
https://zhuanlan.zhihu.com/p/626310493
为何现在的大模型大部分是Decoder only结构?
https://www.zhihu.com/question/588325646/answer/3357252612
decoder-only的泛化性能更好
因为decoder-only结构模型在没有任何微调数据的情况下,zero-shot的表现能力最好。而encoder-decoder则需要在一定量的标注数据上做multitask-finetuning才能够激发最佳性能。
目前的Large LM的训练范式还是在大规模语料shang 做自监督学习,很显然zero-shot性能更好的decoder-only架构才能更好的利用这些无标注的数据。
decoder-only学习通用表征上限更高
decoder-only架构+next token predication预训练,每个位置所能接触的信息比其他架构少,要预测下一个token难度更高,当模型足够大,数据足够多的时候,decoder-only模型学习通用表征的上限更高。
上下文学习为decoder-only架构带来更好的few-shot性能
prompt可以视为对模型参数的隐式微调,decoder-only的架构相比其他架构有优势,因为prompt可以更直接地作用于decoder每一层参数,微调信号更强。
decoder-only的单向attention具有隐式的位置编码功能
带有双向attention的模型,对话顺序的区分能力弱。
decoder-only支持使用KV-Cache
每个token的表示只和它之前的输入有关,采用空间换时间,提升了模型训练效率,其他结构难以做到。
注意力满秩优势
大模型使用decoder-only架构除了训练效率和工程实现上的优势外,在理论上因为Encoder的双向注意力会存在低秩的问题,这可能会削弱模型的表达能力。就生成任务而言,引入双向注意力并无实质的好处。而Encoder-decoder模型架构之所以能够在某些场景下表现更好,大概是因为它多了一倍参数。所以在同等参数量、同等推理成本下,Decoder-only架构就是最优的选择了。