Le casse tête des licences pour l’intelligence artificielle

Le casse tête des licences pour l’intelligence artificielle

17 avril 2023 0 Par Aschen

🇬🇧 The headache of licensing artificial intelligence models

Comprendre et choisir le fonctionnement d’une licence n’est pas une tâche aisée.

Historiquement, on peut dire que les utilisateurs de licences se divisent en 3 camps:

  • Licences libres: ces licences permettent de faire ce que l’on veut du produit/logiciel (MIT, Apache 2 et autres WTFPL ou Beerware)
  • Licences restrictives: ces licences restreignent l’usage du logiciel selon certaines conditions
    • Server Side Public Licence: si le produit/logiciel est distribué dans un SaaS, obligation de redistribuer le code source du SaaS (MongoDB, Elasticsearch)
    • Creative Commons: plusieurs variantes, notamment non-commercial, citation de l’auteur,
    • Toutes une floppée de licences personnalisées
  • Licences copyleft: ces licences obligent les produits/logiciels qui en découlent à utiliser la même licence (c’est le cas des licences de la famille GPL utilisées par GNU/Linux notamment)

Bref, un vrai casse-tête lorsque l’on veut choisir une licence, heureusement certains sites existent pour faciliter ce choix:

  • dans le logiciel https://choosealicense.com/
  • pour tout le reste https://creativecommons.org/choose/

Complexité des projets IA

Contrairement au développement logiciel, lorsque l’on choisit une licence pour un projet d’intelligence artificiel, il y a plusieurs parties qui peuvent posséder des licences différentes!

  1. le code source d’utilisation du modèle entrainé
  2. le code source d’entrainement du modèle
  3. le modèle entrainé (les poids obtenus après entrainement)
  4. les données utilisées pour l’entrainement

Code source d’utilisation du modèle entrainé

En général, le code source d’utilisation du modèle entrainé (1) peut faire l’objet d’une licence libre type Apache 2 car cette partie peut s’apparenter à un SDK qui est de toute manière inutilisable sans les poids du modèle entrainé (3).

Code source d’entrainement du modèle

Avec cette partie, on rentre dans quelque chose de plus sensible car le code d’entrainement du modèle peut-être considéré comme une propriété intellectuelle importante. Dans le cas d’un réseau de neurones, ce code est composé des différentes couches qui composent le modèle.

Avoir accès à ce code source donne potentiellement la capacité de recréer entièrement le projet d’IA.

Cependant, l’entrainement du modèle afin de générer les poids (3) demandera beaucoup de temps (et d’argent) que ce soit pour payer des serveurs ou pour se procurer un jeux de données d’entrainement (4).

Par exemple, Facebook a décidé d’open sourcé le code source de modèle Llama mais de ne pas distribuer les poids (3) et le jeux de données d’entrainement (4).

Modèle entrainé (poids du modèle)

Le modèle entrainé peut être obtenu si l’on est préalablement en possession du code source du modèle (2) et du jeux de données d’entrainement (4).

En général, les poids ne sont même pas publiés car ctte partie est la plus jalousement gardée, c’est grâce à elle que l’on est capable véritablement d’utiliser un modèle d’IA.

Très peu de poids sont publiés, lorsqu’ils le sont alors on peut utiliser une licence restrictive comme Responsive AI Utilisation (RAIL) qui permet un usage commercial à condition de ne pas être « dangereux » (par exemple un bot qui génère du spam).

Par exemple, les poids de StableDiffusion sont diffusés sous licence RAIL.

Données d’entrainement du modèle

Les données d’entrainement (« dataset ») sont utilisées par le code source du modèle (2) afin de générer le modèle entrainé (3).

Ces données sont très souvent de grandes collections qui ont été annotées à la main mais peuvent aussi être le résultat de « crawlers » ayant téléchargé des contenus sur le web.

Ces jeux de données sont souvent sujets à des licences de type académique, utilisable pour de la recherche uniquement comme ImageNet de l’université de Princeton.

Licences en cascade

Chaque composant dépend d’un autre donc leurs licences s’additionnent selon le même principe:

  • Données d’entrainement (4) + code source (2) = poids (3)

Par exemple, le modèle Alpaca utilise le code source de Llama (2) (licence GPL) et les données d’entrainement de OpenAI (4) (licence restrictive non-commercial) donc le modèle entrainé (3) ne peut pas être utilisé commercialement.

Des projets IA Open Source et Libre

Du côté des LLM on peut citer Cerebras, StableLLM ou encore RedPajama qui sont tous 100% Open Source et libres.


Image d’en-tête: Route des 7 lacs, Argentine