IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

StarCoder 2 : un outil d'IA de génération code qui fonctionnerait sur la plupart des GPU grand public modernes,
Il serait plus performant que Code Llama 33B de Meta et prétendument open source

Le , par Mathis Lucas

33PARTAGES

5  0 
Hugging Face, Nvidia et ServiceNow ont récemment dévoilé la nouvelle génération de l'assistant d'IA de génération de code StarCoder. Cette nouvelle mouture vise à offrir une meilleure alternative aux développeurs. Il s'agit d'une famille de modèles qui fonctionneraient sur la plupart des GPU grand public et qui pourraient être affinés et déployés localement. Il prétend également offrir des performances, une transparence et une éthique accrues par rapport aux autres générateurs de code. Cependant, StarCoder est controversé, les critiques affirmant que les restrictions dont il fait l'objet l'empêchent d'être un outil de génération de code entièrement open source.

StarCoder 2 : un générateur de code qui serait plus performant que Code Llama

Les outils d'IA de génération de code se popularisent de plus en plus avec des acteurs établis comme GitHub Copilot, Amazon CodeWhisperer ou Code Llama. Toutefois, ces outils sont loin d'être idéaux. Beaucoup ne sont pas libres. D'autres le sont, mais seulement sous des licences qui les empêchent d'être utilisés dans des contextes commerciaux courants. Meta affirme que Code Llama est un outil open source, mais il est distribué sous une licence restrictive qui fait l'objet de controverses dans la communauté. En réponse à ces restrictions, Hugging Face et ServiceNow ont lancé en 2023 le modèle open source StarCoder.


D'après l'équipe, StarCoder est un assistant d'IA open source de génération de code dont la licence est moins restrictive que celle de certains des autres outils existants. L'équipe vient de lancer StarCoder 2 et affirme que cette nouvelle version s'appuie sur l'originale en utilisant plus de données, plus de paramètres et plus de collaborateurs. Il existe trois variantes et, selon l'équipe, les deux premières peuvent fonctionner sur la plupart des GPU grand public modernes :

  1. un modèle de 3 milliards de paramètres (3B) formé par ServiceNow ;
  2. un modèle de 7 milliards de paramètres (7B) formé par Hugging Face ;
  3. un modèle de 15 milliards de paramètres (15B) entraîné par Nvidia.


Pour mémoire, les paramètres sont les parties d'un modèle d'IA qui sont apprises à partir des données et qui déterminent ses compétences pour une tâche donnée. Dans le cas présent, il s'agit de générer du code. Le modèle aurait été entraîné sur 67,5 téraoctets de données de code provenant de Software Heritage, une organisation à but non lucratif qui archive du code provenant de diverses sources. Cela représente dix fois plus de données que la version initiale de StarCoder, qui utilisait 6,4 téraoctets. Selon l'équipe, StarCoder 2 offre des performances "significativement" améliorées à des coûts d'exploitation inférieurs.

Comme la plupart des autres générateurs de code, StarCoder 2 peut suggérer différentes 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. Il peut aussi être affiné sur des données personnalisées pour créer des applications spécifiques, telles que des chatbots ou des assistants de codage personnels. Cela pourrait se faire en quelques heures à l'aide d'un GPU comme le Nvidia A100. De plus, il peut apprendre à partir du code source ou de la base de code d'un développeur, ce qui le rend plus adaptatif et personnalisé.

« StarCoder 2 a été créé spécialement pour les développeurs qui ont besoin de créer des applications rapidement. Avec StarCoder2, les développeurs peuvent utiliser ses capacités pour rendre le codage plus efficace sans sacrifier la vitesse ou la qualité », a déclaré Harm de Vries, responsable de l'équipe de développement StarCoder 2 chez ServiceNow, lors d'une interview accordée à TechCrunch. L'équipe indique que StarCoder est "entièrement" open source, mais dans la communauté, la licence fait toutefois l'objet de controverses.

Les principales caractéristiques et les avantages du générateur de code StarCoder 2

Selon les créateurs de StarCoder 2, les principaux avantages de leur générateur de code sont les suivants :

  • performance : StarCoder serait capable de générer du code plus rapidement et avec plus de précision que d'autres générateurs de code, comme Code Llama, un modèle populaire en libre accès. Hugging Face affirme que StarCoder 2 15B peut égaler Code Llama 33B sur certaines tâches de complétion de code à une vitesse deux fois supérieure ;
  • transparence : l'équipe affirme que StarCoder est "entièrement ouvert et reproductible". Les développeurs peuvent accéder aux modèles, au code source, aux données d'entraînement et à la méthode d'entraînement à partir de la page GitHub du projet. Ils peuvent également réaliser un fork, reproduire ou auditer les modèles à leur guise. Cela permet aux développeurs de mieux comprendre et contrôler le fonctionnement du générateur de code et les données qu'il utilise ;
  • éthique : StarCoder est sous licence BigCode Open RAIL-M 1.0, une licence qui, selon l'équipe, encourage l'utilisation responsable de l'IA en imposant certaines restrictions aux détenteurs de licences du modèle et aux utilisateurs en aval ;
  • la licence empêche les utilisateurs d'utiliser StarCoder, par exemple, pour les applications de conseils médicaux ou à des fins malveillantes. La licence vise également à se conformer aux lois et réglementations en vigueur, telles que la loi européenne sur l'IA ;
  • l'équipe affirme que StarCoder 2 n'a été entraîné que sur des données sous licence du Software Heritage, et les propriétaires de code ont eu la possibilité de se retirer de l'ensemble d'entraînement. Cela réduit le risque de violation des droits de propriété intellectuelle ou d'exposition d'informations sensibles.


Les limites de StarCoder 2 et les potentiels inconvénients relatifs à son utilisation

Malgré ses avantages, StarCoder 2 n'est pas parfait. Il présente quelques limitations et défis, tels que :

  • licence : la licence de StarCoder 2, bien que moins restrictive que d'autres, n'est pas vraiment ouverte. Elle impose toujours certaines conditions qui peuvent ne pas convenir à tous les développeurs ou à tous les cas d'utilisation. Certains critiques affirment également que la licence est trop vague ou trop complexe à suivre et qu'elle peut entrer en conflit avec d'autres réglementations ou licences ;
  • sécurité : StarCoder 2, comme d'autres générateurs de code, peut introduire des failles de sécurité dans le code qu'il produit. Une étude de Stanford a montré que les ingénieurs qui utilisent des systèmes de génération de code sont plus susceptibles de créer des applications non sécurisées. Par conséquent, les développeurs devraient toujours examiner et tester le code généré par StarCoder 2 avant de l'utiliser en production ;
  • biais : StarCoder 2, comme d'autres modèles d'IA, peut refléter des biais provenant des données sur lesquelles il a été entraîné. Par exemple, il peut générer du code contenant des stéréotypes de genre ou de race. Il peut également être moins performant dans des langues autres que l'anglais ou dans des langages de programmation moins courants, tels que Fortran ou Haskell.


La sécurité des générateurs de code devient un véritable défi pour les développeurs et les entreprises. Une enquête de Sonatype, une 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. Selon une étude de GitClear, l'utilisation de GitHub Copilot pour la programmation entraîne une baisse de la qualité globale du code et une quantité importante de code redondant.

Selon Bill Harding, fondateur de GitClear, l'essentiel est que les assistants de code de l'IA sont très bons pour ajouter du code, mais ils peuvent causer "une dette technique induite par l'IA". « L'ajout rapide de code est souhaitable si vous travaillez de manière isolée ou sur un problème nouveau. Mais un code ajouté à la va-vite est néfaste pour les équipes chargées d'en assurer la maintenance par la suite », a déclaré Harding. En d'autres termes, une plus grande quantité n'est pas toujours synonyme d'une meilleure qualité. Selon lui, cette tendance pourrait poser de nombreux problèmes aux organisations à l'avenir.

Les restrictions de la licence RAIL-M l'empêchent d'être une licence open source

RAIL-M fait partie de la famille "Open Responsible AI Licenses" (Open RAIL), qui est une collection de licences d'IA visant à promouvoir une utilisation responsable en imposant des restrictions d'utilisation comportementale aux détenteurs de licences du modèle et aux utilisateurs en aval. La famille Open RAIL n'est pas la seule : elle fait partie d'une nouvelle vague de licences (voir, par exemple, la licence TII Falcon LLM) née de l'intérêt récent du public pour l'IA. RAIL-M applique spécifiquement ces restrictions d'utilisation au modèle (le "M" de RAIL-M signifie "modèle". La licence RAIL-M met l'éthique au premier plan.

En effet, les nouveaux dilemmes éthiques posés par l'IA font couler beaucoup d'encre. Technologues, journalistes et entreprises ont tiré la sonnette d'alarme sur les divers préjudices sociétaux que l'IA pourrait exacerber. Les régulateurs s'en rendent compte. Le PDG d'OpenAI, Sam Altman, a témoigné lors d'une audition au Sénat sur les risques de l'IA, et un comité clé de législateurs du Parlement européen a approuvé la loi européenne sur l'IA, qui vise à atténuer les effets néfastes potentiels de l'IA. RAIL-M place ces considérations éthiques au premier plan et met en place certaines restrictions pour les prévenir.

Cependant, Robin Schulman, de GitLab, RAIL-M n'est pas parfait en pratique. « Tout d'abord, décrire RAIL-M comme une licence "ouverte" - comme les auteurs de RAIL-M l'ont fait dans son titre - est trompeur. Les auteurs de RAIL-M confondent l'accès libre de droits et la souplesse d'utilisation et de redistribution avec les licences véritablement "ouvertes". L'Open Source Initiative (OSI) définit l'open source comme un logiciel qui, entre autres qualités, "ne doit pas empêcher quiconque d'utiliser le programme dans un domaine d'activité spécifique" », a écrit Schulman dans un billet de blogue publié l'année dernière.

« Les restrictions d'utilisation de RAIL-M - comprenant l'interdiction de fournir des conseils médicaux et de générer des informations destinées à l'administration de la justice ou à l'application de la loi - l'empêchent d'être une licence véritablement "ouverte" », a-t-elle ajouté. En outre, Schulman affirme que les autorités de régulation, telles que celles de l'Union européenne, adopteront probablement dans un avenir proche des législations imposant certaines restrictions d'utilisation aux outils d'IA. RAIL-M ne précise pas comment ses propres exigences en matière d'utilisation interagiront avec les lois relatives à l'IA.

Selon Schulman, cela peut poser un problème si, par exemple, une restriction RAIL-M entre en conflit avec l'une de ces nouvelles réglementations. Enfin, d'autres critiques ont également exprimé leur inquiétude quant au fait que certaines des exigences de RAIL-M pourraient être trop vagues pour être respectées. « Il est certain que les questions de race et de genre se posent avec les IA de type chatbot, mais si votre IA génératrice de code débite des absurdités sexistes ou racistes, c'est qu'elle a de graves hallucinations », peut-on lire dans les commentaires.

En réponse aux critiques en rapport avec la licence de StarCoder, un porte-parole de Hugging Face a déclaré : « la licence a été soigneusement conçue pour maximiser la conformité avec les lois et réglementations en vigueur ». Par ailleurs, l'équipe affirme que StarCoder peut fonctionner sur "la plupart des GPU grand public modernes", mais cette déclaration est remise en cause par les analystes. Pour de nombreux critiques, il est difficile de qualifier de "GPU grand public" l'accélérateur d'IA A100 de Nvidia, qui peut coûter jusqu'à 10 000 dollars l'unité.

Les problèmes juridiques relatifs à l'utilisation des outils de génération de code

Les modèles de génération de contenu régurgitent 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. Ainsi, même avec des filtres et des mesures de protection supplémentaires en place, il est tout à fait possible que les générateurs recommandent involontairement du code protégé par des droits d'auteur et omettent de l'indiquer comme tel. Dans le cas de GitHub Copilot, de nombreuses actions en justice accusent Microsoft d'avoir plagié le travail des développeurs.

Quelques fournisseurs, comme GitHub, Microsoft et Amazon, se sont engagés à fournir une couverture juridique dans les situations où un client d'un générateur de code est accusé de violer les droits d'auteur. Mais cette couverture varie d'un fournisseur à l'autre et se limite généralement à 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 à 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. Le but est de réduire les plaintes relatives au droit d'auteur. Comme pour la version originale de StarCoder, les données d'entraînement de StarCoder 2 sont à la disposition des développeurs. L'équipe a également fait remarquer que, malgré la prolifération récente de générateurs de code open source, peu d'entre eux ont été accompagnés d'informations sur les données qui ont servi à les former.

« 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. 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 », a déclaré Leandro von Werra, ingénieur en apprentissage automatique chez Hugging Face et codirecteur de BigCode, lors d'une interview avec TechCrunch.

Dans une étude réalisée l'année dernière par Portal26 et CensusWide, 85 % des entreprises ont déclaré qu'elles hésitaient à adopter des outils d'IA générative comme des générateurs de code en raison des risques liés à la confidentialité et à la sécurité. Parmi les principaux risques, on peut citer le partage d'informations sensibles par les employés ou la formation des fournisseurs sur des données propriétaires. Cependant, Hugging Face, ServiceNow et Nvidia affirment que StarCoder 2 est plus éthique - et moins risqué sur le plan juridique - que ses rivaux.

Sources : Hugging Face, StarCoder 2 (1, 2)

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de l'assistant d'IA de génération de code StarCoder ?
Selon vous, peut-on dire que StarCoder est un outil open source ? Pourquoi ?
Que pensez-vous des limites de StarCoder et des générateurs de code en général ?
Que pensez-vous des préoccupations en matière de sécurité relatives à l'utilisation de ces outils ?
Utilisez-vous un générateur de code ? Si oui, partagez votre retour d'expérience avec la communauté.

Voir aussi

L'utilisation de l'assistant d'IA GitHub Copilot pour la programmation entraîne une baisse de la qualité globale du code et une quantité importante de code redondant, selon une étude

GitHub lance Copilot X, l'expérience des développeurs alimentée par l'IA, grâce à l'ajout d'une fonction de chat et de voix, permettant de demander comment accomplir certaines tâches de codage

Meta lance un outil d'IA appelé Code Llama capable de générer du code informatique et de déboguer le code écrit par un programmeur, mais les critiques affirment que ces outils ne sont pas fiables

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de mach1974
Membre averti https://www.developpez.com
Le 01/03/2024 à 17:22
la librairie Tensorflow est multi gpu avec le cpython ...
0  0