Les communs numériques et les logiciels libres, patrimoine de l’humanité
Entretien avec Stefano Zacchiroli, professeur au département Informatique et Réseaux de Télécom Paris, juin 2023.
Stefano Zacchiroli répond à nos questions sur les communs numériques, et en particulier sur les logiciels libres.
Il nous parle de Software Heritage, la plus grande archive au monde des codes sources.
Propos recueillis par Isabelle Mauriac
Podcast
Retrouvez cette interview en format audio dans le cadre des podcasts Télécom Paris Ideas :
Podcast Michel Desnoues, Télécom Paris
Entretien
Commençons par la notion de communs ou commons, qui sont des ressources maintenues par une communauté. Les exemples classiques sont les ressources naturelles comme l’air, la terre ou l’eau de rivière, ou des ressources culturelles comme les connaissances qu’une communauté peut avoir acquises au fil des années.
L’important dans cette notion est qu’il n’y a pas de privation, ces ressources ne sont pas gérées par des individus ou des entreprises mais par une collectivité.
Les communs numériques sont gérés de la même manière. Ce sont des données ou des logiciels par exemple, qui peuvent être gérés par une communauté, qui sont librement accessibles ou à coûts complètement marginaux, donc que tout le monde peut utiliser, et dont la gouvernance, le contrôle de ces données est garanti par une communauté qui s’est mise d’accord sur la façon de gérer ces ressources numériques.
« Ces ressources ne sont pas gérées par des individus ou des entreprises mais par une collectivité. »
Il existe plusieurs exemples. Le 1er exemple historique sont les logiciels libres, qui sont les logiciels que les individus peuvent librement copier, modifier et étudier. Cette notion date des années 1980 et a donné lieu à beaucoup de logiciels qui sont utilisés aujourd’hui pour faire tourner l’internet ou nos téléphones et que chacun peut obtenir gratuitement, modifier, étudier et partager avec les autres.
Ces premiers communs numériques ont généré par la suite Wikipédia, autre commun, qui a été inspiré par le logiciel libre. Le fondateur de Wikipedia a vu que le logiciel libre permettait une collaboration à très grande échelle d’une communauté mondiale, et a utilisé le même modèle pour créer une encyclopédie libre. Aujourd’hui, toute la connaissance stockée dans Wikipedia est un commun numérique.
Autre exemple plus récent, les données cartographiques ouvertes et le projet Open Street Map qui a construit une base de données ouverte, en partie alimentée par les institutions qui décident d’ouvrir leurs données (l’État, les instituts cartographiques…) et les bénévoles partout dans le monde, qui visitent un endroit avec un GPS et utilisent ces données pour accroître la quantité de données présentes sur cette carte globale qui est accessible à tout le monde.
Ou encore, plus récemment, il existe de plus en plus de modèles d’intelligence artificielle ouverts dans lesquels à la fois les données utilisées pour entraîner l’IA et les résultats de l’entraînement – les modèles – sont complètement ouverts et font partie d’un commun numérique.
« Toute la connaissance stockée dans Wikipedia est un commun numérique. »
C’est un bon exemple, Open AI est décidément un oxymore. À l’origine, c’est une entreprise privée qui avait vocation à créer des modèles d’IA complètement ouverts, mais qui au final s’est détournée de ce modèle en partie pour des raisons éthiques mais surtout pour des raisons commerciales. Donc non, les modèles et les données utilisées par Open AI ne sont pas des exemples d’IA ouverte. Par contre, il y a d’autres exemples comme le projet Common Voice qui vise à construire un modèle de reconnaissance de langage parlé par les êtres humains avec des données complètement ouvertes, ou le projet Big Code, un générateur de code automatique complètement entraîné sur du code ouvert et dont le modèle lui-même est ouvert, tout le monde peut l’utiliser, le modifier et l’améliorer.
« Les modèles et les données utilisées par Open AI ne sont pas des exemples d’IA ouverte. »
Il faut partir de l’observation que le logiciel existe sous deux formes : il y a la version exécutable du logiciel (comment le logiciel tourne sur nos téléphones et nos ordinateurs) et après, il y a la version du logiciel qui est utilisée par celui qui crée le logiciel, en gros le code source, comme la recette de ce qu’un logiciel fait (vu par le développeur). Et dans le code source, il y a vraiment la connaissance de la façon dont le logiciel marche, comment lire un format de données qui est propre à ce logiciel, stocké exclusivement dans le code source.
Dans le projet Software Heritage, nous partons du constat que les logiciels contiennent plein de connaissances techniques que l’humanité a cumulé au fil des années et que ça serait dommage de perdre. L’idée du projet est de récupérer la plupart des codes sources que l’on va trouver, notamment sur Internet, les préserver dans le long terme et les rendre accessibles aux acteurs qui en ont besoin.
Nous avons fait ça pour plusieurs raisons. En 2016, il y avait des plateformes utilisées par les développeurs pour créer collaborativement des logiciels qui commençaient à disparaître. On appelle ça des forges de développement… On s’est dit : si le code source est disponible uniquement sur cette forge-là, on risque de les perdre… car les générations futures n’auront plus accès à ces ressources. Le projet Software Heritage sert plusieurs besoins : d’abord la préservation de ces connaissances techniques importantes pour l’humanité. Le deuxième besoin est pour la science ouverte car nous avons de plus en plus de résultats techniques qui dépendent du logiciel. Donc il est important d’archiver ces logiciels qui ont été utilisés pour produire ces résultats scientifiques, pour permettre de les vérifier, de les reproduire et de construire d’autres résultats sur ces bases dans le futur.
Enfin, nous avons besoin de tracer quels logiciels libres se trouvent dans nos dispositifs numériques (téléphones et ordinateurs), quelle version d’un logiciel libre est contenue dans une appli qui se trouve sur son téléphone ou une montre connectée. Une archive numérique permet là de référencer les versions exactes du code source dans les dispositifs que nous utilisons au quotidien.
« Le projet Software Heritage sert plusieurs besoins : d’abord la préservation de ces connaissances techniques importantes pour l’humanité. Le deuxième besoin est pour la science ouverte. »
C’est un projet très ambitieux, c’est vrai. Nous l’avons lancé en collaboration avec l’UNESCO et l’INRIA en 2016. L’UNESCO a reconnu qu’il n’y avait pas d’autre projet qui visait à archiver les formats code source à cette échelle-là donc il nous a apporté son soutien. Et depuis, de nombreux sponsors se sont ajoutés et le projet est soutenu par des acteurs publics comme privés, ainsi que par Télécom Paris grâce à mon travail. Aujourd’hui le projet se porte plutôt bien, nous sommes une quinzaine de personnes, au sein de l’équipe que je coordonne en tant que responsable technique du projet et qui a déjà constitué aujourd’hui la plus grande archive au monde des codes sources.
Nous nous portons plutôt bien et au niveau politique nous menons une bataille pour faire en sorte que la science ouverte utilise de plus en plus de bonnes pratiques d’archivage de code source associés aux articles scientifiques et notamment des projets cités dans la road map de la science ouverte de la France. Aussi nous faisons partie de la proposition de la France pour le Digital des Nations Unies.
L’archive fait presque un péta octets de données. Cela peut sembler beaucoup, mais les codes source ont une particularité : ils demandent beaucoup de temps de cerveau, mais cela se réduit en fait à une petite quantité de données une fois qu’on les a produites. C’est normal pour un développeur de passer une journée à essayer de résoudre un problème qui, à la fin, devient une ligne de code, donc juste quelques octets. Alors qu’une vidéo de chatons archivée fait des dizaines de milliards d’octets !
« Les codes source ont une particularité : ils demandent beaucoup de temps de cerveau, mais cela se réduit en fait à une petite quantité de données une fois qu’on les a produites. »
Oui, absolument : de tels travaux sont une mine d’or pour la recherche, notamment en génie logiciel empirique, donc les chercheurs qui étudient les codes source. Une partie de ma recherche consiste en des analyses historiques sur l’archive de Software Heritage, sur effectivement plus de 50 années d’histoire. Nous avons commencé à archiver en 2016, mais seulement des versions de contrôle qui contenaient un historique qui peut remonter loin dans le temps. Ici, on peut observer l’évolution du code public entre 2020 et aujourd’hui. J’ai mené pour ma part des recherches sur la diversité dans le code public, notamment en termes de genre ou d’origine géographique. Tout cela est rendu possible par une archive historique accessible à tout le monde.
« J’ai mené des recherches sur la diversité dans le code public, notamment en termes de genre ou d’origine géographique. Tout cela est rendu possible par une archive historique accessible à tout le monde. »
Concernant les communs au-delà du monde numérique, tout ce qui est livre, texte, littérature… les bibliothèque font de l’archivage depuis longtemps. Et il y a aussi de plus en plus d’études historiques qui utilisent aujourd’hui des techniques numériques… Mais sinon je pense que dans le monde numérique pur, avec cette vision historique, c’est une première.