T5 (Text-to-Text Transfer Transformer) est une série de grands modèles de langage développés par Google AI et introduits en 2019. Comme le modèle transformeur original, les modèles T5 sont des transformeurs encodeur-décodeur, où l'encodeur traite le texte d'entrée et le décodeur génère le texte de sortie. Les modèles T5 sont généralement pré-entraînés sur un ensemble massif de texte et de code, après quoi ils peuvent effectuer des tâches textuelles similaires à leurs objectifs de pré-entraînement, et peuvent être affinés pour d'autres tâches. Ils ont été appliqués dans les chatbots, la traduction automatique, le résumé de texte, la génération de code et la robotique.
Entraînement
Les modèles T5 originaux ont été pré-entraînés sur le Colossal Clean Crawled Corpus (C4), contenant du texte et du code extraits d'Internet. Ce pré-entraînement permet aux modèles d'apprendre la compréhension et la génération générales du langage. Les modèles T5 peuvent ensuite être affinés sur des tâches en aval. Le pré-entraînement utilisait un format texte-à-texte, où chaque tâche est formulée comme <texte d'entrée> -> <texte de sortie>. Les exemples incluent la restauration de texte corrompu (par exemple, remplir les blancs marqués par des sentinelles), la traduction (par exemple, de l'anglais vers l'allemand) et le jugement d'acceptabilité grammaticale (par exemple, la classification de phrases CoLA).
Architecture
La série T5 comprend des modèles de tailles variées, tous des transformeurs encodeur-décodeur. L'article original rapportait cinq modèles : T5-small (60 millions de paramètres), T5-base (220 millions), T5-large (770 millions), T5-3B (3 milliards) et T5-11B (11 milliards). Chaque modèle a le même nombre de couches dans l'encodeur et le décodeur ; par exemple, T5-small a 6 couches dans chacun. Les dimensions architecturales clés incluent le nombre de couches, les têtes d'attention, la dimension d'intégration, la dimension de propagation avant et la dimension clé/valeur. Contrairement aux transformeurs typiques, les modèles 3B et 11B ne satisfont pas la relation d_model = d_kv * n_head. Par rapport au transformeur original, T5 utilise une normalisation de couche sans biais additif, place la normalisation de couche en dehors du chemin résiduel et utilise des intégrations positionnelles relatives. Un tokeniseur WordPiece avec une taille de vocabulaire de 32 000 a été utilisé, partagé entre l'entrée et la sortie, entraîné sur un mélange de données anglaises, allemandes, françaises et roumaines de C4 à un ratio de 10:1:1:1.
Variantes
Plusieurs modèles ultérieurs ont utilisé l'architecture T5. Les variantes notables incluent :
- T5 1.1 (2019-2020) : Versions améliorées avec activation GEGLU au lieu de ReLU ; les 3B et 11B ont été renommés XL et XXL avec des formes modifiées.
- LM-adapted T5 (2021) : Départ des points de contrôle T5 et entraînement supplémentaire sur 100 milliards de jetons supplémentaires de C4.
- Switch Transformer (2021) : Une variante de mélange d'experts remplaçant les couches de propagation avant par des couches d'experts.
- T0 (2021) : Départ de LM-adapted T5 et entraînement pour effectuer des tâches en zéro-shot basées sur des instructions.
- ByT5 (2021) : Version au niveau des octets fonctionnant sur des octets UTF-8 sans tokeniseurs, entraînée sur C4 multilingue.
- Flan-T5-XL (2022) : Affiné par instructions sur l'ensemble de données FLAN à partir de T5 XL.
- T5X (2022) : Une réimplémentation basée sur JAX du code source original de T5 (pas un modèle).
- UL2 20B (2022) : Élargi à 20 milliards de paramètres, entraîné avec un objectif de mélange de débruiteurs sur C4 ; notablement entraîné accidentellement pendant un mois sur un cluster TPU.
- Flan-UL2 20B (2022) : UL2 20B affiné par instructions sur FLAN.
- Pile-T5 (2024) : Même architecture mais utilise le tokeniseur Llama et est entraîné sur The Pile, disponible en tailles base, large, XL et XXL.
Applications
La structure encodeur-décodeur de T5 permet le suivi d'instructions : l'encodeur encode l'instruction, et le décodeur génère automatiquement la réponse. L'encodeur T5 peut également servir d'encodeur de texte, similaire à BERT, produisant des représentations vectorielles pour des tâches en aval. Par exemple, Google Imagen utilise T5-XXL comme encodeur de texte, et le modèle de diffusion AuraFlow utilise Pile-T5-XL. Ces applications démontrent la polyvalence de T5 dans IA générative et au-delà.