Journal L'OSI publie une définition de l'IA "opensource"... mais pas trop?

8
1
nov.
2024

Bonjour Nal,

L'open source initiative vient de publier une définition de ce qu'ils appellent Open Source AI.

Cela semble prendre en compte 4 libertés (utiliser, étudier, modifier, partager), mais on peut se poser plusieurs questions :

  • pourquoi aurait-on besoin d'une définition de l'opensource spécifique pour l'IA ? La justification est tellement pipeau qu'on la dirait généré par IA :-)
  • rien n'est dit sur l'aspect commercial, ce qui ouvre la porte à des licences restrictives ;
  • la partie sur les données d'entraînement pourrait aussi permettre des restrictions.

Bref cela semble être encore un épisode de la guerre que mènent les éditeurs de solutions privatrices qui voudraient bien profiter du label opensource sans les contraintes, un peu comme les crevures qui voudraient appeler Camembert n'importe quelle préparation à base de laits pasteurisés produits hors de Normandie.

PS : ce nourjal 100% libre (CC By‑SA 4.0) a été tapé à la main d'un humain véritable avec un éditeur de texte libre (micro) sous un OS libre (Debian) sur un PC dont le bios est lui aussi… ah merde comment on met coreboot sur un Lenovo ?

  • # Any purpose

    Posté par  (site web personnel) . Évalué à 5 (+3/-0).

    An Open Source AI is an AI system made available under terms and in a way that grant the freedoms1 to:

    ° Use the system for any purpose and without having to ask for permission.
    ° Study how the system works and inspect its components.
    ° Modify the system for any purpose, including to change its output.
    ° Share the system for others to use with or without modifications, for any purpose.

    Le "any purpose" autorise l'utilisation commerciale et le meurtre de chatons, même si ce n'est pas explicitement précisé.

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: Any purpose

      Posté par  . Évalué à 4 (+3/-0).

      Avec uniquement cette partie ça ressemble bien à du libre mais…

      When we refer to a “system,” we are speaking both broadly about a fully functional structure and its discrete structural elements. To be considered Open Source, the requirements are the same, whether applied to a system, a model, weights and parameters, or other structural elements.

      Comment un modèle pour une AI peut-il être entièrement libre ? Cela suppose-t-il que les algorithmes et le jeux de données ayant servi à créer le modèle sont également libres ? Ce qui à ma connaissance n'est jamais le cas.

      • [^] # Re: Any purpose

        Posté par  (site web personnel) . Évalué à 2 (+1/-1).

        Cela suppose-t-il que les algorithmes et le jeux de données ayant servi à créer le modèle sont également libres ? Ce qui à ma connaissance n'est jamais le cas.

        Va falloir définir ce qu'est un "algorithme libre" et un "jeu de données" libres. Pour moi tous les algorithmes sont libres. Et un "jeu de données pour un modèle" est libre si je peux télécharger ces données pour entraîner mon propre modèle. Il peut y avoir un copyright sur ces modèles m'empêchant de redistribuer ces données, pour moi ça reste un modèle libre, donc stricto sensu les données ne sont pas libres, mais le "jeu de données" (= la liste des URLs où télécharger les données) si. Mais pour moi de la même manière que le compilateur d'un projet libre n'a pas besoin d'être libre pour que le projet soit libre, les données elle-même n'ont pas besoin d'être copyleft pour que le modèle soit libre

        Et de mon point de vue, la majorité des modèles issues des publications scientifiques valident ces critères. (Notamment parce que pour valider une évolution d'algo, il faut comparer à facteurs constants)

        Le LLM "historique" BERT est basé sur des datasets publics (https://en.wikipedia.org/wiki/BERT_%28language_model%29#Cost), on trouve de nombreux LLM basés sur des datasets ouverts https://github.com/openlm-research/open_llama, le LLM financé par le gouvernement est basé sur des datasets ouverts https://github.com/openlm-research/open_llama. Il existe aussi des modèles dont les données d'apprentissages sont effectivement copyleft (je sais que ça existe pour la génération d'image et les LLMs), mais là présentement je retrouve pas.

        On va pas se mentir, les meilleurs modèles ne sont pas libres, parce que une des valeurs ajoutées majeures dans le domaine de l'IA c'est les jeux de données de qualité, donc ils les gardent pour eux.

        • [^] # Re: Any purpose

          Posté par  . Évalué à 3 (+2/-0). Dernière modification le 01 novembre 2024 à 14:02.

          On ne va redéfinir libre au sens du logiciel. Les quatre libertés fondamentales sont déjà énumérés ci-dessus.

          Pour enfoncer le clou est-ce que les algorithmes et les jeux de données, et pas seulement les modèles, sont librement utilisables, analysables, modifiables et redistribuables ?

          Les liens donnés sont intéressants mais j''ai l'impression que ce sont uniquement des modèles (basés sur ceux de META) qui sont distribués sans que les jeux de données, les algorithmes et les méthodes d’entraînement ne soient communiquées.

          C'est pourtant bien ce que demande l'OSI dans sa définition 1.0.

          • [^] # Re: Any purpose

            Posté par  (site web personnel) . Évalué à 2 (+0/-0).

            Les liens donnés sont intéressants mais j''ai l'impression que ce sont uniquement des modèles (basés sur ceux de META) qui sont distribués sans que les jeux de données, les algorithmes et les méthodes d’entraînement ne soient communiquées.

            Pour les jeux de données

            https://en.wikipedia.org/wiki/BERT_%28language_model%29#Cost ===>
            https://huggingface.co/datasets/bookcorpus/bookcorpus

            https://github.com/openlm-research/open_llama ===> https://huggingface.co/datasets/tiiuae/falcon-refinedweb ; https://huggingface.co/datasets/bigcode/starcoderdata ; https://huggingface.co/datasets/togethercomputer/RedPajama-Data-1T

            Et le troisième lien que je voulais mettre mais que j'ai glissé https://huggingface.co/bigscience/bloom ===> https://huggingface.co/spaces/bigscience/BigScienceCorpus

            Je rajoute SmolLM2 que HuggingFace vient de sortir où les auteurs annoncent que sera public prochainement: https://www.reddit.com/r/LocalLLaMA/comments/1ggmsmo/comment/lutybsd/

            Les méthodes d'entraînement et les algorithmes sont aussi documentés dans leur papiers respectifs, et HuggingFace publie systématiquement leur code d'entraînement.

            On ne va redéfinir libre au sens du logiciel. Les quatre libertés fondamentales sont déjà énumérés ci-dessus.

            Oui. Pour pouvoir utiliser, reproduire, modifier, et étudier un modèle, les données n'ont pas besoin d'être libres. De même qu'un compilateur n'a pas besoin d'être libre pour que les projets qu'il compile soient considérés comme libres.

            Est-ce que si mon modèle a été entraîné avec des données sous copyright, je peux l'utiliser? Clairement le consensus actuel est "oui" sinon aucun modèle propriétaire n'existerait.

            Est-ce que ça me permet de le reproduire? Et bien oui, les données de ces exemples sont téléchargeables sur leur site d'origine. Ces données ne sont pas libres, mais elles ne m'empêchent de reproduire le modèle.

            Est-ce que ça me permet de le modifier? Si je veux supprimer des éléments du jeu de données, et rajouter d'autres données, je peux le faire sans aucun problème.

            Est-ce que je peux l'étudier? Oui aucun problème pour faire les analyses que je souhaite sur le jeu de données.

            Bref, un modèle entraîné sur des données propriétaires (mais téléchargeables gratuitement) respecte les libertés fondamentales.

            • [^] # Re: Any purpose

              Posté par  (site web personnel) . Évalué à 1 (+0/-1). Dernière modification le 03 novembre 2024 à 14:41.

              Bref, un modèle entraîné sur des données propriétaires (mais téléchargeables gratuitement) respecte les libertés fondamentales.

              bin, non : tu ne maîtrises pas la disponibilité dans le temps/la durée de ces données non libres

              • elles peuvent évoluer, hors de ta maîtrise, vu que ça dépend d'un tiers
              • elles peuvent disparaître (et c'est ballot, vu que tu ne peux pas les redistribuer, une sauvegarde ne servirait à rien dans ce cas)
              • cela ne respecte pas complètement le principe d'expérimentation à données maîtrisées (changer tes algos, mais pas le jeu de données, pour mesurer l'efficacité de tes algos), notamment cela peut gêner la reproductibilité par d'autres équipes que la tienne (tu ne peux pas fournir ton corpus exact d'entraînement, vu que tu dépends d'un tiers)

              Est-ce que si mon modèle a été entraîné avec des données sous copyright, je peux l'utiliser? Clairement le consensus actuel est "oui"

              oula, pas complètement…
              Demande aux journaux qui ont intenté des procès pour plagiat :-) (je ne me prononce pas sur leur légitimité) ou même du code GPL ou BSD reproduit à l'identique par une IA : c'est un sujet d'actualité, non encore statué (je réserve mon avis :D)

        • [^] # Re: Any purpose

          Posté par  . Évalué à 0 (+0/-0).

          Si effectivement c'est très rare d'avoir des jeux de données libre, le fait de ne pas imposer que le jeux de données soit libre pour avoir un modèle libre est une erreur.

          Selon moi, il est impossible d'avoir un vrai modèle libre sans que les données soient libres. Selon Wikipedia, "Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification et la duplication par autrui en vue de sa diffusion sont permises, techniquement et juridiquement1, ceci afin de garantir certaines libertés induites, dont le contrôle du programme par l'utilisateur et la possibilité de partage entre individus. ". Or il est impossible d'étudier complètement un modèle dont ses biais sans avoir accès à ses données d’entraînement. Il est très difficile de pouvoir sortir de bonne explications des résultats sans les données. Donc, pas de données, ça réduit la portée "libre". Et c'est ça que je trouve très dommage dans cette définition.

        • [^] # Re: Any purpose

          Posté par  (site web personnel) . Évalué à 4 (+3/-2).

          La problématique "code & données" existent pour les jeux.

          Les jeux libres choisissent une combinaison de licences (MIT pour le code, CC-BY-SA pour les données par exemple).

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # Re: Any purpose

            Posté par  (site web personnel) . Évalué à 3 (+2/-1).

            Sauf que la problématique est complètement différente. Les données du jeu vidéo sont nécessaires à la distribution du jeu. On peut distribuer un LLM sans ses données (enfin c'est le cas général). Pour pouvoir packager Nexuiz dans Debian, Debian doit avoir le droit de distribuer les données de Nexuiz. Alors que pour packager Bloom dans Debian, Debian n'a besoin que d'avoir le droit de télécharger les données de Bloom.

            L'analogie avec le jeu vidéo serait que les données d'entraînement ne sont nécessaires que pour la /compilation/ du jeu vidéo. Je vais pas certainement pas prétendre que c'est équivalent en licence à un compilateur. Mais j'évite les analogies foireuses.

            En pratique, un LLM ne sera jamais packagé de la manière dont on package Nexuiz, parce que personne n'a l'argent pour "recompiler" un LLM: BERT qui est riquiqui coûte de nos jours 40$/"compilation", ça fait cher la compilation reproductible.

            Je n'ai pas de réponse à la question "qu'est-ce qu'être libre pour un modèle IA?", car elle est particulièrement complexe, entre autre pour les questions de coûts [1], mais je trouve que la trivialiser par "on a déjà résolu cette problématique"

            [1] Pour le coup, la question des coûts de reproduction existe déjà dans d'autres milieux du libre, comme le matériel. Et j'imagine qu'on a déjà eu quelques cas de projets opensource à plusieurs millions d'€ pour le reproduire, mais j'ai toujours été assez mal à l'aise avec

            • [^] # Re: Any purpose

              Posté par  . Évalué à 1 (+0/-0).

              Oui la problématique est différente. Par contre je ne comprends pas :

              On peut distribuer un LLM sans ses données (enfin c'est le cas général)

              Sans les données brutes qui ont servi à l'entrainement de la chose, oui. Mais les données sont bien présentes car jusqu'à maintenat, et dans la limite de ma compréhension, une IA ne sait que recracher les données qu'on lui a fourni en les réarrangeant ou réoragnisant de manière plus ou moins convenable.

              • [^] # Re: Any purpose

                Posté par  (site web personnel) . Évalué à 2 (+0/-0).

                Oui et non. Un modèle peut être entraîné avec des Giga ou Pétaoctets de données et ne peser que quelques centaines de Mégaoctets ou quelques Gigaoctets. Aucune méthode de compression ne permet ça (non, les bombes de décompression, ça compte pas).

                Le modèle est entraîné de façon à réaliser un contenu similaire à ce qu'il a eu en entrée sans que cette entrée soit enregistrée dans le modèle. Mais parfois, des données d'entraînement peuvent être recrachées; ça arrive surtout si les données d'entrées sont redondantes ou très similaires; on peut dire que c'est un jeu de donnée de mauvaise qualité.

                Il faut considérer ça comme un bug. Mais ça arrive. Merci d'avoir regardé la vidéo, n'oubliez pas de vous abonner.

                Un LUG en Lorraine : https://enunclic-cappel.fr

              • [^] # Re: Any purpose

                Posté par  . Évalué à 4 (+1/-0).

                une IA ne sait que recracher les données qu'on lui a fourni en les réarrangeant ou réoragnisant de manière plus ou moins convenable.

                Le réseau de neurones est un "modèle" des données, l'idée c'est plus de faire de la "compression" : un modèle doit capturer l'information utile sans tout apprendre par cœur : on essaye de le faire "généraliser" au dela des exemples d'apprentissage, en utilisant moins de mémoire.

                Une intuition autour de ça c'est la notion d'auto-encodeur : c'est un réseau de neurones multicouche avec un goulot d'étranglement d'information au milieu (une couche avec moins de neurones, donc moins de capacités de mémorisation "brute", qui force a sélectionner les infos, qu'on entraîne en essayant de lui faire reconstruire les informations originales. Il doit donc obtenir les meilleures performances en moyenne sur tous le corpus. En faisant ça on essaye donc de lui faire généraliser un maximum en compressant l'information (mon correcteur auto me fait une blague lapsus, il a mis "comprenant" compresser= comprendre ?)

                On peut imaginer qu'en le "poussant" ainsi a sélectionner l'info on aille plus loin que de lui faire recracher des bouts, mais plus au minimum apprendre des motifs pertinents : a quoi ressemble un chien morphologiquement, a quoi ressemble une fourrure animale, par exemple, avec comme preuve de "séparation" des deux notions qu'on peut demander a dessiner un chien à fourrure d'ours ou un chien à plume.

                Les modèles y arrivent dans une certaine mesure. En passant cette logique au max on peut se demander si il y a moyen de les faire raisonner mathématiquement, en poussant l'abstraction bien plus loin et apprendre des règles de raisonnement correctesqui s'appliquent a de larges classes de problemes mathématiques. Il y a des résultats quand on les spécialisent sur une tâche en particulier, mais les modèles généralistes c'est plus dur (cf. par exemple une vidéo de mathématicien Tom Crawford sur YT "chatgpt (still) can't do maths", ou la on voit clairement qu'il ne raisonne pas (il prend les problèmes d'un concours de maths) mais prend l'apparence d'un raisonnement, éventuellement des arguments qui pourraient être pertinents, puis se vautre dans l'erreur et le non sens en élaborant avant de potentiellement miraculeusement retomber sur ses pattes, ou se vautrer sur la conclusion (plus souvent)

                Mais le truc c'est qu'il y a un continuum : pour recracher des trucs "plausibles" faut sélectionner l'info pertinente, et en faisant ça tu n'est pas a l'abri de cacher suffisamment de structuration dans cette sélection d'info pour avoir capture la structure sous-jacente de ce qu'on attend du résultat. C'est un pré-requis en fait, sinon on dit que le modèle fait du "sur-apprentissage". Il y a un genre de continuum entre apprendre par coeur et recracher, avec toute l'info dans le modele, autant de bits d'info dedans que dans le corpus, et un modèle qui aurait appris a exécuter un algorithme qui ne retient rien des données mais qui donne le bon résultat en extrapolant sur n'importe quoi.

  • # Lien

    Posté par  . Évalué à 1 (+1/-2).

    Alors je me fou assez fort du sujet mais ton lien https://opensource.org/ai/open-source-ai-definition#Why-we-need-Open-Source-Artificial-Intelligence-AI a le défaut que l'entête passe au dessus du titre et c'est pas très clair. Si on utilise la nouvelle fonctionnalité dont on avait parlé il y a peu avec ce lien https://opensource.org/ai/open-source-ai-definition#:~:text=Why%20we%20need%20Open%20Source%20Artificial%20Intelligence%20(AI) le titre est mis en avant et il est centré dans la page, c'est pas mal.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.