XPMIR : Une bibliothèque modulaire pour l’apprentissage d’ordonnancement et les expériences de RI neuronale (2023)

Abstract: Ces dernières années, plusieurs librairies pour la recherche d’information (neuronale) ont été proposées. Cependant, bien qu’elles permettent de reproduire des résultats déjà publiés, il est encore très difficile de réutiliser certaines parties des chaînes de traitement d’apprentissage, comme par exemple le pré-entraînement, la stratégie d’échantillonnage ou la définition du coût dans les modèles nouvellement développés. Il est également difficile d’utiliser de nouvelles techniques d’apprentissage avec d’anciens modèles, ce qui complique l’évaluation de l’utilité des nouvelles idées pour les différents modèles de RI neuronaux. Cela ralentit l’adoption de nouvelles techniques et, par conséquent, le développement du domaine de la RI. Dans cet article, nous présentons XPMIR, une librairie Python définissant un ensemble réutilisable de composants expérimentaux. La bibliothèque contient déjà des modèles et des techniques d’indexation de pointe, et est intégrée au hub HuggingFace.

## introduction le développement de modèles (neuronaux) de recherche d'information dépend d'une chaîne de traitement complexe (par exemple, le pré-traitement, l'entraînement, l'indexation et l'évaluation). une série de bibliothèques (en python) a été proposée pour faciliter la reproduction des résultats expérimentaux. bien que ces bibliothèques soient pratiques lorsqu'il s'agit de ré-exécuter une expérience en changeant un ou des paramètres spécifiques, elles sont moins utiles lorsqu'il s'agit de créer de nouveaux modèles. plus précisément, il n'est pas facile de modifier la chaîne de traitement car ces projets ne sont pas assez modulaires. nous pensons que cela explique pourquoi les nouveaux modèles ne sont pas développés dans ces bibliothèques -empêchant ainsi l'adoption de certains composants dans de nouveaux modèles. concevoir de nouveaux modèles qui tirent parti des innovations récentes prend du temps, ce qui ce qui ralentit la recherche et le partage des codes. l'objectif de la bibliothèque xpmir est de proposer un ensemble de composants réutilisables permettant de concevoir de nouvelles expériences pour la recherche d'information (neuronale), ainsi que de reproduire les anciennes. xpmir atteint cet objectif en : ## travaux connexes tout d'abord, il existe de nombreuses bibliothèques liées à la ri. parmi celles-ci, nous pouvons citer : datasets ir-datasets @xcite propose une api pour accéder à de nombreux jeux de données de ri et les télécharger (s'ils sont disponibles gratuitement) ; indexation et recherche il existe de nombreuses bibliothèques qui traitent de l'indexation. pour les modèles de ri standard, nous pouvons citer pyserini (26), pyterrier (14) et pisa @xcite , et pour les modèles neuronaux denses de ri, faiss @xcite . evaluation ir-measures (13) est une bibliothèque récente qui fournit un accès direct à une grande diversité de métriques de ri. lorsque cela est possible, xpmir réutilise les bibliothèques existantes en fournissant des composants qui encapsulent l'accès à ces bibliothèques, de sorte qu'elles puissent être réutilisées dans différentes expériences. plus précisément, à ce jour, xpmir fournit des composants pour ir-datasets, ir-measures, pyserini, et faiss. une bibliothèque en rust a également été développée pour traiter le cas des modèles neuronaux de ri parcimonieux. plus en rapport avec xpmir, diverses bibliothèques pour la ri neuronale ont été proposées ces dernières années, telles que opennir foot_2 (11), matchmaker 4 (5) ou capreolus foot_4 (yates et al.)ou des librairies de code plus spécifiques liés à une classe de modèles, comme par exemple pour les modèles colbert foot_5 ou splade 7 . pour opennir et matchmaker, les expériences sont toutes configurées par un fichier de paramètres (ou via la ligne de commande) qui permet de modifier certains aspects du processus d'apprentissage, mais pas de combiner facilement des parties de la chaîne de traitement. capreolus, qui est le plus proche de xpmir, définit un ensemble de composants (modules), mais s'appuie sur des tâches prédéfinies (par exemple, apprendre et évaluer) dont certaines parties sont configurables. toutefois, cette librairie est relativement rigide car il n'y a aucun moyen facile de modifier une chaîne de traitement. nous pensons que ces bibliothèques ne sont pas suffisamment modulaires. par exemple, que se passe-t-il si nous voulons utiliser une étape de pré-entraînement mlm (masked language model) spécifique tel que lexmae (23) pour le modèle colbert (8) ? que se passe-t-il si nous voulons utiliser un modèle pour générer des exemples négatifs difficiles à partir d'un nouveau modèle de ri neuronale ? dans ces bibliothèques, il faut coder explicitement toute la "colle" entre les différentes parties, mais cela prend du temps et est source d'erreurs car les composants n'ont pas forcément été conçu pour être ré-utilisés de manière indépendante. en comparaison, la bibliothèque xpmir a pour objectif de -proposer un ensemble de composants réutilisables pour apprendre et évaluer les modèles neuronaux de ri ; -permettre de combiner ces composants et de concevoir des expériences complexes grâce à experimaestro et datamaestro @xcite ; -fournir un ensemble de composants d'expérience de haut niveau (par exemple ceux utilisés dans une tâche typique de ré-ordonnancement sur ms-marco) similairement à ce qui est fait dans capreolus ; -fournir une intégration avec huggingface pour réutiliser les modèles de ri pré-entraînés. ## xpmir cette section décrit les différents composants de la bibliothèque xpmir 8 , regroupés par catégorie : ## conclusion dans cet article, nous avons présenté la librairie xpmir qui permet d'entraîner et d'évaluer des modèles de ri (neuronaux). xpmir est basé sur l'idée de décomposer le pré-traitement des ensembles de données, la représentation du texte, les modèles neuronaux de ri, l'apprentissage d'ordonnancement et l'évaluation en un ensemble de composants réutilisables -qui exploitent les bibliothèques de ri existantes dans la mesure du possible. ces composants peuvent être composés par l'intermédiaire de la bibliothèque experimaestro (21) pour définir des plans expérimentaux complexes de ri neuronale. xpmir fournit également des composants de haut niveau qui facilitent la description d'expériences standard (par exemple, l'entraînement d'un ré-ordonnanceur pour ms marco). l'intérêt d'utiliser de tels composants est qu'il est beaucoup plus facile de réutiliser certains d'entre eux pour de nouveaux modèles et de concevoir des plans expérimentaux comparant différents modèles. avec notre structure de code actuelle et les différents composants déjà présentés, de nombreux autres articles pourraient être facilement mis en oeuvre. par exemple, nous travaillons actuellement à la reproduction de duobert @xcite et colbert (8), et nous prévoyons d'inclure des procédures de préentraînement récentes et spécifiques à la ri comme par exemple (23) ainsi que de l'auto-distillation comme utilisée dans (3). finalement, la librairie est open-source (licence gplv3) et les contributions et commentaires sont les bienvenus.