Les grands modèles linguistiques (LLMs) sont généralement pré-entraînés sur d'énormes ensembles de données comprenant à la fois du texte et du code. Bien que le code soit essentiel pour les modèles dédiés aux tâches de programmation, son inclusion devient de plus en plus courante même dans les LLM conçus pour des applications non liées à la programmation.
Dans une étude récente, des chercheurs de Cohere ont exploré comment la présence de données de code dans le pré-entraînement des LLM influence les performances globales sur diverses tâches au-delà de la programmation. « Bien que les praticiens s'accordent à dire que les données de code sont vitales pour la performance des LLM, peu de recherches ont analysé leur impact précis sur les tâches non liées au code », ont noté les chercheurs.
Leur investigation confirme que le code améliore considérablement les performances des LLM dans diverses tâches non codantes, avec des implications pour les applications de formation réelles.
Étude de l'Impact du Code
Les chercheurs ont réalisé une série d'expériences pour évaluer comment le code influence la performance générale des LLM. Les facteurs clés comprenaient la quantité de code dans les données d'entraînement, le moment d'introduction du code, la qualité du code et la taille des modèles.
En utilisant une approche de formation en deux étapes, ils ont effectué des « pré-entraînements continus » sur des modèles pré-entraînés, en intégrant différents ratios de texte et de code sur un nombre fixe de tokens. Cela a été suivi d'une phase de « récupération », mettant l'accent sur des ensembles de données de qualité supérieure lors des dernières étapes d'entraînement.
Le modèle de référence a été entraîné uniquement sur du texte. D'autres modèles ont été pré-entraînés sur des ensembles de données équilibrés de texte et de code, ou sur des données uniquement de code avant de passer au texte. Ils ont évalué des modèles allant de 470 millions à 2,8 milliards de paramètres sur divers benchmarks axés sur les connaissances générales, le raisonnement en langage naturel et la performance du code.
Les Avantages du Code pour les Tâches Non Codantes
Les expériences ont démontré que le code améliore significativement les performances des LLM sur des tâches non codantes. Dans le raisonnement en langage naturel, les modèles entraînés avec du code surpassent systématiquement ceux basés uniquement sur du texte. Fait remarquable, le pré-entraînement exclusivement basé sur le code a donné les meilleures performances sur ces benchmarks.
« Cela indique que l'initialisation à partir d'un modèle pré-entraîné avec un mélange de code influence positivement les tâches de raisonnement en langage naturel », ont expliqué les chercheurs.
Pour les tâches de connaissances générales, un ensemble de données équilibré de code et de texte durant le pré-entraînement a produit les meilleurs résultats. Les chercheurs ont suggéré que « pour une performance optimale sur les tâches de connaissances générales, un mélange équilibré de données est essentiel lors de l'initialisation et une proportion plus importante de texte durant le pré-entraînement continu ».
Dans les tâches génératives, les modèles uniquement basés sur le code et ceux équilibrés ont tous deux surpassé les modèles uniquement textuels, indiquant que l’incorporation de code améliore non seulement le raisonnement mais aussi la qualité générative.
De plus, les chercheurs ont noté que les bénéfices de l’ajout de code augmentaient avec la taille du modèle, les gains les plus significatifs étant observés dans les connaissances générales et la performance du code, suivis d'améliorations modestes en raisonnement en langage naturel.
« Ces résultats suggèrent que le compromis entre les tâches de langage naturel et la génération de code se renforce à mesure que la taille du modèle augmente », ont-ils déclaré.
Bien que les LLM montrent souvent des comportements émergents à plus grande échelle, les chercheurs n'ont pas pu tester des modèles très grands en raison de limitations de coût. Toutefois, ils restent optimistes quant à l'application de leurs résultats à des échelles supérieures.
« Étant donné que nos résultats sont valides de 470 millions à 2,8 milliards de paramètres, nous croyons qu'ils s'appliqueront à des modèles encore plus grands et à des budgets de tokens étendus », ont-ils précisé.
L'étude a également révélé que l'intégration de code synthétique de haute qualité dans les données de pré-entraînement améliore considérablement les performances, répondant ainsi aux limitations du code généré par des humains.
« Notre code synthétique a été créé à partir de déclarations de problèmes pour produire des solutions Python vérifiées », a déclaré Viraat Aryabumi, l'auteur principal et chercheur chez Cohere. « Cela ouvre de futures possibilités, car tirer parti d'un modèle enseignant performant est essentiel pour générer un code synthétique efficace. »
De plus, ils ont constaté que l'intégration de données apparentées au code, telles que les demandes de tirage et les engagements GitHub, augmentait les capacités de raisonnement. L'inclusion du code dans la phase de récupération a entraîné des améliorations supplémentaires des performances dans les tâches non codantes, offrant des informations précieuses pour les entreprises souhaitant affiner des modèles sur leurs propres données plutôt que de partir de zéro.
« La phase de récupération est étroitement liée à l'ajustement fin en ce qui concerne le coût, la qualité des données et les ressources nécessaires, entraînant des gains substantiels. Nous recommandons d'inclure le code tout au long du processus de formation », a souligné Aryabumi. « L'utilisation de code de haute qualité — comme les bases de code internes et les données associées au code — peut également améliorer les résultats pendant la récupération. »
Alors que Cohere se concentre sur le développement de LLM pour des applications d'entreprise, ces résultats pourraient influencer les déploiements futurs de modèles et de produits, offrant potentiellement une variété de modèles pré-entraînés avec différentes combinaisons de texte et de code adaptées à des tâches spécifiques. Les entreprises peuvent ensuite affiner ces modèles sur des données exclusives pour des performances optimales.
« Nos résultats sont très pertinents pour les développeurs et devraient conduire à la sortie de modèles plus efficaces », a déclaré Aryabumi. « Ce qui est surprenant, c'est comment le code améliore les performances au-delà des tâches liées à la programmation, ce qui influence notre approche pour développer des modèles à la pointe de la technologie. »