Depuis quelque temps, mettre les petits plats dans les grands est devenu la marque de fabrique des entreprises technologiques, à l’instar de Meta. Non contente d’avoir lancé la version améliorée de son chatbot conversationnel, Llama2, depuis la fin de juillet dernier, Meta introduit maintenant Code Llama. Cette initiative vise à susciter l’intérêt des développeurs et autres spécialistes du codage en mettant à leur disposition un agent IA exclusivement dédié à cette activité.
En prolongement du chatbot grand public en open source, Llama2, Code Llama se présente comme un modèle de langage de grande envergure axé uniquement sur le codage. À travers cette initiative, Meta ambitionne d’accélérer et d’améliorer les flux de travail des développeurs, tout en permettant aux débutants d’apprendre efficacement les bases du codage. Dans une démarche visant à maximiser la productivité, Zuckerberg et ses collaborateurs ont rendu le code de l’IA générative accessible au public pour les besoins à la fois scientifiques et marketing.
Les caractéristiques de Code Llama
Tout comme Llama2 en général, Meta a lancé son bot de codage en trois tailles de paramètres : 7 milliards, 13 milliards et 34 milliards. Chacun de ces modèles comporte une ingénieuse imbrication de 500 milliards de jetons de code.
Les modèles de base 7 milliards et 13 milliards garantissent à Code Llama la capacité de :
- Générer du code et du langage naturel concernant le code à partir d’incitations,
- Faciliter la complétion de code, c’est-à-dire insérer de nouveaux éléments de code dans un code existant, grâce à la capacité d’insertion en milieu de code,
- Aider au débogage,
- Prendre en charge la plupart des langages de programmation les plus populaires, tels que Python, C++, Java, PHP, et bien d’autres encore.
En répondant aux exigences de service et de latence pour la création de code, chaque modèle de base présente des caractéristiques de performance très spécifiques. Par exemple, le modèle de 7 milliards peut être exécuté sur un seul processeur.
Les modèles de 13 milliards, en revanche, sont plus rapides et mieux adaptés aux tâches nécessitant une faible latence, comme la complétion de code en temps réel.
Quant au modèle de 34 milliards, il offre les meilleurs résultats et permet une assistance au codage encore plus performante.
Les deux variantes de Code Llama introduites par Meta
En plus du déploiement de la version de codage de Llama2, Meta a également présenté deux autres variantes de Code Llama : Code Llama-Python et Code Llama-Instruct.
Code Llama-Python
Code Llama-Python est une variante spécialisée du langage de Code Llama, optimisée avec 100 milliards de jetons de code Python. Meta a développé cette version additionnelle en réponse à la popularité croissante du langage Python pour la génération de code, ainsi qu’à son association majeure avec Pytorch au sein de la communauté de l’IA. Néanmoins, il est important de noter que Code Llama, que ce soit la variante générale ou celle pour le codage Python, n’est pas recommandé pour d’autres tâches typiques de l’IA générative, en raison de sa focalisation sur le domaine du codage.
Code Llama-Instruct
Quant à Code Llama-Instruct, il s’agit d’une variante d’instruction raffinée et alignée sur Code Llama, conçue pour un processus d’apprentissage continu via le réglage des instructions. Ce modèle requiert une instruction en entrée ainsi qu’une description précise du résultat souhaité en langage naturel.
Cette approche permet de mieux comprendre les attentes des utilisateurs vis-à-vis de leurs requêtes. Meta encourage particulièrement l’utilisation de Code Llama-Instruct pour la génération de code, car il a été spécialement optimisé pour fournir des réponses utiles et fiables en langage naturel dans le but d’assister les apprenants en codage.
Tests de performances
Avant de dévoiler ses nouveaux produits basés sur l’IA, Meta a procédé à des tests rigoureux pour évaluer leur efficacité.
En s’appuyant sur HumanEval, un ensemble d’évaluations visant à mesurer la précision fonctionnelle des programmes, notamment des modèles d’IA, et utilisant également MBPP (Mostly Basic Python Programming), l’entreprise a révélé que Code Llama surpassait les modèles de langage open source spécifiques au code, allant jusqu’à surpasser même Llama2, son propre modèle d’IA de conversation générale.
« Nos tests de référence ont démontré que Code Llama surpassait les modèles de langage open source spécifiques au code et surpassait même Llama2. Par exemple, le modèle Code Llama 34B a obtenu un score de 53,7 % sur HumanEval et de 56,2 % sur MBPP, ce qui est le plus élevé parmi les solutions ouvertes de pointe, et il est à égalité avec ChatGPT »
Meta
Meta aurait aussi évalué le bot de codage sur d’éventuelles possibilités d’hallucination ou d’importation de logiciels malveillants afin de limiter les risques.
Meta a également soumis le bot de codage à une évaluation pour identifier d’éventuelles possibilités d’hallucination ou d’introduction de logiciels malveillants, dans le but de minimiser les risques.
« Dans le cadre de nos efforts d’équipe rouge, nous avons effectué une évaluation quantitative du risque de Code Llama de générer du code malveillant. Nous avons créé des invites qui tentaient de solliciter du code malveillant avec une intention claire et avons évalué les réponses de Code Llama à ces invites par rapport à celles de ChatGPT (GPT3.5 Turbo). Nos résultats ont révélé que Code Llama répondait avec des réponses plus sûres. »
Meta
Outre ces aspects, l’utilisation de Code Llama implique des comportements responsables à tenir pour ne pas fragiliser les paramètres de sécurité des systèmes auxquels ces produits IA seront associés.
Parallèlement à ces considérations, l’utilisation de Code Llama nécessite des pratiques responsables pour préserver les paramètres de sécurité des systèmes auxquels ces produits IA seront liés.
Meta préconise donc une utilisation éthique, et limitée exclusivement sur la recherche et l’amélioration des compétences des développeurs, axée notamment sur :
- La définition des politiques de contenu, et des mesures d’atténuation,
- La préparation des données,
- L’affinage du modèle,
- L’évaluation et l’amélioration des performances,
- La gestion des risques associés aux entrées et sorties,
- Et la création des mécanismes de transparence et de reporting dans les interactions des utilisateurs.
Source : Meta