Participation du CRIM à DEFT 2024 : Utilisation de petits modèles de Langue pour des QCM s dans le domaine médical (2024)

Abstract: Ce papier décrit le travail de l’équipe du CRIM (Centre de recherche en Informatique de Montréal) dans le cadre du Défi Fouille de textes 2024. Nous présentons les expériences que nous avons menées dans le cadre de la tâche principale consistant à identifier automatiquement, pour une question donnée issue d’annales d’examens de pharmacie, l’ensemble des réponses correctes parmi les cinq proposées. La contrainte est d’utiliser un système de moins de 3 milliards de paramètres dont les données d’entraînement sont connues. Pour ce faire, nous avons testé des approches impliquant du few-shot prompting, du RAG, de l’affinage et de la génération contrainte en dernier recours.

## introduction la campagne d'évaluation deft 2024 porte sur la mise en place d'approches à base de grands modèles de langue (gml/llm) permettant de répondre automatiquement à des questionnaires à choix multiples (qcm) issus d'annales d'examens de pharmacie. ces questionnaires composent le corpus frenchmedmcqa @xcite qui était fourni aux participants pour leur permettre de tester et/ou entraîner leur système. frenchmedmcqa comprend 3 105 qcms, dont 1080 questions avec une réponse unique parmi les cinq possibles et 2025 avec de multiples réponses. la tâche principale consiste à répondre à une question posée en sélectionnant une ou plusieurs réponses parmi les 5 proposées. la contrainte est d'utiliser un système de moins de trois milliards de paramètres dont les sources d'entraînement sont connues (ce qui exclut chatgpt ou mistral par exemple). le recours à l'utilisation de ressources externes est limité à deux corpus supplémentaires : le corpus nachos @xcite et wikipedia. l'objectif des organisateurs étant de permettre aux participants d'explorer des techniques telles que le retrieval-augmented generation (rag) @xcite . les métriques utilisées pour évaluer la tâche sont l'exact match ratio (taux de réponses parfaitement justes) et le hamming score (taux de réponses justes parmi l'ensemble des réponses et la référence). l' emr (exact match ratio) a été utilisée comme métrique officielle pour classer les participants. dans cet article nous présentons les résultats de nos expériences sur la tâche principale qui s'est déroulée en deux temps : une première phase d'exploration avec le corpus d'évaluation issu de frenchmedmcqa, puis une soumission avec 3 systèmes sur un corpus d'évaluation. au travers de ces expériences, nous avons été amenés à nous poser différentes questions : ## méthodologie les contraintes sur la taille du modèle et la source des données d'entraînement ont considérablement réduit le spectre des modèles utilisables. ## système proposé pour mener à bien nos expérimentations, nous avons conçu un système composé d'un ensemble de tâches exécutées successivement. les modules qui exécutent ces tâches ont les fonctions suivantes : notre système est présenté dans la figure 1 et nous le décrivons maintenant en détails. ## résultats préliminaires le tableau suivant résume nos expériences sur le corpus de validation fourni par les organisateurs en phase préliminaire. pour le rag, nous indiquons quel corpus a été utilisé (wikipedia ou nachos). la stratégie indique s'il y a eu un affinage sur le jeu de données d'entraînement de frenchmedmcqa, le nombre d'exemples injectés dans le few-shot prompting et les techniques annexes décrites à la section 3.4. les résultats obtenus sur le corpus de test du corpus frenchmedmcqa sont parfois contre-intuitifs. l'expérience à base de few-shot prompting sur la base du modèle stablelm-3b-4e1t qui n'est entraîné qu'avec des données en langue anglaise, obtient de meilleurs résultats que les expériences avec de l'affinage en français, sur la tâche ciblée, avec le même modèle. notre hypothèse est que du sur-apprentissage ou de l'oubli catastrophique @xcite puissent être les causes de ces résultats surprenants. des contraintes de temps n'ont pas permis d'approfondir l'analyse. concernant l'utilisation du rag, les résultats sont inégaux. bloomz-3b a bénéficié du rag sur du zero-shot avec le corpus nachos et encore plus de l'augmentation du nombre d'exemples (quand on passe à du few-shot avec 6 exemples). mais ce n'est pas le cas de flan-t5-xl pour qui l'ajout du rag (avec wikipedia), sur du few-shot, a dégradé légèrement les résultats. quant à stablelm-3b-4e1t, on voit clairement qu'en zero-shot seul, les performances sont très mauvaises, et que le rag les dégrade légèrement plus (comme pour flan). en revanche, l'augmentation du nombre d'exemples, couplée à l'utilisation du rag, améliore les performances de quasiment 10 points. il semble que le module de rag n'en soit pas la cause puisque les performances sont encore meilleures lorsque d'autres techniques couplées au few-shot sont mises en oeuvre, tout en n'utilisant pas le rag. une rapide inspection visuelle nous laisse croire que la performance du module de retrieval n'est pas en cause, car celui-ci avait une bonne capacité à retrouver les bons contextes pour augmenter le prompt. nous en concluons que le modèle stablelm-3b-4e1t n'a simplement pas pu tirer avantage du contexte fourni par le rag. finalement, les meilleures performance de stablelm-3b-4e1t par rapport aux autres modèles sont probablement liées plutôt à la longueur de la fenêtre contextuelle, deux fois plus grande que bloomz-3b et flan-t5-xl (4096 jetons versus 2048 pour bloomz) qui nous a permis d'injecter plus d'exemples de few-shot. cela a sûrement permis d'améliorer l'apprentissage en contexte @xcite . sur la base de ces expériences préliminaires, nous avons donc choisi de soumettre notre système avec le modèle stablelm-3b-4e1t avec seulement du few-shot et différentes techniques de sélection de la réponse finale : la contrainte de grammaire en dernier recours, l'auto-évaluation et le best_of_2. ## résultats finaux et discussions suite aux résultats obtenus sur le corpus de validation fourni, les trois soumissions sur le corpus de test ont été faites avec le modèle stablelm-3b-4e1t. pour les trois systèmes, nous avons utilisé le few-shot prompting, sans affinage du modèle de base. seuls les exemples dans le few-shot prompting sont en français. le reste du prompt est en anglais pour s'accorder avec la langue de pré-entraînement du modèle. les systèmes soumis ont tous bénéficié de la contrainte de grammaire de dernier recours, dénotée par le suffixe -cgf pour constrained generation fallback. en outre, ils ont bénéficié de démonstrations échantillonnées par le module dspy.labeledfewshot et d'un décodage en unicode des questions/réponses en français. ces systèmes diffèrent uniquement au niveau des fonctionnalités auto-judge et best_of_2 décrites à la section 3.4. les résultats que nous avons obtenus figurent dans le tableau 2. ## conclusion les résultats obtenus dans notre étude révèlent plusieurs points intéressants et parfois contre-intuitifs quant à l'utilisation de différentes techniques pour répondre à des questions à choix multiples en français, avec des modèles de langue de taille limitée. nos expériences ont montré que le few-shot prompting est la technique qui a été la plus efficace pour pallier la taille limitée des modèles plutôt que l'utilisation du rag ou de l'affinage de modèle. c'est particulièrement le cas lorsque le modèle dispose d'une longue fenêtre contextuelle comme stablelm-3b-4e1t. nos expériences ont montré que la capacité multilingue d'un modèle n'est pas nécessairement un facteur déterminant pour obtenir de bonnes performances sur une tâche en français. le modèle stablelm-3b-4e1t, uniquement entraîné en anglais, a montré des performances compétitives grâce à des techniques de few-shot prompting. ceci suggère que la richesse et la qualité des exemples fournis dans le prompt peuvent compenser l'absence de données d'entraînement en français. au delà des grandes techniques (few-shot, rag et affinage), notre principale contribution repose sur l'utilisation de la contrainte de génération en dernier recours après l'extraction et correction d'expressions régulières tolérées, et ce, afin ne pas brimer la génération de jetons précurseurs d'assimilation et de décomposition du problème avant de produire la réponse attendue.