T5(Text-to-Text Transfer Transformer)是由Google AI开发并于2019年推出的一系列大型语言模型。与原始的Transformer模型一样,T5模型是编码器-解码器转换器,其中编码器处理输入文本,解码器生成输出文本。T5模型通常在包含文本和代码的大规模数据集上进行预训练,之后可以执行与其预训练目标类似的基于文本的任务,并可以针对其他任务进行微调。它们已被应用于聊天机器人、机器翻译、文本摘要、代码生成和机器人技术等领域。
训练
原始的T5模型在Colossal Clean Crawled Corpus(C4)上进行预训练,该数据集包含从互联网抓取的文本和代码。这种预训练使模型能够学习通用的语言理解和生成能力。T5模型随后可以在下游任务上进行微调。预训练采用了文本到文本的格式,其中每个任务都被构建为<输入文本> -> <输出文本>。示例包括恢复损坏的文本(例如,填充由哨兵标记的空白)、翻译(例如,从英语到德语)以及语法可接受性判断(例如,CoLA句子分类)。
架构
T5系列包括不同规模的模型,全部为编码器-解码器转换器。原始论文报告了五种模型:T5-small(6000万参数)、T5-base(2.2亿)、T5-large(7.7亿)、T5-3B(30亿)和T5-11B(110亿)。每个模型在编码器和解码器中具有相同数量的层;例如,T5-small在每一侧有6层。关键的架构维度包括层数、注意力头数、嵌入维度、前馈维度和键/值维度。与典型的转换器不同,3B和11B模型不满足d_model = d_kv * n_head的关系。与原始转换器相比,T5使用无加性偏置的层归一化,将层归一化放置在残差路径之外,并使用相对位置嵌入。使用了词汇量为32,000的WordPiece分词器,输入和输出共享,并在C4中英语、德语、法语和罗马尼亚语数据以10:1:1:1的比例混合训练。
变体
随后有几种模型使用了T5架构。值得注意的变体包括:
- T5 1.1(2019-2020):改进版本,使用GEGLU激活函数代替ReLU;3B和11B被重命名为XL和XXL,并修改了形状。
- LM-adapted T5(2021):从T5检查点开始,并在C4中额外训练了1000亿个标记。
- Switch Transformer(2021):一种专家混合变体,用专家层替换前馈层。
- T0(2021):从LM-adapted T5开始,训练以基于指令执行零样本任务。
- ByT5(2021):字节级版本,在无分词器的UTF-8字节上操作,并在多语言C4上训练。
- Flan-T5-XL(2022):从T5 XL开始,在FLAN数据集上进行指令调优。
- T5X(2022):基于JAX的原始T5代码库重新实现(不是模型)。
- UL2 20B(2022):扩展到200亿参数,在C4上使用混合去噪器目标训练;值得注意的是,在TPU集群上意外训练了一个月。
- Flan-UL2 20B(2022):UL2 20B在FLAN上进行指令微调。
- Pile-T5(2024):相同的架构,但使用Llama分词器并在The Pile上训练,提供base、large、XL和XXL尺寸。
应用
T5的编码器-解码器结构允许指令跟随:编码器对指令进行编码,解码器自回归地生成回复。T5编码器也可以作为文本编码器,类似于BERT,为下游任务生成向量表示。例如,Google Imagen使用T5-XXL作为其文本编码器,AuraFlow扩散模型使用Pile-T5-XL。这些应用展示了T5在生成式AI及其他领域的多功能性。