StarCoder 2 est une IA génératrice de code qui fonctionne sur la plupart des GPU.

StarCoder 2 est une IA génératrice de code qui fonctionne sur la plupart des GPU.

Les développeurs adoptent des générateurs de code alimentés par l’IA – des services tels que GitHub Copilot et Amazon CodeWhisperer, ainsi que des modèles en libre accès tels que le Code Llama de Meta – à un rythme effréné. Mais ces outils sont loin d’être idéaux. Beaucoup ne sont pas gratuits. D’autres le sont, mais seulement sous des licences qui les empêchent d’être utilisés dans des contextes commerciaux courants.

Consciente de la demande d’alternatives, la startup Hugging Face s’est associée il y a plusieurs années à ServiceNow, la plateforme d’automatisation des flux de travail, pour créer StarCoder, un générateur de code open source dont la licence est moins restrictive que celle de certains autres logiciels. L’original a été mis en ligne au début de l’année dernière, et le travail sur la suite, StarCoder 2, est en cours depuis lors.

StarCoder 2 n’est pas un modèle unique de génération de code, mais plutôt une famille. Sorti aujourd’hui, il se décline en trois variantes, dont les deux premières peuvent fonctionner sur la plupart des GPU grand public modernes :

  • Un modèle à 3 milliards de paramètres (3B) entraîné par ServiceNow
  • Un modèle à 7 milliards de paramètres (7B) entraîné par Hugging Face
  • Un modèle de 15 milliards de paramètres (15B) entraîné par Nvidia, le plus récent supporter du projet StarCoder.

(Les « paramètres » sont les parties d’un modèle apprises à partir des données d’entraînement et définissent essentiellement la capacité du modèle à résoudre un problème, en l’occurrence la génération de code).

Comme la plupart des autres générateurs de code, StarCoder 2 peut suggérer des façons de compléter les lignes de code inachevées, ainsi que résumer et récupérer des bribes de code lorsqu’on lui pose des questions en langage naturel. Entraîné avec quatre fois plus de données que le StarCoder original (67,5 téraoctets contre 6,4 téraoctets), StarCoder 2 offre ce que Hugging Face, ServiceNow et Nvidia qualifient de performances « significativement » améliorées à des coûts d’exploitation moindres.

StarCoder 2 peut être affiné  » en quelques heures  » à l’aide d’un GPU comme le Nvidia A100 sur des données de première ou de tierce partie pour créer des applications telles que des chatbots et des assistants personnels de codage. Et comme il a été entraîné sur un ensemble de données plus vaste et plus diversifié que le StarCoder original (~619 langages de programmation), StarCoder 2 peut faire des prédictions plus précises et mieux adaptées au contexte – du moins hypothétiquement.

« StarCoder 2 a été créé spécialement pour les développeurs qui ont besoin de créer des applications rapidement », a déclaré Harm de Vries, responsable de l’équipe de développement StarCoder 2 de ServiceNow, lors d’une interview avec TechCrunch. « Avec StarCoder 2, les développeurs peuvent utiliser ses capacités pour rendre le codage plus efficace sans sacrifier la vitesse ou la qualité.

Je me risquerais à dire que tous les développeurs ne sont pas d’accord avec M. de Vries sur les points relatifs à la vitesse et à la qualité. Les générateurs de code promettent de rationaliser certaines tâches de codage, mais cela a un coût.

Une étude récente de Stanford a montré que les ingénieurs qui utilisent des systèmes de génération de code sont plus susceptibles d’introduire des failles de sécurité dans les applications qu’ils développent. Par ailleurs, un sondage réalisé par Sonatype, l’entreprise spécialisée dans la cybersécurité, montre que la majorité des développeurs s’inquiètent du manque de visibilité sur la manière dont le code est produit par les générateurs de code et de la « prolifération du code » due au fait que les générateurs produisent une quantité de code trop importante pour être gérée.

La licence de StarCoder 2 pourrait également constituer un obstacle pour certains.

StarCoder 2 est sous licence RAIL-M de Hugging Face, qui vise à promouvoir une utilisation responsable en imposant des restrictions « légères » à la fois aux détenteurs de licences de modèles et aux utilisateurs en aval. Bien que moins contraignant que beaucoup d’autres licences, RAIL-M n’est pas vraiment « ouvert » dans le sens où il ne permet pas aux développeurs d’utiliser StarCoder 2 pour chaque toutes les applications imaginables (les applications de conseils médicaux sont strictement interdites, par exemple). Certains commentateurs affirment que les exigences de RAIL-M pourraient être trop vagues pour être respectées dans tous les cas – et que RAIL-M pourrait entrer en conflit avec des réglementations liées à l’IA telles que la loi européenne sur l’IA.

Si l’on fait abstraction de tout cela, StarCoder 2 est-il vraiment supérieur aux autres générateurs de code existants, qu’ils soient gratuits ou payants ?

Selon le benchmark, il semble être plus efficace que l’une des versions de Code Llama, Code Llama 33B. Hugging Face indique que StarCoder 2 15B correspond à Code Llama 33B sur un sous-ensemble de tâches de complétion de code à une vitesse deux fois supérieure. On ne sait pas exactement quelles tâches ; Hugging Face ne l’a pas précisé.

StarCoder 2, en tant que collection de modèles open source, présente également l’avantage de pouvoir être déployé localement et d' »apprendre » le code source ou la base de code d’un développeur – une perspective attrayante pour les développeurs et les entreprises qui hésitent à exposer leur code à une IA hébergée dans le nuage. Dans une étude réalisée en 2023 par Portal26 et CensusWide, 85 % des entreprises ont déclaré qu’elles hésitaient à adopter des GenAI comme des générateurs de code en raison des risques liés à la confidentialité et à la sécurité – comme le partage d’informations sensibles par les employés ou la formation des fournisseurs sur des données propriétaires.

Hugging Face, ServiceNow et Nvidia affirment également que StarCoder 2 est plus éthique – et moins dangereux sur le plan juridique – que ses rivaux.

Tous les modèles GenAI régurgitent – en d’autres termes, ils recrachent une copie miroir des données sur lesquelles ils ont été formés. Il n’est pas nécessaire d’avoir une imagination débordante pour comprendre pourquoi cela pourrait causer des problèmes à un développeur. Avec des générateurs de code formés sur du code protégé par des droits d’auteur, il est tout à fait possible que, même avec des filtres et des mesures de protection supplémentaires, les générateurs recommandent involontairement du code protégé par des droits d’auteur et omettent de l’indiquer comme tel.

Quelques fournisseurs, dont GitHub, Microsoft (la société mère de GitHub) et Amazon, se sont engagés à fournir une couverture juridique dans les cas où un client d’un générateur de code est accusé de violer des droits d’auteur. Mais la couverture varie d’un fournisseur à l’autre et est généralement limitée à la clientèle des entreprises.

Contrairement aux générateurs de code formés à l’aide de code protégé par le droit d’auteur (GitHub Copilot, entre autres), StarCoder 2 a été formé uniquement à l’aide de données sous licence du Software Heritage, l’organisation à but non lucratif qui fournit des services d’archivage pour le code. Avant la formation de StarCoder 2, BigCode, l’équipe inter-organisationnelle à l’origine d’une grande partie de la feuille de route de StarCoder 2, a donné aux propriétaires de code la possibilité de se retirer du jeu de formation s’ils le souhaitaient.

Comme pour le StarCoder original, les données d’entraînement de StarCoder 2 sont à la disposition des développeurs qui peuvent les forker, les reproduire ou les auditer à leur guise.

Leandro von Werra, ingénieur en apprentissage machine chez Hugging Face et codirecteur de BigCode, a fait remarquer que si les générateurs de code ouverts se sont multipliés ces derniers temps, peu d’entre eux ont été accompagnés d’informations sur les données qui ont servi à les former et, en fait, sur la manière dont ils ont été formés.

« D’un point de vue scientifique, le problème est que la formation n’est pas reproductible, mais aussi qu’en tant que producteur de données (c’est-à-dire quelqu’un qui télécharge son code sur GitHub), vous ne savez pas si et comment vos données ont été utilisées », a déclaré M. von Werra lors d’une interview. « StarCoder 2 résout ce problème en étant totalement transparent sur l’ensemble du pipeline de formation, depuis la récupération des données de préformation jusqu’à la formation elle-même. »

StarCoder 2 n’est pas parfait, cela dit. Comme d’autres générateurs de code, il est susceptible d’être biaisé. M. De Vries note qu’il peut générer du code avec des éléments qui reflètent des stéréotypes de genre et de race. Et comme StarCoder 2 a été formé sur des commentaires, du code Python et Java principalement en langue anglaise, ses performances sont plus faibles dans les langues autres que l’anglais et dans les codes « à faibles ressources » tels que Fortran et Haskell.

Néanmoins, M. von Werra affirme qu’il s’agit d’un pas dans la bonne direction.

« Nous croyons fermement que l’établissement de la confiance et de la responsabilité avec les modèles d’IA nécessite la transparence et l’auditabilité de l’ensemble du pipeline du modèle, y compris les données d’entraînement et les recettes d’entraînement », a-t-il déclaré. « StarCoder 2 (montre) comment des modèles entièrement ouverts peuvent offrir des performances compétitives.

Vous vous demandez peut-être – comme cet auteur – ce qui pousse Hugging Face, ServiceNow et Nvidia à investir dans un projet tel que StarCoder 2. Après tout, il s’agit d’entreprises, et la formation de modèles n’est pas bon marché.

Pour autant que je sache, il s’agit d’une stratégie qui a fait ses preuves : encourager la bonne volonté et créer des services payants à partir des versions open source.

ServiceNow a déjà utilisé StarCoder pour créer Now LLM, un produit de génération de code adapté aux modèles de flux de travail, aux cas d’utilisation et aux processus de ServiceNow. Hugging Face, qui propose des plans de conseil pour la mise en œuvre de modèles, fournit des versions hébergées des modèles StarCoder 2 sur sa plateforme. Il en va de même pour Nvidia, qui met StarCoder 2 à disposition par le biais d’une API et d’un frontal web.

Pour les développeurs expressément intéressés par l’expérience hors ligne gratuite, StarCoder 2 – les modèles, le code source et plus encore – peut être téléchargé à partir de la page GitHub du projet.

IA