Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

L’IA Open Source existe-t-elle vraiment ?

Par : Framalang
31 octobre 2024 à 05:10

À l’heure où tous les mastodontes du numérique, GAFAM comme instituts de recherche comme nouveaux entrants financés par le capital risque se mettent à publier des modèles en masse (la plateforme Hugging Face a ainsi dépassé le million de modèles déposés le mois dernier), la question du caractère « open-source » de l’IA se pose de plus en plus.

Ainsi, l’Open Source Initiative (OSI) vient de publier une première définition de l’IA Open-Source, et la Linux Foundation (dont le nom peut prêter à confusion, mais qui ne représente surtout qu’une oligarchie d’entreprises du secteur) s’interroge également sur le terme.

Au milieu de tout cela, OpenAI devient de manière assez prévisible de moins en moins « open », et si Zuckerberg et Meta s’efforcent de jouer la carte de la transparence en devenant des hérauts de l’« IA Open-Source », c’est justement l’OSI qui leur met des bâtons dans les roues en ayant une vision différente de ce que devrait être une IA Open-Source, avec en particulier un pré-requis plus élevé sur la transparence des données d’entraînement.

Néanmoins, la définition de l’OSI, si elle embête un peu certaines entreprises, manque selon la personne ayant écrit ce billet (dont le pseudo est « tante ») d’un élément assez essentiel, au point qu’elle se demande si « l’IA open source existe-t-elle vraiment ? ».

Note : L’article originel a été publié avant la sortie du texte final de l’OSI, mais celui-ci n’a semble t-il pas changé entre la version RC1 et la version finale.

L’IA Open Source existe-t-elle vraiment ?

Par tante, sous licence CC BY-SA (article originel).
Une traduction Framalang par tcit et deux contributeur·ices anonymes.
Photo de la bannière par Robert Couse-Baker.

 

 

L’Open Source Initiative (OSI) a publié la RC1 (« Release Candidate 1 » signifiant : cet écrit est pratiquement terminé et sera publié en tant que tel à moins que quelque chose de catastrophique ne se produise) de la « Définition de l’IA Open Source ».

D’aucuns pourraient se demander en quoi cela est important. Plein de personnes écrivent sur l’IA, qu’est-ce que cela apporte de plus ? C’est la principale activité sur LinkedIn à l’heure actuelle. Mais l’OSI joue un rôle très particulier dans l’écosystème des logiciels libres. En effet, l’open source n’est pas seulement basé sur le fait que l’on peut voir le code, mais aussi sur la licence sous laquelle le code est distribué : Vous pouvez obtenir du code que vous pouvez voir mais que vous n’êtes pas autorisé à modifier (pensez au débat sur la publication récente de celui de WinAMP). L’OSI s’est essentiellement chargée de définir parmi les différentes licences utilisées partout lesquelles sont réellement « open source » et lesquelles sont assorties de restrictions qui sapent cette idée.

C’est très important : le choix d’une licence est un acte politique lourd de conséquences. Elle peut autoriser ou interdire différents modes d’interaction avec un objet ou imposer certaines conditions d’utilisation. La célèbre GPL, par exemple, vous permet de prendre le code mais vous oblige à publier vos propres modifications. D’autres licences n’imposent pas cette exigence. Le choix d’une licence a des effets tangibles.

Petit aparté : « open source » est déjà un terme un peu problématique, c’est (à mon avis) une façon de dépolitiser l’idée de « Logiciel libre ». Les deux partagent certaines idées, mais là où « open source » encadre les choses d’une manière plus pragmatique « les entreprises veulent savoir quel code elles peuvent utiliser », le logiciel libre a toujours été un mouvement plus politique qui défend les droits et la liberté de l’utilisateur. C’est une idée qui a probablement été le plus abimée par les figures les plus visibles de cet espace et qui devraient aujourd’hui s’effacer.

Qu’est-ce qui fait qu’une chose est « open source » ? L’OSI en dresse une courte liste. Vous pouvez la lire rapidement, mais concentrons-nous sur le point 2 : le code source :

Le programme doit inclure le code source et doit permettre la distribution du code source et de la version compilée. Lorsqu’une quelconque forme d’un produit n’est pas distribuée avec le code source, il doit exister un moyen bien connu d’obtenir le code source pour un coût de reproduction raisonnable, de préférence en le téléchargeant gratuitement sur Internet. Le code source doit être la forme préférée sous laquelle un programmeur modifierait le programme. Le code source délibérément obscurci n’est pas autorisé. Les formes intermédiaires telles que la sortie d’un préprocesseur ou d’un traducteur ne sont pas autorisées.
Open Source Initiative

Pour être open source, un logiciel doit donc être accompagné de ses sources. D’accord, ce n’est pas surprenant. Mais les rédacteurs ont vu pas mal de conneries et ont donc ajouté que le code obfusqué (c’est-à-dire le code qui a été manipulé pour être illisible) ou les formes intermédiaires (c’est-à-dire que vous n’obtenez pas les sources réelles mais quelque chose qui a déjà été traité) ne sont pas autorisés. Très bien. C’est logique. Mais pourquoi les gens s’intéressent-ils aux sources ?

Les sources de la vérité

L’open source est un phénomène de masse relativement récent. Nous avions déjà des logiciels, et même certains pour lesquels nous ne devions pas payer. À l’époque, on les appelait des « Freeware », des « logiciels gratuits ». Les freewares sont des logiciels que vous pouvez utiliser gratuitement mais dont vous n’obtenez pas le code source. Vous ne pouvez pas modifier le programme (légalement), vous ne pouvez pas l’auditer, vous ne pouvez pas le compléter. Mais il est gratuit. Et il y avait beaucoup de cela dans ma jeunesse. WinAMP, le lecteur audio dont j’ai parlé plus haut, était un freeware et tout le monde l’utilisait. Alors pourquoi se préoccuper des sources ?

Pour certains, il s’agissait de pouvoir modifier les outils plus facilement, surtout si le responsable du logiciel ne travaillait plus vraiment dessus ou commençait à ajouter toutes sortes de choses avec lesquelles ils n’étaient pas d’accord (pensez à tous ces logiciels propriétaires que vous devez utiliser aujourd’hui pour le travail et qui contiennent de l’IA derrière tous les autres boutons). Mais il n’y a pas que les demandes de fonctionnalités. Il y a aussi la confiance.

Lorsque j’utilise un logiciel, je dois faire confiance aux personnes qui l’ont écrit. Leur faire confiance pour qu’ils fassent du bon travail, pour qu’ils créent des logiciels fiables et robustes. Qu’ils n’ajoutent que les fonctionnalités décrites dans la documentation et rien de caché, de potentiellement nuisible.

Les questions de confiance sont de plus en plus importantes, d’autant plus qu’une grande partie de notre vie réelle repose sur des infrastructures numériques. Nous savons tous que nos infrastructures doivent comporter des algorithmes de chiffrement entièrement ouverts, évalués par des pairs et testés sur le terrain, afin que nos communications soient à l’abri de tout danger.

L’open source est – en particulier pour les systèmes et infrastructures critiques – un élément clé de l’établissement de cette confiance : Parce que vous voulez que (quelqu’un) soit en mesure de vérifier ce qui se passe. On assiste depuis longtemps à une poussée en faveur d’une plus grande reproductibilité des processus de construction. Ces processus de compilation garantissent essentiellement qu’avec le même code d’entrée, on obtient le même résultat compilé. Cela signifie que si vous voulez savoir si quelqu’un vous a vraiment livré exactement ce qu’il a dit, vous pouvez le vérifier. Parce que votre processus de construction créerait un artefact identique.

Logo du projet Reproducible builds

Le projet Reproducible builds cherche à promouvoir la reproductibilité des systèmes libres, pour plus de transparence.
Le projet est notamment financé par le Sovereign Tech Fund.

 

Bien entendu, tout le monde n’effectue pas ce niveau d’analyse. Et encore moins de personnes n’utilisent que des logiciels issus de processus de construction reproductibles – surtout si l’on considère que de nombreux logiciels ne sont pas compilés aujourd’hui. Mais les relations sont plus nuancées que le code et la confiance est une relation : si vous me parlez ouvertement de votre code et de la manière dont la version binaire a été construite, il me sera beaucoup plus facile de vous faire confiance. Savoir ce que contient le logiciel que j’exécute sur la machine qui contient également mes relevés bancaires ou mes clés de chiffrement.

Mais quel est le rapport avec l’IA ?

Les systèmes d’IA et les 4 libertés

Les systèmes d’IA sont un peu particuliers. En effet, les systèmes d’IA – en particulier les grands systèmes qui fascinent tout le monde – ne contiennent pas beaucoup de code par rapport à leur taille. La mise en œuvre d’un réseau neuronal se résume à quelques centaines de lignes de Python, par exemple. Un « système d’IA » ne consiste pas seulement en du code, mais en un grand nombre de paramètres et de données.

Un LLM moderne (ou un générateur d’images) se compose d’un peu de code. Vous avez également besoin d’une architecture de réseau, c’est-à-dire de la configuration des neurones numériques utilisés et de la manière dont ils sont connectés. Cette architecture est ensuite paramétrée avec ce que l’on appelle les « poids » (weights), qui sont les milliards de chiffres dont vous avez besoin pour que le système fasse quelque chose. Mais ce n’est pas tout.

Pour traduire des syllabes ou des mots en nombres qu’une « IA » peut consommer, vous avez besoin d’une intégration, une sorte de table de recherche qui vous indique à quel « jeton » (token) correspond le nombre « 227 ». Si vous prenez le même réseau neuronal mais que vous lui appliquez une intégration différente de celle avec laquelle il a été formé, tout tomberait à l’eau. Les structures ne correspondraient pas.

Représentation d'une puce informatique sous la forme d'un cerveau.

Image sous CC BY par Mike MacKenzie & Liam Huang

Ensuite, il y a le processus de formation, c’est-à-dire le processus qui a créé tous les « poids ». Pour entraîner une « IA », vous lui fournissez toutes les données que vous pouvez trouver et, après des millions et des milliards d’itérations, les poids commencent à émerger et à se cristalliser. Le processus de formation, les données utilisées et la manière dont elles le sont sont essentiels pour comprendre les capacités et les problèmes d’un système d’apprentissage automatique : si vous voulez réduire les dommages dans un réseau, vous devez savoir s’il a été formé sur Valeurs Actuelles ou non, pour donner un exemple.

Et c’est là qu’est le problème.

L’OSI « The Open Source AI Definition – 1.0-RC1 » exige d’une IA open source qu’elle offre quatre libertés à ses utilisateurs :

  1. Utiliser le système à n’importe quelle fin et sans avoir à demander la permission.
  2. Étudier le fonctionnement du système et inspecter ses composants.
  3. Modifier le système dans n’importe quel but, y compris pour changer ses résultats.
  4. Partager le système pour que d’autres puissent l’utiliser, avec ou sans modifications, dans n’importe quel but.

Jusqu’ici tout va bien. Cela semble raisonnable, n’est-ce pas ? Vous pouvez inspecter, modifier, utiliser et tout ça. Génial. Tout est couvert dans les moindre détails, n’est-ce pas ? Voyons rapidement ce qu’un système d’IA doit offrir. Le code : Check. Les paramètres du modèle (poids, configurations) : Check ! Nous sommes sur la bonne voie. Qu’en est-il des données ?

Informations sur les données : Informations suffisamment détaillées sur les données utilisées pour entraîner le système, de manière à ce qu’une personne compétente puisse construire un système substantiellement équivalent. Les informations sur les données sont mises à disposition dans des conditions approuvées par l’OSI.

En particulier, cela doit inclure (1) une description détaillée de toutes les données utilisées pour la formation, y compris (le cas échéant) des données non partageables, indiquant la provenance des données, leur portée et leurs caractéristiques, la manière dont les données ont été obtenues et sélectionnées, les procédures d’étiquetage et les méthodes de nettoyage des données ; (2) une liste de toutes les données de formation accessibles au public et l’endroit où les obtenir ; et (3) une liste de toutes les données de formation pouvant être obtenues auprès de tiers et l’endroit où les obtenir, y compris à titre onéreux.
Open Source Initiative

Que signifie « informations suffisamment détaillées » ? La définition de l’open source ne parle jamais de « code source suffisamment détaillé ». Vous devez obtenir le code source. Tout le code source. Et pas sous une forme obscurcie ou déformée. Le vrai code. Sinon, cela ne veut pas dire grand-chose et ne permet pas d’instaurer la confiance.

La définition de l’« IA Open Source » donnée par l’OSI porte un grand coup à l’idée d’open source : en rendant une partie essentielle du modèle (les données d’entraînement) particulière de cette manière étrange et bancale, ils qualifient d’« open source » toutes sortes de choses qui ne le sont pas vraiment, sur la base de leur propre définition de ce qu’est l’open source et de ce à quoi elle sert.

Les données d’apprentissage d’un système d’IA font à toutes fins utiles partie de son « code ». Elles sont aussi pertinentes pour le fonctionnement du modèle que le code littéral. Pour les systèmes d’IA, elles le sont probablement encore plus, car le code n’est qu’une opération matricielle générique avec des illusions de grandeur.

L’OSI met une autre cerise sur le gâteau : les utilisateurs méritent une description des « données non partageables » qui ont été utilisées pour entraîner un modèle. Qu’est-ce que c’est ? Appliquons cela au code à nouveau : si un produit logiciel nous donne une partie essentielle de ses fonctionnalités simplement sous la forme d’un artefact compilé et nous jure ensuite que tout est totalement franc et honnête, mais que le code n’est pas « partageable », nous n’appellerions pas ce logiciel « open source ». Parce qu’il n’ouvre pas toutes les sources.

Une « description » de données partiellement « non partageables » vous aide-t-elle à reproduire le modèle ? Non. Vous pouvez essayer de reconstruire le modèle et il peut sembler un peu similaire, mais il est significativement différent. Cela vous aide-t-il d’« étudier le système et d’inspecter ses composants » ? Seulement à un niveau superficiel. Mais si vous voulez vraiment analyser ce qu’il y a dans la boîte de statistiques magiques, vous devez savoir ce qu’il y a dedans. Qu’est-ce qui a été filtré exactement, qu’est-ce qui est entré ?

Cette définition semble très étrange venant de l’OSI, n’est-ce pas ? De toute évidence, cela va à l’encontre des idées fondamentales de ce que les gens pensent que l’open source est et devrait être. Alors pourquoi le faire ?

L’IA (non) open source

Voici le truc. À l’échelle où nous parlons aujourd’hui de ces systèmes statistiques en tant qu’« IA », l’IA open source ne peut pas exister.

De nombreux modèles plus petits ont été entraînés sur des ensembles de données publics explicitement sélectionnés et organisés. Ceux-ci peuvent fournir toutes les données, tout le code, tous les processus et peuvent être appelés IA open-source. Mais ce ne sont pas ces systèmes qui font s’envoler l’action de NVIDIA.

Ces grands systèmes que l’on appelle « IA » – qu’ils soient destinés à la génération d’images, de texte ou multimodaux – sont tous basés sur du matériel acquis et utilisé illégalement. Parce que les ensembles de données sont trop volumineux pour effectuer un filtrage réel et garantir leur légalité. C’est tout simplement trop.

Maintenant, les plus naïfs d’entre vous pourraient se demander : « D’accord, mais si vous ne pouvez pas le faire légalement, comment pouvez-vous prétendre qu’il s’agit d’une entreprise légitime ? » et vous auriez raison, mais nous vivons aussi dans un monde étrange où l’espoir qu’une innovation magique et / ou de l’argent viendront de la reproduction de messages Reddit, sauvant notre économie et notre progrès.

L’« IA open source » est une tentative de « blanchir » les systèmes propriétaires. Dans leur article « Repenser l’IA générative open source : l’openwashing et le règlement sur l’IA de l’UE  », Andreas Liesenfeld et Mark Dingemanse ont montré que de nombreux modèles d’IA « Open-Source » n’offrent guère plus que des poids de modèles ouverts. Signification : Vous pouvez faire fonctionner la chose mais vous ne savez pas vraiment ce que c’est.

Cela ressemble à quelque chose que nous avons déjà eu : c’est un freeware. Les modèles open source que nous voyons aujourd’hui sont des blobs freeware propriétaires. Ce qui est potentiellement un peu mieux que l’approche totalement fermée d’OpenAI, mais seulement un peu.

Certains modèles proposent des fiches de présentation du modèle ou d’autres documents, mais la plupart vous laissent dans l’ignorance. Cela s’explique par le fait que la plupart de ces modèles sont développés par des entreprises financées par le capital-risque qui ont besoin d’une voie théorique vers la monétisation.

L’« open source » est devenu un autocollant comme le « Commerce équitable », quelque chose qui donne l’impression que votre produit est bon et digne de confiance. Pour le positionner en dehors du diabolique espace commercial, en lui donnant un sentiment de proximité. « Nous sommes dans le même bateau » et tout le reste. Mais ce n’est pas le cas. Nous ne sommes pas dans le même bateau que Mark fucking Zuckerberg, même s’il distribue gratuitement des poids de LLM parce que cela nuit à ses concurrents. Nous, en tant que personnes normales vivant sur cette planète qui ne cesse de se réchauffer, ne sommes avec aucune de ces personnes.

Photo d'un sticker où il est marqué « Open-Source Fuck Yeah ».

Les libristes adorent pourtant les stickers. Image sous CC BY-SA par Kirsten Comandich.

Mais il y a un autre aspect à cette question, en dehors de redorer l’image des grands noms de la technologie et de leurs entreprises. Il s’agit de la légalité. Au moins en Allemagne, il existe des exceptions à certaines lois qui concernent normalement les auteurs de LLM : si vous le faites à des fins de recherche, vous êtes autorisé à récupérer pratiquement n’importe quoi. Vous pouvez ensuite entraîner des modèles et publier ces poids, et même s’il y a des contenus de Disney là-dedans, vous n’avez rien à craindre. C’est là que l’idée de l’IA open source joue un rôle important : il s’agit d’un moyen de légitimer un comportement probablement illégal par le biais de l’openwashing : en tant qu’entreprise, vous prenez de l’« IA open source » qui est basée sur tous les éléments que vous ne seriez pas légalement autorisé à toucher et vous l’utilisez pour construire votre produit. Faites de l’entraînement supplémentaire avec des données sous licence, par exemple.

L’Open Source Initiative a attrapé le syndrome FOMO (N.d.T : Fear of Missing Out) – tout comme le jury du prix Nobel. Elle souhaite également participer à l’engouement pour l’« IA ».

Mais pour les systèmes que nous appelons aujourd’hui « IA », l’IA open source n’est pas possible dans la pratique. En effet, nous ne pourrons jamais télécharger toutes les données d’entraînement réelles.

« Mais tante, nous n’aurons jamais d’IA open source ». C’est tout à fait exact. C’est ainsi que fonctionne la réalité. Si vous ne pouvez pas remplir les critères d’une catégorie, vous n’appartenez pas à cette catégorie. La solution n’est pas de changer les critères. C’est comme jouer aux échecs avec les pigeons.

 

Que veut dire « libre » (ou « open source ») pour un grand modèle de langage ?

31 juillet 2023 à 05:42

Le flou entretenu entre open source et libre, déjà ancien et persistant dans l’industrie des technologies de l’information, revêt une nouvelle importance maintenant que les entreprises se lancent dans la course aux IA…
Explications, décantation et clarification par Stéphane Bortzmeyer, auquel nous ouvrons bien volontiers nos colonnes.


Vous le savez, les grands modèles de langage (ou LLM, pour « Large Language Model ») sont à la mode. Ces mécanismes, que le marketing met sous l’étiquette vague et sensationnaliste d’IA (Intelligence Artificielle), ont connu des progrès spectaculaires ces dernières années.
Une de leurs applications les plus connues est la génération de textes ou d’images. L’ouverture au public de ChatGPT, en novembre 2022, a popularisé cette application. Chaque grande entreprise de l’informatique sort désormais son propre modèle, son propre LLM.
Il faut donc se distinguer du concurrent et, pour cela, certains utilisent des arguments qui devraient plaire aux lecteurs et lectrices du Framablog, en affirmant que leur modèle est (en anglais dans le texte) « open source ». Est-ce vrai ou bien est-ce du « libre-washing » ?
Et qu’est-ce que cela veut dire pour cet objet un peu particulier qu’est un modèle de langage ?

Copie d'écran d'un tweet de Viva technology citant le président Macron au salon Vivatech où il insiste sur les LLM souverains. le texte le cite "on doit accélérer l'open source et tous les grands modèles et avoir des LMM européens qui permettront de réguler. i faut ensuite qu'on arrive à régler des cas critiques, savoir si c'est de l'IA ou pas".

Tout le monde parle des LLM (ici, avec une faute de frappe).

Source ouverte ?

Traitons d’abord un cas pénible mais fréquent : que veut dire « open source » ? Le terme désigne normalement l’information qui est librement disponible. C’est en ce sens que les diplomates, les chercheurs, les journalistes et les espions parlent de ROSO (Renseignement d’Origine en Sources Ouvertes) ou d’OSINT (Open Source Intelligence). Mais, dans le contexte du logiciel, le terme a acquis un autre sens quand un groupe de personnes, en 1998, a décidé d’essayer de remplacer le terme de « logiciel libre », qui faisait peur aux décideurs, par celui d’« open source ». Ils ont produit une définition du terme qu’on peut considérer comme la définition officielle d’« open source ». Il est intéressant de noter qu’en pratique, cette définition est quasiment équivalente aux définitions classiques du logiciel libre et que des phrases comme « le logiciel X n’est pas libre mais est open source » n’ont donc pas de sens. Ceci dit, la plupart des gens qui utilisent le terme « open source » ne connaissent ni l’histoire, ni la politique, ni la définition « officielle » et ce terme, en réalité, est utilisé pour tout et n’importe quoi. On peut donc se dire « open source » sans risque d’être contredit. Je vais donc plutôt me pencher sur la question « ces modèles sont-ils libres ? ».

Grand modèle de langage ?

Le cas du logiciel est désormais bien connu et, sauf grande malhonnêteté intellectuelle, il est facile de dire si un logiciel est libre ou pas. Mais un modèle de langage ? C’est plus compliqué, Revenons un peu sur le fonctionnement d’un LLM (grand modèle de langage). On part d’une certaine quantité de données, par exemple des textes, le « dataset ». On applique divers traitements à ces données pour produire un premier modèle. Un modèle n’est ni un programme, ni un pur ensemble de données. C’est un objet intermédiaire, qui tient des deux. Après d’éventuels raffinements et ajouts, le modèle va être utilisé par un programme (le moteur) qui va le faire tourner et, par exemple, générer du texte. Le moteur en question peut être libre ou pas. Ainsi, la bibliothèque transformers est clairement libre (licence Apache), ainsi que les bibliothèques dont elle dépend (comme PyTorch). Mais c’est le modèle qu’elle va exécuter qui détermine la qualité du résultat. Et la question du caractère libre ou pas du modèle est bien plus délicate.

Notons au passage que, vu l’importante consommation de ressources matérielles qu’utilisent ces LLM, ils sont souvent exécutés sur une grosse machine distante (le mythique « cloud »). Lorsque vous jouez avec ChatGPT, le modèle (GPT 3 au début, GPT 4 désormais) n’est pas téléchargé chez vous. Vous avez donc le service ChatGPT, qui utilise le modèle GPT.

Mais qui produit ces modèles (on verra plus loin que c’est une tâche non triviale) ? Toutes les grandes entreprises du numérique ont le leur (OpenAI a le GPT qui propulse ChatGPT, Meta a Llama), mais il en existe bien d’autres (Bloom, Falcon, etc), sans compter ceux qui sont dérivés d’un modèle existant. Beaucoup de ces modèles sont disponibles sur Hugging Face (« le GitHub de l’IA », si vous cherchez une « catch phrase ») et vous verrez donc bien des références à Hugging Face dans la suite de cet article.  Prenons par exemple le modèle Falcon. Sa fiche sur Hugging Face nous donne ses caractéristiques techniques, le jeu de données sur lequel il a été entrainé (on verra que tous les modèles sont loin d’être aussi transparents sur leur création) et la licence utilisée (licence Apache, une licence libre). Hugging Face distribue également des jeux de données d’entrainement.

Dans cet exemple ci-dessous (trouvé dans la documentation de Hugging Face), on fait tourner le moteur transformers (plus exactement, transformers, plus diverses bibliothèques logicielles) sur le modèle xlnet-base-cased en lui posant la question « Es-tu du logiciel libre ? » :

 % python run_generation.py --model_type=xlnet --model_name_or_path=xlnet-base-cased
...
Model prompt >>> Are you free software ?
This is a friendly reminder - the current text generation call will exceed the model's predefined maximum length (-1). Depending on the model, you may observe exceptions, performance degradation, or nothing at all.
=== GENERATED SEQUENCE 1 ===
Are you free software ? Are you a professional ? Are you a Master of Technical Knowledge ? Are you a Professional ?

Ce modèle, comme vous le voyez, est bien moins performant que celui qui est derrière le service ChatGPT ; je l’ai choisi parce qu’il peut tourner sur un ordinateur ordinaire.

Vous voulez voir du code source en langage Python ? Voici un exemple d’un programme qui fait à peu près la même chose :

from transformers import pipeline

generator = pipeline("text-generation", model="DunnBC22/xlnet-base-cased-finetuned-WikiNeural-PoS") 
print(generator("Are you free software ?"))

Le modèle utilisé est un raffinement du précédent, DunnBC22/xlnet-base-cased-finetuned-WikiNeural-PoS. Il produit lui aussi du contenu de qualité contestable([{‘generated_text’: « Are you free software? What ever you may have played online over your days? Are you playing these games? Any these these hours where you aren’t wearing any heavy clothing?) mais, bon, c’est un simple exemple, pas un usage intelligent de ces modèles.

 

Un chat gris pensif dans une librairie, assis sur un bac empli de livres

Les LLM n’ont pas de corps (comme Scarlett Johansson dans le film « Her ») et ne sont donc pas faciles à illustrer. Plutôt qu’une de ces stupides illustrations de robot (les LLM n’ont pas de corps, bon sang !), je mets une image d’un chat certainement intelligent. Drew Coffman, CC BY 2.0, via Wikimedia Commons

 

Que veut dire « libre » pour un LLM ?

Les définitions classiques du logiciel libre ne s’appliquent pas telles quelles. Des entreprises (et les journalistes paresseux qui relaient leurs communiqués de presse sans vérifier) peuvent dire que leur modèle est « open source » simplement parce qu’on peut le télécharger et l’utiliser. C’est très loin de la liberté. En effet, cette simple autorisation ne permet pas les libertés suivantes :

  • Connaître le jeu de données utilisé pour l’entrainement, ce qui permettrait de connaitre les choix effectués par les auteurs du modèle (quels textes ils ont retenu, quels textes ils ont écarté) et savoir qui a écrit les textes en question (et n’était pas forcément d’accord pour cette utilisation).
  • Connaître les innombrables choix techniques qui ont été faits pour transformer ces textes en un modèle. (Rappelez-vous  : un algorithme, ce sont les décisions de quelqu’un d’autre.)

Sans ces informations, on ne peut pas refaire le modèle différemment (alors que la possibilité de modifier le programme est une des libertés essentielles pour qu’un logiciel soit qualifié de libre). Certes, on peut affiner le modèle (« fine-tuning a pre-trained model », diront les documentations) mais cela ne modifie pas le modèle lui-même, certains choix sont irréversibles (par exemple des choix de censure). Vous pouvez créer un nouveau modèle à partir du modèle initial (si la licence prétendument « open source » le permet) mais c’est tout.

Un exemple de libre-washing

Le 18 juillet 2023, l’entreprise Meta a annoncé la disponibilité de la version 2 de son modèle Llama, et le fait qu’il soit « open source ». Meta avait même convaincu un certain nombre de personnalités de signer un appel de soutien, une initiative rare dans le capitalisme. Imagine-t-on Microsoft faire signer un appel de soutien et de félicitations pour une nouvelle version de Windows ? En réalité, la licence est très restrictive, même le simple usage du modèle est limité. Par exemple, on ne peut pas utiliser Llama pour améliorer un autre modèle (concurrent). La démonstration la plus simple de la non-liberté est que, pour utiliser le modèle Llama sur Hugging Face, vous devez soumettre une candidature, que Meta accepte ou pas («  Cannot access gated repo for url https://huggingface.co/meta-llama/Llama-2-7b/resolve/main/config.json. Access to model meta-llama/Llama-2-7b is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Llama-2-7b to ask for access. »)

Mais la communication dans l’industrie du numérique est telle que très peu de gens ont vérifié. Beaucoup de commentateurs et de gourous ont simplement relayé la propagande de Meta. Les auteurs de la définition originale d’« open source » ont expliqué clairement que Llama n’avait rien d’« open source », même en étant très laxiste sur l’utilisation du terme. Ceci dit, il y a une certaine ironie derrière le fait que les mêmes personnes, celles de cette Open Source Initiative, critiquent Meta alors même qu’elles avaient inventé le terme « open source » pour brouiller les pistes et relativiser l’importance de la liberté.

Au contraire, un modèle comme Falcon coche toutes les cases et peut très probablement être qualifié de libre.

La taille compte

Si une organisation qui crée un LLM publie le jeu de données utilisé, tous les réglages utilisés pendant l’entrainement, et permet ensuite son utilisation, sa modification et sa redistribution, est-ce que le modèle peut être qualifié de libre ? Oui, certainement, mais on peut ajouter une restriction, le problème pratique. En effet, un modèle significatif (disons, permettant des résultats qui ne sont pas ridicules par rapport à ceux de ChatGPT) nécessite une quantité colossale de données et des machines énormes pour l’entrainement. L’exécution du modèle par le moteur peut être plus économe. Encore qu’elle soit hors de portée, par exemple, de l’ordiphone classique. Si une application « utilisant l’IA » tourne soi-disant sur votre ordiphone, c’est simplement parce que le gros du travail est fait par un ordinateur distant, à qui l’application envoie vos données (ce qui pose divers problèmes liés à la vie privée, mais c’est une autre histoire). Même si l’ordiphone avait les capacités nécessaires, faire tourner un modèle non trivial épuiserait vite sa batterie. Certains fabricants promettent des LLM tournant sur l’ordiphone lui-même (« on-device ») mais c’est loin d’être réalisé.

Mais l’entraînement d’un modèle non trivial est bien pire. Non seulement il faut télécharger des téra-octets sur son disque dur, et les stocker, mais il faut des dizaines d’ordinateurs rapides équipés de GPU (puces graphiques) pour créer le modèle. Le modèle Llama aurait nécessité des milliers de machines et Bloom une bonne partie d’un super-calculateur. Cette histoire de taille ne remet pas en question le caractère libre du modèle, mais cela limite quand même cette liberté en pratique. Un peu comme si on vous disait « vous êtes libre de passer votre week-end sur la Lune, d’ailleurs voici les plans de la fusée ». Le monde du logiciel libre n’a pas encore beaucoup réfléchi à ce genre de problèmes. (Qui ne touche pas que l’IA : ainsi, un logiciel très complexe, comme un navigateur Web, peut être libre, sans que pour autant les modifications soit une entreprise raisonnable.) En pratique, pour l’instant, il y a donc peu de gens qui ré-entrainent le modèle, faisant au contraire une confiance aveugle à ce qu’ils ont téléchargé (voire utilisé à distance).

Conclusion

Pour l’instant, la question de savoir ce que signifie la liberté pour un modèle de langage reste donc ouverte. L’Open Source Initiative a lancé un projet pour arriver à une définition. Je ne connais pas d’effort analogue du côté de la FSF mais plus tard, peut-être ?

❌
❌