Phi-1 est un grand modèle de langage développé par Microsoft, publié en juin 2023. Avec 1,3 milliard de paramètres, il s'agit d'une architecture Transformer (architecture) compacte conçue spécifiquement pour la génération et la compréhension de code. Phi-1 a été entraîné sur un ensemble de données soigneusement sélectionné, composé de code de qualité manuel et d'exercices synthétiques, en mettant l'accent sur la qualité des données plutôt que sur l'échelle brute. Son développement a marqué un changement notable dans la recherche en apprentissage automatique, montrant que des modèles plus petits peuvent rivaliser avec des homologues beaucoup plus grands lorsqu'ils sont entraînés sur des données soigneusement filtrées.
Le modèle a été introduit dans le cadre de la série Phi de Microsoft, qui explore la relation entre la qualité des données d'entraînement et la performance des modèles. Phi-1 a obtenu des résultats de pointe sur plusieurs benchmarks de codage à sa taille, notamment HumanEval et MBPP, surpassant des modèles plusieurs fois plus grands. Son succès a mis en évidence le potentiel des stratégies de apprentissage curriculaire et de sélection des données dans le apprentissage profond.
Architecture et entraînement
Phi-1 utilise une architecture Transformer (architecture) standard de type décodeur seul, avec 24 couches, 32 têtes d'attention et une dimension cachée de 2048. Il emploie attention multi-têtes, normalisation de couche et des connexions réseaux résiduels, similaires à d'autres grands modèles de langage modernes. Le modèle a été entraîné sur 1,4 billion de jetons, mais l'innovation clé résidait dans la composition de l'ensemble de données : 70 % des données provenaient d'un corpus web filtré de code, tandis que 30 % étaient générées à l'aide d'un grand modèle de langage (probablement GPT-3.5 ou similaire) pour créer des exercices synthétiques et des exemples de style manuel.
Le processus d'entraînement utilisait l'optimiseur Adam avec un programme de taux d'apprentissage comprenant une phase d'échauffement et une décroissance cosinusoïdale. Le clipping de gradient a été appliqué pour stabiliser l'entraînement. Le modèle a été entraîné sur 512 GPU A100 pendant environ 12 jours, consommant environ 1,5 pétaflop-jour de calcul. Cela est nettement inférieur au calcul utilisé pour des modèles plus grands comme GPT-3 ou les modèles ultérieurs d'OpenAI.
Curation des données et données synthétiques
Un aspect central de Phi-1 est son accent sur la qualité des données. Le corpus d'entraînement, appelé CodeTextbook, a été construit en filtrant les dépôts GitHub pour obtenir des échantillons de code de haute qualité et autonomes. Le processus de filtrage a éliminé le code redondant, de faible qualité ou mal documenté. De plus, des données synthétiques ont été générées à l'aide d'un modèle enseignant pour créer des exercices imitant des problèmes de manuel, tels que « écrire une fonction qui calcule la suite de Fibonacci », avec des explications accompagnantes.
Cette approche s'inspirait du apprentissage curriculaire, où les modèles sont entraînés sur des exemples progressivement plus complexes. La génération de données synthétiques était guidée par des principes de contenu éducatif, garantissant que les exemples étaient clairs, concis et pédagogiquement solides. Cette focalisation sur la curation des données a permis à Phi-1 d'atteindre une haute précision sur les tâches de codage malgré sa taille relativement petite.
Performance et benchmarks
Phi-1 a été évalué sur plusieurs benchmarks standard de génération de code. Sur HumanEval, il a atteint une précision pass@1 de 50,6 %, surpassant des modèles comme Codex (qui avait 28,8 % avec 12B paramètres) et même certains modèles plus grands. Sur MBPP, il a obtenu 55,5 % pass@1. Ces résultats étaient notables car Phi-1 était significativement plus petit que de nombreux modèles concurrents, tels que ceux de Google DeepMind ou Anthropic.
Le modèle a également démontré une forte performance sur les tâches d'explication et de complétion de code, bien qu'il fût moins capable en compréhension générale du langage par rapport à des modèles entraînés sur des textes diversifiés. Sa spécialisation dans le code en faisait un outil utile pour les développeurs, et il a été intégré aux services d'IA Microsoft Azure de Microsoft pour des applications liées au code.
Impact et réception
La publication de Phi-1 a contribué à une conversation plus large sur l'efficacité dans l'intelligence artificielle. Il a remis en question l'hypothèse dominante selon laquelle des modèles plus grands sont toujours meilleurs, suggérant que la qualité et la curation des données pouvaient être aussi importantes que l'échelle. Cela a influencé les recherches ultérieures, y compris les modèles suivants de la série Phi, tels que Phi-1.5 et Phi-2, qui ont étendu l'approche au texte général.
Phi-1 a également suscité un intérêt pour la génération de données synthétiques, une technique adoptée plus tard par d'autres laboratoires. Son succès a été perçu comme une validation de l'idée que de petits modèles spécialisés pouvaient être déployés sur des appareils de périphérie, réduisant la dépendance à une infrastructure cloud massive. Cependant, certains chercheurs ont noté que la génération de données synthétiques reposait sur un modèle enseignant puissant, ce qui pourrait limiter l'évolutivité de l'approche.
Limites et orientations futures
Malgré ses forces, Phi-1 présentait des limites. Il était entraîné exclusivement sur du code, donc il manquait de connaissances générales et ne pouvait pas effectuer des tâches comme la conversation en langage naturel ou la réponse à des questions factuelles. Sa performance sur du code hors distribution, comme du code dans des langues moins courantes ou avec un style inhabituel, était moins robuste. De plus, le modèle n'était pas affiné pour suivre des instructions, nécessitant donc une sollicitation soigneuse.
Les travaux futurs dans la série Phi visaient à combler ces lacunes en incorporant des données plus diversifiées et un affinage par instructions. Les principes de curation des données et de données synthétiques de Phi-1 ont été repris, influençant le développement de modèles ultérieurs qui ont atteint des capacités plus larges tout en maintenant l'efficacité.