Modèles encodeur ou décodeur : quelle architecture choisir ?
Traduction automatique
Cet article a été traduit automatiquement depuis la version originale en anglais.
Utilisez un encodeur entraîné pour la tâche afin de produire des représentations ou des prédictions sur une entrée. Utilisez un modèle encodeur-décodeur lorsqu’un système entraîné transforme une séquence en une autre. Utilisez un modèle de langage à décodeur seul pour la génération autorégressive et les tâches fondées sur des prompts. L’entraînement et l’interface de sortie du checkpoint comptent autant que le nom de l’architecture.
Ces choix offrent un point de départ utile aux ingénieurs qui sélectionnent des modèles. Ils ne limitent pas ce qu’une architecture adaptée peut accomplir.
Comparez ce que chaque modèle renvoie
| Famille | Schéma d’attention | Sortie typique et exemple |
|---|---|---|
| Encodeur seul | Les tokens voient l’ensemble de l’entrée | Représentations de tokens, étiquettes ou segments de texte ; BERT |
| Encodeur-décodeur | Encodeur sur toute l’entrée ; décodeur de sortie causal avec attention croisée | Séquence de sortie générée ; T5 |
| Décodeur seul | Attention causale sur la séquence de tokens | Distributions du prochain token et continuations générées ; Llama |
BERT apprend des représentations bidirectionnelles par préentraînement avec masquage de tokens. Une tête de sortie adaptée et un entraînement pour la tâche convertissent ces représentations en classifications, segments de texte ou autres prédictions. BERT standard n’est pas configuré comme un générateur de texte classique de gauche à droite. De plus, la sortie agrégée d’un encodeur quelconque n’est pas automatiquement un bon embedding pour la recherche : cet usage exige un entraînement et une évaluation adaptés.
T5 utilise un encodeur pour représenter une entrée et un décodeur pour générer une sortie en appliquant l’attention à ces représentations. Il peut exprimer des tâches de classification sous forme de génération de texte, mais aussi transformer des séquences. Encodeur-décodeur ne signifie pas uniquement traduction.
Un modèle à décodeur seul utilise la même séquence causale pour les instructions, les exemples et la continuation générée. Chaque position peut porter son attention sur elle-même et sur les positions précédentes. Ses états KV antérieurs restent valides lorsque la génération ajoute des tokens, ce qui permet le décodage incrémental. L’article sur le Transformer explique la distinction entre masquage et attention croisée.
Choisissez le checkpoint pour la tâche
Pour la classification à étiquettes fixes ou l’extraction, comparez un modèle plus petit entraîné pour la tâche avec un générateur guidé par un prompt. Pour la recherche, comparez des checkpoints entraînés pour les embeddings ou le reranking, plutôt que de vous fier aux seuls noms d’architectures. Pour des réponses flexibles, du code ou des arguments d’outils, évaluez un modèle génératif selon le format de sortie et les erreurs que votre application peut tolérer.
Vérifiez les limites d’entrée, les langues prises en charge, la tête de sortie requise, la qualité, la latence et le runtime de déploiement. Le nom d’une famille permet de prévoir le schéma de calcul ; il ne garantit pas la qualité sur une tâche et ne fait pas d’un modèle plus grand le meilleur choix.
Guide d’ingénierie : familles de modèles explique conjointement les propriétés de génération et de mise en cache.