Meta publie Code Llama, un code
Meta, déterminé à faire sensation dans un espace d'IA générative en proie à la concurrence, est en quelque sorte une larme open source.
Suite à la sortie de modèles d'IA pour générer du texte, traduire des langues et créer de l'audio, la société a aujourd'hui open source Code Llama, un système d'apprentissage automatique capable de générer et d'expliquer du code en langage naturel, en particulier l'anglais.
Semblable à GitHub Copilot et Amazon CodeWhisperer, ainsi qu'aux générateurs de code open source basés sur l'IA comme StarCoder, StableCode et PolyCoder, Code Llama peut compléter le code et déboguer le code existant dans une gamme de langages de programmation, notamment Python, C++, Java, PHP, Tapuscrit, C# et Bash.
"Chez Meta, nous pensons que les modèles d'IA, et en particulier les grands modèles de langage pour le codage, bénéficient le plus d'une approche ouverte, à la fois en termes d'innovation et de sécurité", a écrit Meta dans un article de blog partagé avec TechCrunch. « Des modèles accessibles au public et spécifiques à un code peuvent faciliter le développement de nouvelles technologies qui améliorent la vie des gens. En publiant des modèles de code comme Code Llama, l'ensemble de la communauté peut évaluer ses capacités, identifier les problèmes et corriger les vulnérabilités.
Code Llama, disponible en plusieurs versions, dont une version optimisée pour Python et une version affinée pour comprendre les instructions (par exemple « Écrivez-moi une fonction qui génère la séquence de Fibonacci »), est basé sur le modèle de génération de texte Llama 2. que Meta open source plus tôt ce mois-ci. Bien que Llama 2 puisse générer du code, ce n'était pas nécessairement un bon code – certainement pas à la hauteur de la qualité qu'un modèle spécialement conçu comme Copilot pouvait produire.
Lors de la formation de Code Llama, Meta a utilisé le même ensemble de données que celui utilisé pour former Llama 2 : un mélange de sources accessibles au public sur le Web. Mais le modèle « mettait l’accent », pour ainsi dire, sur le sous-ensemble des données de formation qui incluaient le code. Essentiellement, Code Llama a eu plus de temps pour apprendre les relations entre le code et le langage naturel que Llama 2 – son modèle « parent ».
Chacun des modèles Code Llama, d'une taille allant de 7 milliards de paramètres à 34 milliards de paramètres, a été formé avec 500 milliards de jetons de code ainsi que des données liées au code. Le Code Llama spécifique à Python a été affiné sur 100 milliards de jetons de code Python et, de même, le Code Llama de compréhension des instructions a été affiné à l'aide des commentaires d'annotateurs humains pour générer des réponses « utiles » et « sûres » aux questions. .
Pour le contexte, les paramètres sont les parties d'un modèle apprises à partir des données d'entraînement historiques et définissent essentiellement la compétence du modèle sur un problème, comme la génération de texte (ou de code, dans ce cas), tandis que les jetons représentent du texte brut (par exemple « fan, " "tas" et "tic" pour le mot "fantastique").
Plusieurs modèles Code Llama peuvent insérer du code dans le code existant et tous peuvent accepter environ 100 000 jetons de code en entrée, tandis qu'au moins un – le modèle à 7 milliards de paramètres – peut fonctionner sur un seul GPU. (Les autres nécessitent un matériel plus puissant.) Meta affirme que le modèle de 34 milliards de paramètres est le plus performant de tous les générateurs de code open source à ce jour – et le plus important en termes de nombre de paramètres.
On pourrait penser qu’un outil de génération de code serait extrêmement attrayant pour les programmeurs et même pour les non-programmeurs – et vous n’auriez pas tort.
GitHub affirme que plus de 400 organisations utilisent Copilot aujourd'hui et que les développeurs de ces organisations codent 55 % plus rapidement qu'auparavant. Ailleurs, Stack Overflow, le site de questions-réponses sur la programmation, a découvert dans une enquête récente que 70 % utilisent déjà – ou prévoient d'utiliser – des outils de codage d'IA cette année, citant des avantages tels qu'une productivité accrue et un apprentissage plus rapide.
Mais comme toutes les formes d’IA générative, les outils de codage peuvent dérailler ou présenter de nouveaux risques.
Une équipe de recherche affiliée à Stanford a découvert que les ingénieurs qui utilisent des outils d’IA sont plus susceptibles de provoquer des failles de sécurité dans leurs applications. L’équipe a montré que ces outils génèrent souvent du code qui semble superficiellement correct mais qui pose des problèmes de sécurité en appelant des logiciels compromis et en utilisant des configurations non sécurisées.