encoder-decoder模型同时使用编码器和解码器. 它将每个task视作序列到序列的转换/生成(比如,文本到文本,文本到图像或者图像到文本的多模态任务).Encoder-decoder模型通常用于需要内容理解和生成的任务,比如机器翻译
代表模型T5
T5模型结构与原始的Transformer基本一致,除了做了以下几点改动
- 采用了一种简化版的Layer Normalization,去除了Layer Norm的bias,将Layer Norm放在残差连接外面
- 位置编码:T5使用了一种简化版的相对位置编码,每个位置编码都是一个标量,被加到logits上用于计算注意力权重。各层共享位置编码,但是同一层内,不同的注意力头的位置编码都是独立学习的
自监督预训练
T5 在预训练阶段采用了类似于 BERT 和 GPT 的大规模自监督学习策略,但与这两个模型的设计不同的是,T5 使用了“文本到文本”的格式来处理任务。
预训练任务包括两种类型:Causal Language Modeling(因果语言建模)和 填空任务(Masked Language Modeling)
多任务微调
除了使用大规模数据进行无监督预训练,T5模型还可以利用不同任务的标注数据进行有监督的多任务预训练,例如SQuAD问答和机器翻译等任务
数据集和参数
作者对公开爬取的网页数据集Common Crawl进行了过滤,去掉一些重复的、低质量的,看着像代码的
文本等,并且最后只保留英文文本,得到数据集C4: the Colossal Clean Crawled Corpus
| 参数 | 取值 |
|---|---|
| transformer层数 | 24 |
| 特征维度 | 768 |
| transformer head数 | 12 |
| 总参数量 | 2.2亿 |
大模型主流架构
Decoder-only
- LLM之所以主要都用Decoder-only架构,除了训练效率和工程实现上的优势外,在理论上是因为Encoder的双向注意力会存在低秩问题,这可能会削弱模型表达能力,就生成任务而言,引入双向注意力并无实质好处
- 而Encoder-Decoder架构之所以能够在某些场景下表现更好,大概只是因为它多了一倍参数。所以,在同等参数量、同等推理成本下,Decoder-only架构就是最优选择了