Intelligence artificielle PyTorch : La librairie SaLinA expliquée par Ludovic Denoyer (FAIR)

Pour approfondir le sujet

Sur le même thème :

Recevez le numéro 4 d’ActuIA, le magazine de l’intelligence artificielle !

Le numéro 4 d'ActuIA, le magazine de l'intelligence artificielle, arrive en kiosques et en version numérique le 18 mai 2021 ! Recevez-le directement chez...

Traitement automatisé du langage : Facebook présente PyText

Facebook Research a présenté le 14 décembre le framework python PyText. L'outil basé sur PyTorch est destiné à simplifier le passage en production de...

Facebook AI dévoile BlenderBot 2.0, un chatbot qui adapte sa mémoire sur le long terme

Facebook AI Research (FAIR), le laboratoire de recherche sur l'intelligence artificielle de Facebook, a travaillé sur BlenderBot 2.0, un chatbot qui combine mémoire à...

SystemX lance le projet Cockpit et Assistant Bidirectionnel (CAB), une aide à la décision augmentée pour les pilotages complexes

L'IRT SystemX a annoncé le lancement de son projet de R&D collaboratif Cockpit et Assistant Bidirectionnel (CAB). Il s'agit du deuxième projet du programme « Intelligence...

PyTorch : La librairie SaLinA expliquée par Ludovic Denoyer (FAIR)

Le mois dernier, FAIR présentait SaLinA, une librairie légère utilisant notamment une approche basée sur des agents pour mettre en œuvre des modèles de décision séquentiels, y compris (mais pas seulement) des algorithmes reinforcement learning. Pour en savoir plus, nous avons échangé avec Ludovic Denoyer, chercheur scientifique à FAIR Paris – précédemment professeur à Sorbonne Université – et auteur avec Alfredo de la Fuente, Song Duong, Jean-Baptiste Gaya, Pierre-Alexandre Kamienny et Daniel H. Thompson de SaLinA.

ActuIA : En quoi consiste la librairie SaLinA ?

Ludovic Denoyer : La librairie SaLinA est une librairie légère qui peut être vue comme une extension de PyTorch permettant la prise en compte de la séquentialité dans le processus de traitement d’information. Elle permet de rajouter à PyTorch la capacité de naturellement prendre en compte la dimension temporelle dans les données et les traitements et fournit un cadre pour l’implémentation de systèmes de décision séquentiels, particulièrement d’algorithmes d’apprentissage par renforcement.

Quel est l’intérêt de l’approche basée sur des agents pour cette librairie ?

Concrètement, là ou PyTorch permet de composer des ‘modules’ afin de construire des réseaux de neurones complexes, SaLinA permet de composer des ‘agents’ pour construire des agents complexes, un agent correspondant à un modèle séquentiel. De plus, là ou PyTorch établit une séparation claire entre modèle et données (par l’utilisation de différentes classes comme les DataLoader), SaLinA unifie complètement ces deux aspects, les données tout comme les prédictions étant générées par des agents. Par exemple, c’est un agent qui s’occupe de charger les données d’un dataset en mémoire, ou bien c’est aussi un agent qui modélise un environnement d’apprentissage.

Cette unification a deux avantages : elle simplifie grandement la compréhension des codes produits (une seule abstraction), et elle permet de modéliser des cadres complexes d’apprentissage, comme par exemple le model-based RL ou bien le batch-RL qui peuvent être traités simplement en changeant les agents impliqués dans le processus d’apprentissage, sans changer l’algorithme lui même. On obtient ainsi une séparation nette entre l’algorithme d’apprentissage et l’architecture des modèles engagés dans cet apprentissage (comme PyTorch l’autorise en deep learning classique), ce qui est une caractéristique majeure de la librairie, là ou les autres librairies d’apprentissage par renforcement proposent usuellement des algorithmes spécifiques à certaines architectures.

Concrètement, tous les algorithmes que nous fournissons avec SaLinA fonctionnent avec des perceptrons, des réseaux de neurones récurrents, des transformers, sans besoin de changer le code de l’algorithme.

Malgré l’influence forte du reinforcement learning dans la conception même de SaLinA, son utilisation ne se limite pas au RL. Quelles sont ses utilisations possibles ?

Aujourd’hui, deux mondes coexistent : les tenants de l’apprentissage supervisé qui modélisent leurs processus de décision à travers des fonctions dites « atomiques » apprises sur des jeux de données, et les tenants de l’apprentissage par renforcement qui modélisent des processus séquentiels en interaction avec des environnement. SaLinA crée un pont entre les deux mondes, autorisant par exemple le développement d’algorithmes séquentiels sur des jeux de données, ou sur des mélanges d’environnements et de données.

Du point de vue des chercheurs en apprentissage supervisé, cela ouvre la possibilité de développer des algorithmes plus séquentiels (e.g des modèles de cascade par exemple, ou des modèles d’attention complexes). Du côté des chercheurs en apprentissage par renforcement, cela facilite l’utilisation de données (e.g trajectoires collectées sur des utilisateurs), et augmente donc le champ des possibles. De plus, tout le monde peut utiliser la même librairie, et l’échange d’informations entre les communautés est donc simplifié.

La librairie SaLinA est actuellement très légère (300 lignes de code), mais le découplage et la structuration qu’elle permet facilitent tant l’expérimentation que l’industrialisation. La légèreté de la librairie est-elle au cœur de son ADN ou envisagez-vous de la faire évoluer progressivement vers un framework de plus en plus outillé ?

SaLinA est plus une extension de PyTorch – fournie avec de nombreux exemples d’algorithmes – qu’une librairie en tant que tel. Notre volonté est de la garder la plus simple possible, et de faire grandir le nombre des algorithmes l’utilisant. L’intérêt de la conserver aussi simple est d’une part d’en garder la facilité d’adoption, mais aussi de permettre l’utilisation de tous les outils de l’écosystème de PyTorch (e.g pytorch lightning). Ainsi, la mise en production d’algorithmes développés en SaLinA peut aujourd’hui être effectuée en utilisant les mêmes outils que la mise en production de modèles PyTorch, ce qui nous permet de nous focaliser sur le développement des algorithmes sans créer un nouvel écosystème dont la maintenance serait compliquée.

Les axes de développement sont doubles : d’une part le développement d’agents complexes (e.g transformers optimisés, agents en interaction avec des utilisateurs réels, etc.), et d’autre part l’implémentation de multiples algorithmes permettant de reproduire l’état de l’art, mais aussi pouvant servir de base à la construction de nouveaux modèles.

Un grand merci à Ludovic Denoyer ainsi qu’à FAIR pour leurs réponses.

Plus d’information : https://arxiv.org/pdf/2110.07910.pdf et https://github.com/facebookresearch/salina 


1ère Marketplace de l'IA et de la transformation numérique vous recommande :
 
Johanna Diaz

Partager l'article

Levée de fonds de 6 millions d’euros de la fintech lyonnaise Mon Petit Placement

Mon Petit Placement, start-up lancée en 2017, a bouclé en ce mois de novembre sa troisième levée de fonds pour un montant de 6...

Lutte contre la cybercriminalité : l’exemple du défi IA lancé par le gouvernement canadien aux petites entreprises

Comme les autres organismes de police canadiens, la Gendarmerie royale du Canada (GRC) peine à accéder aux données chiffrées saisies lors d'enquêtes criminelles. C'est...

Continuity annonce une levée de fonds de 5 millions d’euros auprès d’Elaia Partners, Bpifrance et Kamet Ventures

Continuity a levé 5 millions d’euros en Seed auprès d'Elaia Partners, Bpifrance et Kamet Ventures a annoncé la jeune pousse cette semaine. La start-up...

ADAM9, un gène potentiellement impliqué dans les formes graves de Covid-19 identifié par l’intelligence artificielle

Pourquoi certains patients atteints de Covid-19 sont-ils asymptomatiques alors que d'autres développent des formes graves, notamment le SDRA (syndrome de détresse respiratoire aigüe) ?...
Recevoir une notification en cas d'actualité importante    OK Non merci