GrosCode
Gratuit
BigCode est un projet de collaboration scientifique ouverte lancé conjointement par Hugging Face et ServiceNow Research, dédié au développement ouvert et responsable du Code Large Language Model (Code LLM). Les principaux résultats incluent les modèles de la série StarCoder (StarCoder 15B, StarCoder2 3B/7B/15B), le benchmark BigCodeBench de l'ensemble de données The Stack et la plateforme d'évaluation de code BigCodeArena.
BigCode
Paramètres et statistiques de base
BigCode est un projet de collaboration scientifique ouverte lancé conjointement par Hugging Face et ServiceNow Research, axé sur la recherche open source et le développement responsable du Code Large Language Model (Code LLM). Le site officiel du projet se positionne comme « une collaboration scientifique ouverte, engagée dans le développement ouvert et responsable de grands modèles de code ». Il ne s'agit pas d'un produit unique, mais d'un ensemble complet d'écosystèmes open source couvrant des modèles, des données, des outils d'évaluation et de déploiement.
| Projets | Informations publiques |
|---|---|
| Positionnement officiel | Collaboration scientifique ouverte, engagée dans le développement ouvert et responsable de grands modèles de langage de code |
| Commanditaire | Visage câlin + Recherche ServiceNow |
| Forme organisationnelle | Collaboration scientifique ouverte à but non lucratif |
| Modèle de base | StarCoder (15,5B), StarCoder2 (3B/7B/15B) |
| Ensemble de données de base | The Stack (v1/v2, ensemble de données maximal de pré-formation du code sous licence) |
| Cadre d'évaluation | BigCodeBench, BigCodeArena, harnais d'évaluation BigCode |
| Licence Open Source | Apache-2.0 (dépôt principal), BigCode OpenRAIL-M v1 (modèle) |
| Taille de la communauté | GitHub 1,8k Suivre HF 2,1k Suivre 359 membres de l'équipe |
| Dernière version du modèle | StarCoder2-15B (2024-02-29) |
| Plateformes prises en charge | Web (HF Spaces), API (TGI), auto-hébergé |
Échelle communautaire : Il existe 29 entrepôts publics organisés par GitHub. L'entrepôt StarCoder est en tête de l'entrepôt StarCoder2 avec 7,5 000 étoiles, 2,1 000 étoiles et BigCode Evaluation Harness 1,1 000 étoiles. Il existe 69 modèles, 93 ensembles de données et 29 espaces dans l'organisation Hugging Face. Le modèle le plus téléchargé, StarCoder2-3B, a accumulé 181 000 téléchargements.
Couverture des résultats : BigCode couvre simultanément quatre sections : formation de modèles, gouvernance des données, tests de référence et déploiement d'inférence. Ceci est relativement rare parmi les projets de modèles de code open source : la plupart des projets se concentrent uniquement sur une seule section (par exemple, uniquement la publication de modèles ou la fourniture uniquement de tests de référence).
Reconnaissance des utilisateurs et du marché
La reconnaissance de BigCode se reflète dans l'adoption par la communauté open source et dans les citations universitaires, plutôt que dans les enregistrements d'utilisateurs ou les chiffres de revenus au sens traditionnel du terme.
Popularité de la communauté Open Source : les référentiels de la série StarCoder totalisent plus de 10 000 étoiles GitHub. BigCode Evaluation Harness (1,1k étoiles) est devenu l'un des cadres standard pour l'évaluation des modèles de code et est cité comme outil d'évaluation par plusieurs projets de modèles tiers.
Adoption au niveau de l'entreprise : ServiceNow, en tant que co-sponsor, a utilisé en interne le modèle StarCoder pour les scénarios d'intelligence de code ; Hugging Face fournit des services d'inférence StarCoder2 via l'inférence de génération de texte (TGI). Il existe déjà plusieurs modèles verticaux basés sur le réglage fin de StarCoder dans l'écosystème open source (13 modèles d'adaptateurs et 21 modèles affinés sont répertoriés dans l'arborescence des modèles Hugging Face).
Impact académique : l'article StarCoder2 (arXiv 2402.19173) a été publié en février 2024, l'article BigCodeBench a été accepté par l'ICLR 2025 et l'article SelfCodeAlign a été accepté par NeurIPS 2024. Le nombre de citations académiques produites par le projet dans le domaine de la génération de code continue de croître.
Conditions préalables à la mise en œuvre : La série StarCoder est un modèle de base plutôt qu'un modèle de commande. Cela nécessite un réglage fin ou une ingénierie rapide pour s'adapter à des tâches spécifiques (telles que la complétion du code, la réparation des bogues et la génération de tests). Cela ne fonctionne pas bien lorsqu'il est utilisé directement de manière conversationnelle.
Avantage de coût
L'avantage en termes de coût du projet BigCode ne réside pas dans la concurrence sur les prix des API, mais dans l'ouverture de tous les poids de modèles sous la licence Apache-2.0, permettant aux équipes d'obtenir des capacités de génération de code sans frais de licence.
Côté/Individuel : le modèle StarCoder2 est entièrement gratuit et peut être expérimenté en ligne via Hugging Face Spaces ou exécuté sur un GPU local. Le modèle 3B peut être exécuté sur un GPU grand public (tel que le RTX 3090) avec une quantification de 8 bits et occupe environ 9 Go de mémoire vidéo ; le modèle 15B nécessite environ 17 Go de mémoire vidéo avec quantification 8 bits.
Développeur/auto-hébergé : les poids des modèles peuvent être téléchargés gratuitement et vous pouvez créer votre propre service d'inférence via TGI ou vLLM. Le coût du matériel dépend de la taille du modèle et des exigences de débit : le modèle 3B peut être déployé avec une seule carte T4, et le modèle 15B recommande d'utiliser un GPU avec au moins 24 Go de mémoire vidéo et de quantification. Dans l'ensemble, le coût total du modèle de code auto-hébergé = frais d'instance GPU + main d'œuvre d'exploitation et de maintenance, ce qui est bien inférieur à celui des API commerciales ayant les mêmes capacités facturées par jeton.
Entreprise/Privé : les entreprises peuvent déployer et affiner directement en privé en fonction des pondérations StarCoder2 sans payer de frais de licence au projet BigCode. Cependant, vous devez faire attention aux contraintes du contrat de licence BigCode OpenRAIL-M v1 (y compris les restrictions d'utilisation). Il est recommandé que le service juridique effectue un examen de la licence avant toute utilisation commerciale.
Coût caché : le modèle de base nécessite un réglage fin ou une ingénierie rapide pour atteindre un niveau utilisable, qui est souvent sous-estimé. En outre, la propriété des droits d'auteur et la conformité des licences du code généré par le modèle nécessitent également une gouvernance supplémentaire : BigCode fournit un outil d'indexation de recherche pour retracer la source des données de formation, mais les entreprises doivent toujours établir leurs propres processus de traçabilité du code.
Fonctions principales
Les fonctionnalités de base du projet BigCode sont conçues autour du code LLM open source à lien complet, et la sortie publique peut être résumée en cinq niveaux :
- Modèle de génération de code (série StarCoder) : fournit des modèles de base multi-échelles (1,1B à 15B), prenant en charge la complétion de code Fill-in-the-Middle (FIM), la génération de code multilingue (StarCoder2 couvre plus de 600 langages de programmation) et la compréhension du code contextuel long (16 000 jetons).
- Ensemble de données de pré-formation (The Stack) : The Stack v2 est actuellement le plus grand ensemble de données de pré-formation de code sous licence (5,45 milliards de jetons), couvrant plus de 600 langages de programmation, et prend en charge le mécanisme de désinscription pour permettre aux développeurs de choisir de supprimer leurs propres entrepôts des données de formation.
- Evaluation Benchmark (BigCodeBench/BigCodeArena) : BigCodeBench (ICLR 2025) se concentre sur l'évaluation de la génération de code de plusieurs appels de fonction et d'instructions complexes ; BigCodeArena (2025) évalue les préférences du modèle via les résultats d'exécution de code, fournissant ainsi une méthode d'évaluation automatisée plus fiable.
- Evaluation Harness : fournit un cadre d'évaluation de modèle de code standardisé, prenant en charge l'évaluation en un clic de plusieurs benchmarks tels que HumanEval, HumanEval+, GSM8K (PAL), DS-1000, CruxEval-I, etc.
- Outils de réglage fin et de déploiement : Fournissez le script de réglage fin LoRA, la quantification de bits et d'octets intégrée PEFT, la prise en charge du conteneur d'inférence TGI et starcoder.cpp (implémentation d'inférence C++ basée sur ggml).
Synergie : ces fonctionnalités n'existent pas de manière isolée : l'ensemble de données Stack est utilisé pour entraîner le modèle StarCoder, le modèle StarCoder est évalué via le harnais d'évaluation et BigCodeBench fournit une méthodologie d'évaluation standardisée. Les trois forment une structure « modèle de données-évaluation ». Cela signifie que les équipes utilisant BigCode peuvent réutiliser la même chaîne d'outils pour terminer l'ensemble du processus, de la formation à l'évaluation, sans avoir à rassembler les composants de plusieurs projets.
Evolution du modèle et de la version
Mises à jour itératives continues, la dernière version introduit une optimisation des performances et de nouvelles fonctionnalités. Les informations sur la version historique peuvent être consultées via la page de version officielle. Il n’existe actuellement aucun calendrier complet d’évolution de la version publique.
Avantages techniques
Les avantages techniques de BigCode se reflètent dans les trois dimensions de la conception du modèle, de l'échelle de formation et de la gouvernance open source. La logique fondamentale est de « rendre les modèles de code plus transparents et reproductibles grâce à la science ouverte ».
Architecture du modèle : StarCoder2 utilise Grouped Query Attention (GQA), qui réduit l'utilisation du cache KV pendant l'inférence et réduit les besoins en mémoire pour l'auto-déploiement par rapport à l'attention multi-têtes. L'attention de la fenêtre coulissante (jetons 4K) contrôle le coût de calcul dans les scénarios de séquence longue tout en conservant un contexte effectif de 16K. L'objectif de formation FIM fait du modèle un choix naturel pour les scénarios de complétion de code : il comprend la sémantique du remplissage au milieu du code, plutôt que la simple génération de texte de gauche à droite.
Échelle de formation : 15 milliards de modèles formés sur un GPU 1 024 × H100, totalisant plus de 4 000 milliards de jetons. Cette échelle appartient au premier échelon du modèle de code open source. La formation utilise le framework NVIDIA NeMo et le supercalculateur Eos, comparable à la configuration de formation de modèles commerciaux de même taille.
Gouvernance des données : le pipeline de traitement de Stack v2 (déduplication, filtrage des autorisations, prise en charge de la suppression des PII) est le plus mature parmi les ensembles de données de code open source. Chaque échantillon de formation conserve la traçabilité source et l'outil d'indexation de recherche permet aux utilisateurs de vérifier si le code généré provient d'un entrepôt open source spécifique, ce qui est important pour la traçabilité de la conformité de l'entreprise.
Reproductibilité de l'évaluation : BigCode Evaluation Harness fournit des scripts d'évaluation standardisés et des environnements Docker. Les résultats de différentes équipes sur le même benchmark peuvent être directement comparés, réduisant ainsi les problèmes d'incomparabilité causés par les différences dans les méthodologies d'évaluation.
Limites techniques : La série StarCoder est un modèle de base plutôt qu'un modèle de réglage fin des commandes, et l'effet de dialogue direct est médiocre. Le raisonnement, les mathématiques et autres capacités du modèle sont plus faibles que les modèles de base multimodaux de même échelle (tels que DeepSeek, LLaMA 3). Pour les scénarios de reconstruction de fichiers longs qui nécessitent une solide compréhension du contexte, une fenêtre contextuelle de 16 Ko peut ne pas suffire.
Comment utiliser
- Client Web : Vous pouvez l'utiliser en visitant le site officiel et en créant un compte. La plupart des fonctions ne nécessitent pas d'installation.
- Accès API : fournit une API RESTful, les développeurs peuvent obtenir la clé API et l'intégrer dans leurs propres applications.
Prix des produits
Il n'y a aucun frais pour le projet BigCode lui-même. Tous les poids du modèle, les ensembles de données et le code sont publiés sous une licence open source.
- Côté/Individuel : entièrement gratuit. Faites-en l'expérience en ligne avec Hugging Face Spaces ou exécutez le modèle sur un GPU local.
- Développeurs/Utilisateurs d'API : Aucune API hébergée officielle. Vous pouvez créer votre propre service d'inférence via TGI ou vLLM, et le coût inclut uniquement le coût de l'instance GPU.
- Entreprise/Privé : les poids des modèles sont disponibles gratuitement, sans frais de licence. Soumis aux termes du contrat de licence BigCode OpenRAIL-M v1 (y compris les restrictions d'utilisation). Il est recommandé de procéder à un examen des licences légales avant toute utilisation commerciale.
Scénarios d'application
Le modèle de BigCode propose un large éventail de scénarios applicables dans le domaine de la génération et de la compréhension du code, et son cœur réside dans la capacité « d'apprendre des modèles de programmation courants à partir du code open source » :
- Complétion et génération de code : intégrez le modèle StarCoder dans les plug-ins IDE ou les outils CLI pour fournir la complétion de code en temps réel, la génération de corps de fonction et le remplissage de code passe-partout. Les avantages sont une réduction des efforts de codage répétitifs et un développement de prototypes accéléré. Il convient de noter que le modèle de base nécessite une conception d'invite appropriée plutôt que des instructions en langage naturel.
- Traduction et migration de code : utilisez la capacité du modèle à comprendre le code multilingue pour faciliter la traduction du code d'un langage à un autre (comme Python → Java) ou terminer la migration du code pour les mises à niveau du framework. L'effet dépend de la couverture des langues source et cible dans les données d'entraînement.
- Génération de cas de test : générer un squelette de test unitaire basé sur la signature de fonction et la chaîne de documentation. Les données d'évaluation de BigCodeBench montrent que StarCoder2 fonctionne bien dans des scénarios d'appels multifonctions complexes, mais la génération de tests nécessite toujours un examen manuel de la couverture et de l'exactitude.
Personnes concernées
Le positionnement open source de BigCode fait que son groupe de services soit principalement des développeurs et des chercheurs :
- Chercheur AI/ML : recherche d'architectures de code LLM, de méthodes de formation ou de méthodologies d'évaluation. BigCode fournit une base de référence complète et reproductible, comprenant des pondérations de modèle, des pipelines de traitement de données, des cadres d'évaluation et des références.
- Ingénieurs logiciels et architectes : équipes qui doivent créer leurs propres capacités d'intelligence de code. Un service de complétion de code privé peut être créé sur la base du modèle StarCoder2 pour éviter d'envoyer du code source à des API tierces.
- Équipe Enterprise AI Platform : évaluer et intégrer des modèles de code open source dans les chaînes d'outils internes. La transparence des licences et la traçabilité des ensembles de données de BigCode sont des avantages essentiels par rapport à son modèle commercial.
Ne correspond pas aux limites :
- Scénarios nécessitant des assistants de code conversationnels (tels que GitHub Copilot Chat) - la série StarCoder n'est pas un modèle d'instruction et la méthode d'interaction est basée sur la complétion plutôt que sur le dialogue.
- Scénarios de conformité avec tolérance zéro pour les droits d'auteur dans le code généré - les modèles peuvent générer des extraits similaires au code sous licence open source dans les données de formation, nécessitant un examen de traçabilité supplémentaire.
- Appareils Edge avec des ressources extrêmement limitées - même le modèle 3B nécessite certaines ressources GPU ou mémoire, ce qui rend irréaliste son exécution directement sur des terminaux mobiles ou des MCU.
Résumé et Outlook
La valeur fondamentale de BigCode est de fournir un ensemble complet d'infrastructures de code LLM de manière scientifique ouverte : depuis les données de formation (The Stack), les modèles (série StarCoder), les benchmarks d'évaluation (BigCodeBench) jusqu'aux outils de déploiement (TGI, starcoder.cpp), couvrant le lien complet des modèles de code depuis la formation jusqu'à la mise en œuvre. Ce n'est pas l'assistant de code le plus rapide, ni le modèle le plus léger, mais pour les équipes qui doivent contrôler entièrement les capacités de génération de code et prêter attention à la traçabilité des données et à la transparence des licences, BigCode fournit la chaîne d'outils la plus complète de l'écosystème open source.
Limites actuelles : La série StarCoder2 n'a pas de version officielle de réglage fin des instructions (l'instruct-v0.1 de la communauté est encore expérimentale), et l'équipe doit terminer le réglage fin et l'adaptation par elle-même ; la fenêtre de contexte du modèle (16 Ko) peut être insuffisante lorsqu'il s'agit de bases de codes volumineuses ; le projet ne fournit pas d'API gérée et l'auto-déploiement nécessite certaines capacités MLOps.
Évaluation des risques d'approvisionnement et d'adoption : les pondérations des modèles de BigCode sont publiées sous les licences Apache-2.0 et OpenRAIL-M v1. Les risques liés aux licences sont relativement contrôlables, mais les restrictions d'utilisation supplémentaires dans OpenRAIL-M nécessitent une confirmation juridique quant à leur application au scénario cible. Avant son adoption, les entreprises doivent se concentrer sur l'évaluation : ① Si la précision d'achèvement de StarCoder2 dans le langage de programmation et le style de codage cibles atteint le seuil utilisable ; ② Les coûts d'annotation des données et de GPU nécessaires pour affiner un niveau de performances acceptable ; ③ La durabilité à long terme du modèle de gouvernance du projet (dirigé par Hugging Face et ServiceNow). Il est recommandé d'exécuter d'abord le modèle 7B dans un environnement hors production avec un petit échantillon pour vérifier l'effet, puis d'élargir la portée de l'évaluation.
Outils associés : github-copilot, cursor
Evolution de la version de BigCode
Le contexte de version de BigCode est basé sur la version du modèle, évoluant progressivement depuis les premières explorations à petite échelle jusqu'à la formation à grande échelle de la série StarCoder2.
Exploration précoce (~2023-01)
- SantaCoder-1.1B : le premier résultat du modèle public, les paramètres 1.1B, utilisé pour vérifier les capacités de base de la génération de code multilingue.
Version principale
- StarCoder-15.5B (~2023-05) : le premier modèle phare, 15,5 B de paramètres, plus de 80 langages de programmation, 1 000 milliards de formations de jetons, un contexte 8K. Pass@1 a atteint 33,6 % sur HumanEval, et plusieurs variantes affinées ont rapidement émergé dans la communauté après leur sortie.
- StarCoder2-3B/7B/15B (2024-02-29) : la série de modèles de deuxième génération, entièrement mise à niveau. 3B/7B est formé sur plus de 3 000 milliards de jetons, et 15B est formé sur plus de 4 000 milliards de jetons ; L'attention aux requêtes groupées, la fenêtre contextuelle 16K (fenêtre coulissante 4K) et la cible FIM sont introduites ; le matériel de formation est mis à niveau vers un GPU 1024 × H100.
Bilan et Supplément Ecologique (2024-2025)
- BigCodeBench (ICLR 2025) : publie un benchmark d'appels multifonctions, comblant le vide des benchmarks existants qui testent uniquement la génération de fonctions uniques.
- SelfCodeAlign (NeurIPS 2024) : propose une méthode d'auto-alignement du code pour améliorer les capacités de conformité des instructions du modèle sans annotation manuelle.
- BigCodeArena (2025-10) : introduction de l'évaluation des préférences de code basée sur les résultats d'exécution pour résoudre le problème de répétabilité de l'évaluation manuelle traditionnelle.
- OctoPack (~2024) : publiez des instructions pour affiner l'ensemble de données et les produits de formation afin de fournir des données d'alignement standardisées pour le modèle de code.
Depuis juillet 2026, le projet continue de produire de nouveaux modèles et ensembles de données via GitHub et Hugging Face, mais n'a pas défini de cycle de publication de versions fixe. Il est recommandé aux utilisateurs de production d'utiliser StarCoder2-15B ou StarCoder2-7B comme référence d'évaluation et de sélectionner les spécifications appropriées en fonction de la complexité de la tâche.
Comment utiliser BigCode
Les modèles de BigCode peuvent être obtenus et utilisés de différentes manières, adaptées aux équipes ayant des connaissances techniques différentes :
| Comment utiliser | Convient à la foule | Caractéristiques | Coût |
|---|---|---|---|
| Expérience en ligne Hugging Face Spaces | Évaluation du produit/vérification rapide | Aucune installation requise, exécutez directement dans le navigateur | Gratuit |
| Chargement de la bibliothèque Transformers | Intégration du développement | Prend en charge PyTorch, la quantification de bits et d'octets | Gratuit (nécessite votre propre GPU) |
| Inférence de génération de texte (TGI) | Déploiement d'inférence de production | Prend en charge l'API REST, le traitement par lots continu | Open source gratuit (GPU requis) |
| starcoder.cpp (ggml) | Déploiement Edge/CPU | Implémentation C++, pas de dépendances Python | Gratuit |
| Ajustement local (PEFT + LoRA) | Personnalisation du modèle | Réglage fin de la quantification 4 bits, GPU grand public disponible | Gratuit (GPU requis) |
Étapes d'utilisation typiques (prenons comme exemple les Transformers chargeant StarCoder2-15B) :
# Installer les dépendances
# pip install git+https://github.com/huggingface/transformers.git
à partir des transformateurs, importez AutoModelForCausalLM, AutoTokenizer
point de contrôle = "bigcode/starcoder2-15b"
appareil = "cuda"
tokenizer = AutoTokenizer.from_pretrained (point de contrôle)
modèle = AutoModelForCausalLM.from_pretrained(
point de contrôle,
device_map="auto",
torch_dtype=torch.bfloat16
).à(appareil)
inputs = tokenizer.encode("def fibonacci(n):", return_tensors="pt").to(device)
sorties = model.generate (entrées, max_new_tokens = 128)
print(tokenizer.decode(outputs[0]))
Déploiement quantitatif : l'utilisation de bitsandbytes peut réaliser une inférence de 8 bits (environ 16,9 Go de mémoire vidéo) ou de 4 bits (environ 9,2 Go de mémoire vidéo), ce qui réduit considérablement les besoins en GPU.
Adaptation de réglage fin : le projet fournit un script de réglage fin basé sur PEFT + LoRA, qui peut compléter l'adaptation de domaine avec un GPU grand public à carte unique sous quantification 4 bits.
Il est recommandé de promouvoir la mise en œuvre effective en quatre étapes : « sélection de la base d'évaluation → vérification d'un petit échantillon → réglage fin et adaptation → déploiement quantitatif ». La première semaine se concentre sur la vérification de l'exactitude de l'achèvement du modèle dans le langage de programmation cible et le type de tâche, puis décide s'il faut procéder à un réglage fin.
Informations de version
- StarCoder2-15B :Le plus grand modèle de la série StarCoder2 (paramètres 15B), formé sur plus de 600 langages de programmation et plus de 4 000 milliards de jetons, en utilisant Grouped Query Attention avec 16 000 fenêtres contextuelles.
- StarCoder2-7B :Modèle de milieu de gamme de la série StarCoder2 (paramètres 7B), formation de plus de 3 000 milliards de jetons, adapté aux scénarios de déploiement d'un seul GPU.
- StarCoder2-3B :Le plus petit modèle de la série StarCoder2 (paramètres 3B), orienté vers la complétion et la génération de code dans des scénarios de ressources limitées.
- StarCoder-15.5B :Le premier modèle phare de la série StarCoder, plus de 80 langages de programmation, 1 billion de jetons de formation, 8 000 fenêtres contextuelles. Il n’y a pas encore de date officielle précise.
- Père NoëlCoder-1.1B :Première sortie de BigCode d'un modèle de code à petite échelle (paramètres 1,1 B) pour explorer la génération de code multilingue. Il n’y a pas encore de date officielle précise.
Avis des utilisateurs