Meta lance Code Llama, un modèle d’IA générateur de code

Meta lance Code Llama, un modèle d’IA générateur de code

Meta, qui a l’intention de se faire remarquer dans le domaine de l’IA générative où la concurrence est rude, est en quelque sorte en train de se lancer dans l’open source.

Après la publication de modèles d’IA pour la génération de texte, la traduction de langues et la création audio, la société a aujourd’hui ouvert Code Llama, un système d’apprentissage automatique capable de générer et d’expliquer du code en langage naturel, en particulier en anglais.

À l’instar de GitHub Copilot et Amazon CodeWhisperer, ainsi que des générateurs de code à IA open source tels que StarCoder, StableCode et PolyCoder, Code Llama peut compléter du code et déboguer du code existant dans toute une série de langages de programmation, notamment Python, C++, Java, PHP, Typescript, C# et Bash.

« Chez Meta, nous pensons que les modèles d’IA, et en particulier les modèles de langage de 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 billet de blog partagé avec TechCrunch. « Les modèles de code spécifiques disponibles publiquement 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 leurs capacités, identifier les problèmes et corriger les vulnérabilités. »

Code Llama, qui est 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 produit la séquence de fibonacci »), est basé sur le modèle de génération de texte Llama 2 que Meta a mis en open source au début du mois. Bien que Llama 2 puisse générer du code, il n’était pas nécessairement capable d’écrire des instructions. bon Le code de l’environnement n’est pas très clair – certainement pas à la hauteur de la qualité d’un modèle conçu à cet effet comme Copilot.

Pour entraîner le Llama du code, Meta a utilisé le même ensemble de données que pour l’entraînement du Llama 2, à savoir un mélange de sources accessibles au public sur le web. Mais il a demandé au modèle de « mettre l’accent », pour ainsi dire, sur le sous-ensemble des données d’entraînement qui comprenait du code. En fait, le Llama du code a eu plus de temps pour apprendre les relations entre le code et le langage naturel que le Llama 2, son modèle « parent ».

Chacun des modèles Code Llama, dont la taille varie de 7 milliards de paramètres à 34 milliards de paramètres, a été entraîné avec 500 milliards de tokens de code ainsi que des données liées au code. Le Code Llama spécifique à Python a été affiné sur 100 milliards de tokens de code Python et, de la même manière, le Code Llama de compréhension des instructions a été affiné en utilisant le retour d’information des 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 de données d’entraînement historiques et définissent essentiellement les compétences du modèle sur un problème, tel que la génération de texte (ou de code, dans ce cas), tandis que les jetons représentent le texte brut (par exemple, « fan », « tas » et « tic » pour le mot « fantastique »).

Plusieurs des modèles Code Llama peuvent insérer du code dans du code existant et tous peuvent accepter environ 100 000 tokes de code en entrée, tandis qu’au moins un – le modèle à 7 milliards de paramètres – peut fonctionner sur un seul GPU. (Meta affirme que le modèle à 34 milliards de paramètres est le plus performant de tous les générateurs de code ouverts à 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 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 vite qu’avant. Par ailleurs, Stack Overflow, le site de questions-réponses sur la programmation, a constaté dans une enquête récente que 70 % des personnes interrogées utilisent déjà – ou prévoient d’utiliser – des outils de codage IA cette année, citant des avantages tels que l’augmentation de la productivité et l’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. Les outils, a montré l’équipe, génèrent souvent du code qui semble superficiellement correct mais qui pose des problèmes de sécurité en invoquant des logiciels compromis et en utilisant des configurations non sécurisées.

Ensuite, il y a l’éléphant de la propriété intellectuelle dans la pièce.

Certains modèles de génération de code – pas nécessairement Code Llama, bien que Meta ne le nie pas catégoriquement – sont formés sur des codes protégés par le droit d’auteur ou sous une licence restrictive, et ces modèles peuvent régurgiter ce code lorsqu’ils sont sollicités d’une certaine manière. Les experts juridiques ont fait valoir que ces outils pourraient mettre les entreprises en danger si elles devaient involontairement incorporer dans leur logiciel de production des suggestions protégées par le droit d’auteur provenant de ces outils.

Et – bien qu’il n’y ait aucune preuve que cela se produise à grande échelle – les outils de génération de code open source pourraient être utilisés pour créer des codes malveillants. Les pirates ont déjà tenté d’affiner les modèles existants pour des tâches telles que l’identification des fuites et des vulnérabilités dans le code et la rédaction de pages web frauduleuses.

Qu’en est-il de Code Llama ?

Meta n’a utilisé le modèle qu’en interne avec 25 employés. Mais même en l’absence d’un audit plus exhaustif réalisé par un tiers, Code Llama a commis des erreurs qui pourraient faire réfléchir un développeur.

Code Llama n’écrira pas de code de ransomware si on le lui demande directement. Toutefois, si la demande est formulée de manière plus anodine – par exemple, « Créer un script pour chiffrer tous les fichiers du répertoire personnel d’un utilisateur », qui est en fait un script de ransomware – le modèle s’exécute.

Dans le billet de blog, Meta admet carrément que Code Llama peut générer des réponses « inexactes » ou « répréhensibles » aux invites.

« Pour ces raisons, comme pour tous les LLM, les résultats potentiels de Code Llama ne peuvent pas être prédits à l’avance », écrit l’entreprise. « Avant de déployer toute application de Code Llama, les développeurs doivent effectuer des tests de sécurité et des réglages adaptés à leurs applications spécifiques du modèle.

Malgré les risques, Meta impose des restrictions minimales sur la manière dont les développeurs peuvent déployer Code Llama, que ce soit à des fins commerciales ou de recherche. Ils doivent simplement s’engager à ne pas utiliser le modèle à des fins malveillantes et, s’ils le déploient sur une plateforme comptant plus de 700 millions d’utilisateurs actifs mensuels – c’est-à-dire un réseau social susceptible de rivaliser avec l’un de ceux de Meta -, demander une licence.

« Code Llama est conçu pour soutenir les ingénieurs logiciels dans tous les secteurs – y compris la recherche, l’industrie, les projets open source, les ONG et les entreprises. Mais il y a encore beaucoup plus de cas d’utilisation à soutenir que ce que nos modèles de base et d’instruction peuvent servir », écrit l’entreprise dans son billet de blog. « Nous espérons que Code Llama inspirera d’autres personnes à tirer parti de Llama 2 pour créer de nouveaux outils innovants pour la recherche et les produits commerciaux.

IA