Accueil Astuces et Informations De BigScience à BigCode : la quête d’IA génératives « éthiques »

De BigScience à BigCode : la quête d’IA génératives « éthiques »

22
3
De BigScience à BigCode : la quête d'IA génératives « éthiques »

Dans la lignée du projet BigScience, BigCode tente d’appliquer la même logique « responsable » aux IA génératrices de code.

Vous souvenez-vous de BigScience ? Ce projet communautaire visait à concevoir « le plus grand modèle de langue multilingue et Open source ». À la baguette, Hugging Face, entreprise que trois Français ont fondée à New York.

Les travaux avaient abouti, en juillet 2022, à la publication de BLOOM (BigScience Large Open-science Open-access Multilingual Language Model). Ils ont inspiré un autre projet, là aussi emmené par Hugging Face, en tandem avec ServiceNow : BigCode.

La notion d’IA « responsable » était au cœur de la démarche BigScience. Cela s’est reflété autant dans la composition du jeu de données d’entraînement que dans la licence du modèle qui en a découlé.

BigCode s’inscrit dans la même logique, mais dans le domaine de la programmation informatique. Et en allant plus loin sur plusieurs aspects. Notamment en détaillant, outre la composition du base de donnéessa méthode de conception (masquage des données personnelles*, limitation du risque de production de code malveillant…).

BigCode : à licences permissives, base de données éthique ?

BigCode insiste sur le caractère « éthique » du base de données en question – nommé « La pile » au sens où il ne contient que du code sous licences « permissives » (copyleft).

Comment en est-on arrivé à The Stack ? La première étape a consisté à détecter, via GArchive, les dépôts GitHub publics actifs sur la période du 1euh janvier 2015 au 31 mars 2022. Il en a résulté quelque 221 millions de résultats.

BigCode est parvenu à cloner environ 137 millions de dépôts qui étaient encore publiquement accessibles. Ensuite a commencé la phase de découverte des licences. Pour 26 millions de dépôts, elles étaient diffusées. Sur les 111 autres millions, on a utilisé le script go-license-detector… qui n’a rien détecté dans plus de 80 % des cas.

Une fois ce filtrage effectué, il restait un peu moins de 30 To de données. On a alors appliqué une double quasi-déduplication (procédure connue pour améliorer les performances des modèles entraînés). Ce qui a divisé le poids du base de données près de dix.

On parle là de la première version de The Stack, qui incluait une trentaine de langues pour une vingtaine de licences. Depuis lors, on est passé à près de 400 langages et 200 licences (MIT et Apache 2.0 dominent au sein du corpus). Non sans en supprimer quelques-unes, réussi comme insuffisamment permissifs. En l’occurrence, EPL, LGPL et MPL.

Pour qui conserverait qu’on n’inclue pas son code, il existe un moteur de recherche et un formulaire d’se désengager. L’outil permet autant les contrôles a priori (code intégré dans le base de données) qu’a posteriori (code qui produit les modèles de BigCode).

À portée de Codex ?

Se limiter aux licences permissives at-il un impact sur les performances ? Le référence référent de BigCode indique que non. Il a consisté à entraîner plusieurs modèles à 350 millions de paramètres sur un sous-ensemble Python issu de The Stack v1.

Conclusion : avec la quasi-déduplication, les performances sont équivalentes à celles de modèles Codex et CodeGen de taille similaire. En tout cas sur les tests de complétion HumanEval et MBBP.

MBBP

SantaCoder, dans la lignée de BLOOM

BigScience avait développé BLOOM sur la base d’un clone de Megatron-LM, un modèle de langage made in NVIDIA architecturé à la manière de GPT-2. BigCode a repris ce substrat pour créer, sur la base de The Stack, une série de huit modèles, sous la bannière Père NoëlCoder.

Tous ces modèles ont été formés sur du code Python, Java et JavaScript. Le plus « gros » d’entre eux a été entraîné deux fois plus longtemps que les autres (six jours et quelques sur un setup à 96 GPU Tesla V100, pour 2,1 x 1021 Des flops. Il a 1,1 milliard d’hyperparamètres.

BigScience avait publié BLOOM sous la licence OpenRAIL-M. Dans les grandes lignes, elle est non restrictive sur la réutilisation, la distribution, la commercialisation et l’adaptation, mais elle interdit certains usages, par exemple dans le cas de l’aide médicale.

BigCode a réexploité cette licence pour les modèles SantaCoder et les fonctionnalités associées (de type points de contrôle), quelques modifications. À commencer par le préambule, adapté aux IA génératrices de code. Mais aussi en supprimant l’incitation à utiliser autant que possible les dernières versions des modèles. Et en ajoutant une clause : tout code source produit sera sous licence Apache 2.0.

La licence OpenRAIL-M sous cette forme est provisoire, en attendant le lancement officiel de SantaCoder. Celui-ci est prévu pour mars.

* Pour détecter les adresses e-mail, BigCode fait le choix des expressions régulières. Même choisi pour les adresses IP. Pour les secrets, le projet a recours à un outil spécifique.

Illustration principale © pro motion pic – Fotolia