Cela faisait longtemps que nous n'avions rien entendu de @character_ai, mais aujourd'hui j'ai soudainement vu qu'ils avaient sorti un nouveau modèle, « Kaiju ». Kaiju ne se concentre pas sur les modèles génériques répondant aux critères académiques ; son approche privilégie plutôt la performance du dialogue et l’efficacité du déploiement en environnement de production réel. Cet article de blog décrit l’ensemble du processus, de la conception de l’architecture et l’optimisation de l’entraînement à la stratégie de données et à l’alignement sur la sécurité ; sa lecture est vivement recommandée. Présentation du modèle La série Kaiju comprend trois tailles : petite (13 milliards de paramètres), moyenne (34 milliards de paramètres) et grande (110 milliards de paramètres). Ces modèles reposent sur une architecture Transformer dense, utilisent une approche générative autorégressive et sont optimisés pour les scénarios de dialogue. Contrairement aux modèles visant des scores de référence élevés, Kaiju privilégie l’efficacité de l’inférence et la qualité de l’interaction utilisateur, notamment la rapidité de réponse et la fluidité des dialogues. Ceci reflète la conviction de l’équipe que la performance en production prime sur les indicateurs académiques. L'essence de cet article sur l'innovation architecturale réside dans de multiples techniques d'optimisation de l'efficacité visant à garantir que le modèle conserve des performances élevées lors d'un déploiement à grande échelle : • Attention multi-requêtes (MQA) : réduit la taille du cache clé-valeur et améliore l’efficacité de l’inférence des dialogues. Malgré une légère perte de qualité observée dans certains benchmarks, son impact sur les tâches de dialogue reste minime. • Attention par fenêtre glissante : limite la durée d’attention à 1 024 jetons et alterne entre les couches globales (ratio 6:1). Cela réduit considérablement le coût de calcul des contextes longs sans sacrifier la précision de la recherche, évitant ainsi la complexité des méthodes traditionnelles telles que les puits d’attention. • Partage KV intercouches : un cache KV est partagé tous les 2 à 3 niveaux, compressant davantage la mémoire sans diminution significative de la précision. • Quantification Int8 : les poids et les multiplications matricielles sont stockés et calculés à l’aide d’entiers 8 bits, ce qui est 20 à 30 % plus rapide que les nombres à virgule flottante 16 bits. L’entraînement prenant en compte la quantification (QAT) garantit une précision quasi native. Autres optimisations : La normalisation de la pré-couche (RMSNorm) et le clampage dynamique améliorent la stabilité et évitent les problèmes numériques pendant l'entraînement. L'entraînement du modèle a été réalisé sur un cluster GPU Google Cloud H100, en utilisant une stratégie de parallélisme (parallélisme de tenseurs et de séquences intra-nœud, et parallélisme de données inter-nœud sur l'ensemble des partitions). Les principales techniques d'optimisation comprenaient : • Calculs de faible précision : Int8 est utilisé pour les poids et les paires clé-valeur, BF16 est utilisé pour l'activation directe et les gradients locaux, et FP32 est utilisé pour l'accumulation de gradients et les poids. • Compression du gradient : L'algorithme Squinch est introduit pour compresser les gradients à 6 bits (modélisation par blocs, log-uniforme), réduisant ainsi la surcharge de communication. • Stabilité améliorée : Pour les petits modèles, des scalaires virtuels Bungee sont utilisés pour éviter le dépassement de capacité Int8 ; des mises à jour de poids ternaires (1,6 bits par paramètre) ont également été testées pour compresser davantage le stockage. La stratégie et le mélange des données sont essentiels au succès de Kaiju. Les auteurs divisent les données en deux catégories : • MMLU Max : Basé sur le benchmark AGI, il inclut du texte à l'échelle du réseau, du code et des données synthétiques, et utilise des plongements T5 pour calculer la similarité. Production Max : se concentre sur l'interaction avec l'utilisateur et met l'accent sur le respect des instructions. Lors des dernières phases d'entraînement, une stratégie de recuit simulé a été employée pour augmenter progressivement les données d'instruction et le contenu relatif à la MMLU, afin d'équilibrer les performances de référence avec les applications concrètes. Ceci a permis d'éviter la sur-optimisation d'un seul indicateur et de garantir un comportement plus naturel du modèle lors des dialogues. La sécurité et l'alignement sont les principaux points abordés dans cet article, qui adopte une approche en plusieurs étapes : • Réglage fin contrôlé : Ajuster le comportement du modèle à l’aide de données de haute qualité. • Apprentissage par renforcement : Améliorer la qualité de l'interaction en modifiant l'optimisation directe des préférences (DPO) en ligne en fonction des commentaires des utilisateurs (tels que les « balayages » ou les préférences). • Formation du classificateur : Intègre des têtes de classificateur optionnelles, fournissant des indicateurs de sécurité au niveau de l’étiquette. • Contrôle au moment de l'inférence : utilise une recherche de faisceaux guidée par un classificateur pour garantir que le contenu généré est sûr et fiable. L'article sur les défis et les solutions aborde objectivement les compromis : par exemple, si MQA est efficace, il peut impacter les scores de référence, un problème que les auteurs atténuent en se concentrant sur des tâches non liées à l'IA générale (comme le dialogue) ; le calcul de contextes longs est coûteux, c'est pourquoi des fenêtres glissantes et le partage de clés-valeurs sont utilisés pour y remédier ; l'entraînement à faible précision est sujet à l'instabilité, ce qui explique l'introduction d'innovations telles que QAT et Bungee. Globalement, ces solutions démontrent que l'optimisation de l'efficacité ne sacrifie pas nécessairement la qualité, notamment en environnement de production. Adresse du blog :
Chargement du thread
Récupération des tweets originaux depuis X pour offrir une lecture épurée.
Cela ne prend généralement que quelques secondes.
