Apprentissage en contexte

From Systems analysis wiki
Jump to navigation Jump to search

L' apprentissage en contexte (en anglais In-Context Learning, ICL) est la capacité fondamentale des grands modèles de langage (LLM) d'apprendre de nouvelles tâches « à la volée », en utilisant uniquement des exemples (démonstrations) fournis dans le contexte (prompt) de la requête. La caractéristique clé est que ce processus d'adaptation se produit sans mise à jour des poids (paramètres) du modèle, c'est-à-dire sans l'entraînement supplémentaire traditionnel (fine-tuning)[1][2].

Ce mécanisme permet aux modèles de faire preuve d'une flexibilité remarquable, en résolvant des tâches pour lesquelles ils n'ont pas été spécifiquement entraînés. L'ICL est devenu l'une des avancées majeures qui ont rendu les grands modèles de langage si puissants et polyvalents[3].

Mécanismes de fonctionnement

La compréhension exacte du fonctionnement de l'ICL reste un domaine de recherche actif, mais plusieurs théories principales expliquent ce phénomène.

Le Transformer en tant que méta-optimiseur

Une théorie populaire suggère que l'architecture Transformer, lors du pré-entraînement, apprend à implémenter des algorithmes d'apprentissage dans ses passes directes (forward passes). Lorsque le modèle reçoit un prompt avec des exemples, il effectue implicitement une sorte d'optimisation pour résoudre la tâche présentée, en ajustant ses états internes (activations) plutôt que ses poids[4].

Inférence bayésienne

Une autre théorie considère l'ICL comme une forme d'inférence bayésienne. Le modèle, pré-entraîné sur d'immenses corpus de données, possède une connaissance a priori d'un grand nombre de concepts. Les exemples fournis dans le contexte servent de preuves qui permettent au modèle d'affiner sa distribution de probabilité a posteriori sur les concepts latents. En d'autres termes, les exemples aident le modèle à « comprendre » laquelle des milliers de tâches qu'il connaît doit être résolue à ce moment précis[5].

Types d'apprentissage en contexte

Selon le nombre d'exemples fournis, l'ICL est divisé en trois types principaux.

  • Apprentissage few-shot (apprentissage à partir de quelques exemples): C'est l'approche la plus courante et la plus équilibrée. Le modèle reçoit quelques exemples de démonstration (généralement de 2 à 10).

Exemple (classification de sentiment) :

Texte : "Quelle magnifique journée !"
Sentiment : Positif

Texte : "Je déteste être coincé dans les embouteillages."
Sentiment : Négatif

Texte : "Ce film était plutôt moyen."
Sentiment :

Réponse attendue :

Neutre
  • Apprentissage one-shot (apprentissage à partir d'un seul exemple): Le modèle ne reçoit qu'un seul exemple. Cela suffit souvent à définir le format de la réponse et à améliorer considérablement les performances par rapport à l'approche zero-shot.
  • Apprentissage zero-shot (apprentissage sans exemple): Le modèle ne reçoit aucun exemple, seulement une instruction ou une description de la tâche. Dans ce cas, le modèle s'appuie entièrement sur les connaissances acquises lors de son pré-entraînement.

Application pratique

Une application correcte de l'ICL permet de résoudre un large éventail de tâches sans nécessiter un développement et un fine-tuning coûteux.

  • Pour les tâches créatives et stylistiques (génération de code dans un style spécifique, rédaction de texte à la manière d'un auteur particulier) :
    • L' apprentissage few-shot est recommandé.
    • Les exemples aident le modèle à saisir le style, le format et la structure de sortie souhaités.
  • Pour les tâches simples avec des instructions claires (traduction, résumé, réponse à des questions simples) :
    • L' apprentissage zero-shot est souvent suffisant.
    • Les modèles modernes gèrent assez bien ces tâches si elles faisaient partie de leur pré-entraînement.
  • Pour les tâches où le format de sortie est important (génération de JSON, extraction d'entités) :
    • L' apprentissage one-shot ou few-shot est recommandé.
    • Même un seul exemple peut définir clairement la structure de réponse requise, évitant ainsi les erreurs de formatage.

Avantages et inconvénients

Comparaison des avantages et des inconvénients de l'ICL
Avantages Inconvénients
  • Flexibilité et rapidité : Adaptation instantanée à de nouvelles tâches sans nécessité de réentraînement.
  • Économie de ressources : Ne nécessite pas de collecte de données, d'annotation ou de puissance de calcul pour le fine-tuning.
  • Accessibilité : Permet aux utilisateurs sans expertise en ML de configurer les modèles à l'aide de simples exemples textuels.
  • Limites de la fenêtre de contexte : Le nombre d'exemples est limité par la longueur maximale du contexte du modèle.
  • Sensibilité aux exemples : Le résultat dépend fortement de la qualité, de l'ordre et du format des démonstrations fournies.
  • Coûts élevés lors de l'inférence : Les prompts longs avec de nombreux exemples augmentent le coût et le temps de génération.
  • Risques de sécurité : La transmission d'informations confidentielles en tant qu'exemples peut ne pas être sécurisée.

Comparaison avec d'autres paradigmes

ICL vs. Fine-tuning

Le fine-tuning (ajustement fin) modifie les poids du modèle, y « gravant » de nouvelles connaissances. Cela rend le modèle expert dans un domaine étroit, mais réduit sa flexibilité générale. L'ICL, au contraire, ne modifie pas les poids et est plus flexible, mais peut être moins performant sur des tâches très spécialisées nécessitant une connaissance approfondie du domaine.

ICL vs. RAG (Retrieval-Augmented Generation)

Les deux méthodes étendent le contexte du modèle, mais à des fins différentes :

  • ICL utilise des exemples pour apprendre au modèle comment effectuer une tâche (démonstration de compétence).
  • RAG utilise des informations récupérées pour informer le modèle des faits nécessaires à la réponse (fourniture de connaissances).

En pratique, l'ICL et le RAG sont souvent combinés pour obtenir les meilleurs résultats.

Bibliographie

  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Dai, D. et al. (2022). Why Can GPT Learn In-Context? Language Models Implicitly Perform Gradient Descent as Meta-Optimizers. arXiv:2212.10559.
  • Panwar, M.; Ahuja, K.; Goyal, N. (2024). In-Context Learning through the Bayesian Prism. arXiv:2306.04891.
  • Müller, S. et al. (2021). Transformers Can Do Bayesian Inference. arXiv:2112.10510.
  • Garg, S. et al. (2022). What Can Transformers Learn In-Context? A Case Study of Simple Function Classes. arXiv:2208.01066.
  • Min, S. et al. (2022). Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?. arXiv:2202.12837.
  • Wang, X. et al. (2023). Explaining and Finding Good Demonstrations for In-Context Learning. arXiv:2302.13971.
  • Xie, S. et al. (2024). A Survey on In-Context Learning. arXiv:2301.00234.
  • Yu, Z.; Ananiadou, S. (2024). How Do Large Language Models Learn In-Context? Query and Key Matrices of In-Context Heads Are Two Towers for Metric Learning. arXiv:2402.02872.
  • Wibisono, K. C.; Wang, Y. (2024). From Unstructured Data to In-Context Learning: Exploring What Tasks Can Be Learned and When. arXiv:2406.00131.
  • Chan, J. K. et al. (2022). Data Distributional Properties Drive Emergent In-Context Learning in Transformers. arXiv:2205.05055.
  • Hahn, M.; Goyal, N. (2023). A Theory of Emergent In-Context Learning as Implicit Structure Induction. arXiv:2303.07971.

Notes