La startup d’IA Hugging Face et ServiceNow Research, la division R&D de ServiceNow, ont lancé StarCoder, une alternative gratuite aux systèmes d’IA générant du code sur le modèle de Copilot de GitHub.
Les systèmes générateurs de code comme AlphaCode de DeepMind ; CodeWhisperer d’Amazon ; et le Codex d’OpenAI, qui alimente Copilot, offrent un aperçu alléchant de ce qui est possible avec l’IA dans le domaine de la programmation informatique. En supposant que les problèmes éthiques, techniques et juridiques soient un jour résolus (et que les outils de codage alimentés par l’IA ne causent pas plus de bogues et d’exploits de sécurité qu’ils n’en résolvent), ils pourraient réduire considérablement les coûts de développement tout en permettant aux codeurs de se concentrer sur des tâches plus créatives.
Selon une étude de l’Université de Cambridge, au moins la moitié des efforts des développeurs sont consacrés au débogage et non à la programmation active, ce qui coûte à l’industrie du logiciel environ 312 milliards de dollars par an. Mais jusqu’à présent, seule une poignée de systèmes d’IA générant du code ont été mis gratuitement à la disposition du public, ce qui reflète les incitations commerciales des organisations qui les construisent (voir : Replit).
StarCoder, qui, en revanche, est autorisé à permettre une utilisation libre de droits par quiconque, y compris les entreprises, a été formé sur plus de 80 langages de programmation ainsi que sur le texte des référentiels GitHub, y compris la documentation et les cahiers de programmation. StarCoder s’intègre à l’éditeur de code Visual Studio Code de Microsoft et, comme ChatGPT d’OpenAI, peut suivre des instructions de base (par exemple, « créer une interface utilisateur d’application ») et répondre à des questions sur le code.
Leandro von Werra, ingénieur en apprentissage automatique chez Hugging Face et co-responsable de StarCoder, affirme que StarCoder correspond ou surpasse le modèle d’IA d’OpenAI qui a été utilisé pour alimenter les versions initiales de Copilot.
« Une chose que nous avons apprise des versions telles que Stable Diffusion l’année dernière est la créativité et la capacité de la communauté open source », a déclaré von Werra à TechCrunch dans une interview par e-mail. « Quelques semaines après la sortie, la communauté avait construit des dizaines de variantes du modèle ainsi que des applications personnalisées. La publication d’un puissant modèle de génération de code permet à chacun de l’affiner et de l’adapter à ses propres cas d’utilisation et permettra d’innombrables applications en aval.
Construire un modèle
StarCoder fait partie du projet BigCode de plus de 600 personnes de Hugging Face et ServiceNow, lancé à la fin de l’année dernière, qui vise à développer des systèmes d’IA « à la pointe de la technologie » pour le code de manière « ouverte et responsable ». Hugging Face a fourni un cluster de calcul interne de 512 GPU Nvidia V100 pour former le modèle StarCoder.
Divers groupes de travail BigCode se concentrent sur des sous-thèmes tels que la collecte d’ensembles de données, la mise en œuvre de méthodes de formation de modèles de code, le développement d’une suite d’évaluation et la discussion des meilleures pratiques éthiques. Par exemple, le groupe de travail juridique, éthique et gouvernance a exploré des questions sur les licences de données, l’attribution du code généré au code original, la suppression des informations personnelles identifiables (PII) et les risques de production de code malveillant.
Inspiré par les efforts antérieurs de Hugging Face pour ouvrir des systèmes de génération de texte sophistiqués, BigCode cherche à résoudre certaines des controverses suscitées par la pratique de la génération de code alimentée par l’IA. L’organisation à but non lucratif Software Freedom Conservancy, entre autres, a critiqué GitHub et OpenAI pour avoir utilisé du code source public, dont tous ne sont pas sous licence permissive, pour former et monétiser Codex. Codex est disponible via les API payantes d’OpenAI et de Microsoft, tandis que GitHub a récemment commencé à facturer l’accès à Copilot.
Pour leur part, GitHub et OpenAI affirment que Codex et Copilot – protégés par la doctrine de l’utilisation équitable, du moins aux États-Unis – ne vont à l’encontre d’aucun accord de licence.
« La publication d’un système de génération de code capable peut servir de plate-forme de recherche pour les institutions intéressées par le sujet mais qui ne disposent pas des ressources ou du savoir-faire nécessaires pour former de tels modèles », a déclaré von Werra. « Nous pensons qu’à long terme, cela mène à des recherches fructueuses sur la sécurité, les capacités et les limites des systèmes générateurs de code. »
Contrairement à Copilot, le StarCoder de 15 milliards de paramètres a été formé pendant plusieurs jours sur un ensemble de données open source appelé The Stack, qui compte plus de 19 millions de référentiels organisés sous licence permissive et plus de six téraoctets de code dans plus de 350 langages de programmation. Dans l’apprentissage automatique, les paramètres sont les parties d’un système d’IA apprises à partir de données de formation historiques et définissent essentiellement la compétence du système sur un problème, tel que la génération de code.
Parce qu’il est sous licence permissive, le code de The Stack peut être copié, modifié et redistribué. Mais le projet BigCode offre également aux développeurs un moyen de « se retirer » de The Stack, à l’instar des efforts déployés ailleurs pour permettre aux artistes de supprimer leur travail des ensembles de données de formation d’IA texte-image.
L’équipe BigCode a également travaillé pour supprimer les PII de The Stack, tels que les noms, les noms d’utilisateur, les adresses e-mail et IP, ainsi que les clés et les mots de passe. Ils ont créé un ensemble de données distinct de 12 000 fichiers contenant des PII, qu’ils prévoient de diffuser aux chercheurs via un « accès sécurisé ».
Au-delà de cela, l’équipe BigCode a utilisé l’outil de détection de code malveillant de Hugging Face pour supprimer les fichiers de The Stack qui pourraient être considérés comme « dangereux », tels que ceux avec des exploits connus.
Les problèmes de confidentialité et de sécurité avec les systèmes d’IA générative, qui sont pour la plupart formés sur des données relativement non filtrées du Web, sont bien établis. ChatGPT a déjà fourni le numéro de téléphone d’un journaliste. Et GitHub a reconnu que Copilot peut générer des clés, des informations d’identification et des mots de passe vus dans ses données de formation sur de nouvelles chaînes.
« Le code constitue l’une des propriétés intellectuelles les plus sensibles pour la plupart des entreprises », a déclaré von Werra. « En particulier, le partager en dehors de leur infrastructure pose d’immenses défis. »
À son avis, certains experts juridiques ont fait valoir que les systèmes d’IA générant du code pourraient mettre les entreprises en danger si elles intégraient involontairement du texte protégé par le droit d’auteur ou sensible des outils dans leur logiciel de production. Comme le note Elaine Atwell dans un article sur le blog d’entreprise de Kolide, parce que des systèmes comme Copilot enlèvent le code de ses licences, il est difficile de dire quel code est autorisé à déployer et lequel pourrait avoir des conditions d’utilisation incompatibles.
En réponse aux critiques, GitHub a ajouté une bascule qui permet aux clients d’empêcher l’affichage du code suggéré correspondant au contenu public potentiellement protégé par le droit d’auteur de GitHub. Amazon, emboîtant le pas, demande à CodeWhisperer de mettre en évidence et éventuellement de filtrer la licence associée aux fonctions qu’il suggère et qui ressemblent à des extraits trouvés dans ses données de formation.
Chauffeurs commerciaux
Alors, qu’est-ce que ServiceNow, une entreprise qui s’occupe principalement de logiciels d’automatisation d’entreprise, en retire ? Un « modèle performant et une licence de modèle d’IA responsable qui permet une utilisation commerciale », a déclaré Harm de Vries, responsable du Large Language Model Lab chez ServiceNow Research et co-responsable du projet BigCode.
On imagine que ServiceNow intégrera éventuellement StarCoder dans ses produits commerciaux. La société n’a pas révélé combien, en dollars, elle a investi dans le projet BigCode, sauf que la quantité de calcul donnée était « substantielle ».
« Le laboratoire des grands modèles linguistiques de ServiceNow Research acquiert une expertise sur le développement responsable de modèles d’IA générative afin d’assurer le déploiement sûr et éthique de ces modèles puissants pour nos clients », a déclaré de Vries. « L’approche de recherche scientifique ouverte de BigCode offre aux développeurs et aux clients de ServiceNow une transparence totale sur la façon dont tout a été développé et démontre l’engagement de ServiceNow à apporter des contributions socialement responsables à la communauté. »
StarCoder n’est pas open source au sens le plus strict. Au lieu de cela, il est publié dans le cadre d’un système de licence, OpenRAIL-M, qui comprend des restrictions de cas d’utilisation « juridiquement exécutoires » auxquelles les dérivés du modèle – et les applications utilisant le modèle – doivent se conformer.
Par exemple, les utilisateurs de StarCoder doivent accepter de ne pas utiliser le modèle pour générer ou distribuer du code malveillant. Bien que les exemples réels soient rares (du moins pour l’instant), les chercheurs ont démontré comment l’IA comme StarCoder pourrait être utilisée dans les logiciels malveillants pour échapper aux formes de détection de base.
Reste à savoir si les développeurs respectent réellement les termes de la licence. Mis à part les menaces juridiques, rien au niveau technique de base ne les empêche de ne pas tenir compte des conditions à leurs propres fins.
C’est ce qui s’est passé avec la Stable Diffusion susmentionnée, dont la licence tout aussi restrictive a été ignorée par les développeurs qui ont utilisé le modèle d’IA générative pour créer des images de deepfakes de célébrités.
Mais la possibilité n’a pas découragé von Werra, qui estime que les inconvénients de ne pas publier StarCoder ne sont pas compensés par les avantages.
« Au lancement, StarCoder ne fournira pas autant de fonctionnalités que GitHub Copilot, mais avec sa nature open source, la communauté peut aider à l’améliorer en cours de route et à intégrer des modèles personnalisés », a-t-il déclaré.
Les référentiels de code StarCoder, le cadre de formation des modèles, les méthodes de filtrage des ensembles de données, la suite d’évaluation de code et les cahiers d’analyse de recherche sont disponibles sur GitHub à partir de cette semaine. Le projet BigCode les maintiendra à l’avenir alors que les groupes cherchent à développer des modèles de génération de code plus performants, alimentés par les contributions de la communauté.
Il y a certainement du travail à faire. Dans le document technique accompagnant la publication de StarCoder, Hugging Face et ServiceNow affirment que le modèle peut produire un contenu inexact, offensant et trompeur ainsi que des PII et du code malveillant qui ont réussi à passer l’étape de filtrage de l’ensemble de données.