In-Context Learning (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Apprendimento nel contesto (ingl. In-Context Learning, ICL) — è una capacità fondamentale dei grandi modelli linguistici (LLM) di apprendere nuovi compiti «al volo», utilizzando esclusivamente gli esempi (dimostrazioni) forniti nel contesto (prompt) della richiesta. La caratteristica chiave è che questo processo di adattamento avviene senza aggiornare i pesi (parametri) del modello, ovvero senza il tradizionale fine-tuning[1][2].

Questo meccanismo consente ai modelli di mostrare una notevole flessibilità, risolvendo compiti per i quali non sono stati appositamente addestrati. ICL è diventato uno dei principali breakthrough che ha reso i grandi modelli linguistici così potenti e versatili[3].

Meccanismi di funzionamento

La comprensione precisa di come funziona ICL rimane un'area di ricerca attiva, tuttavia esistono diverse teorie principali che spiegano questo fenomeno.

Transformer come meta-ottimizzatore

Una delle teorie più diffuse sostiene che l'architettura Transformer, durante il pre-addestramento, impara a implementare algoritmi di apprendimento nei propri forward pass. Quando il modello riceve un prompt con esempi, esegue implicitamente una sorta di ottimizzazione per risolvere il compito presentato, regolando i propri stati interni (attivazioni) anziché i pesi[4].

Inferenza Bayesiana

Un'altra teoria considera ICL come una forma di inferenza Bayesiana. Il modello, pre-addestrato su enormi quantità di dati, possiede una rappresentazione a priori di una moltitudine di concetti. Gli esempi nel contesto fungono da evidenze che permettono al modello di affinare la propria distribuzione di probabilità a posteriori sulle concetti latenti. In altre parole, gli esempi aiutano il modello a «capire» quale, tra le migliaia di compiti che conosce, debba essere risolto in quel momento[5].

Tipi di In-Context Learning

In base al numero di esempi forniti, ICL si suddivide in tre tipologie principali.

  • Few-shot Learning (apprendimento su pochi esempi): È l'approccio più comune ed equilibrato. Al modello vengono forniti alcuni (di solito da 2 a 10) esempi dimostrativi.

Esempio (classificazione del sentiment):

Текст: "Какой прекрасный день!"
Тональность: Позитивная

Текст: "Я ненавижу стоять в пробках."
Тональность: Негативная

Текст: "Этот фильм был довольно средним."
Тональность:

Risposta attesa:

Нейтральная
  • One-shot Learning (apprendimento su un singolo esempio): Al modello viene fornito un solo esempio. Spesso è sufficiente per definire il formato della risposta e migliorare significativamente le prestazioni rispetto all'approccio zero-shot.
  • Zero-shot Learning (apprendimento senza esempi): Al modello non vengono forniti esempi, ma solo un'istruzione o la descrizione del compito. In questo caso il modello si affida interamente alle conoscenze acquisite durante il pre-addestramento.

Applicazioni pratiche

Un utilizzo corretto di ICL consente di affrontare un'ampia gamma di compiti senza costosi sviluppi e fine-tuning.

  • Per compiti creativi e stilistici (generazione di codice in uno stile specifico, scrittura di testi nello stile di un determinato autore):
    • Si raccomanda il Few-shot Learning.
    • Gli esempi aiutano il modello a cogliere lo stile, il formato e la struttura dell'output desiderati.
  • Per compiti semplici con istruzioni chiare (traduzione, riassunto, risposte a domande semplici):
    • Spesso è sufficiente il Zero-shot Learning.
    • I modelli moderni gestiscono tali compiti abbastanza bene se questi facevano parte del loro pre-addestramento.
  • Per compiti in cui il formato dell'output è importante (generazione di JSON, estrazione di entità):
    • Si raccomanda il One-shot o il Few-shot Learning.
    • Anche un solo esempio può definire chiaramente la struttura della risposta richiesta, prevenendo errori di formattazione.

Vantaggi e svantaggi

Confronto tra vantaggi e svantaggi di ICL
Vantaggi Svantaggi
  • Flessibilità e velocità: Adattamento immediato a nuovi compiti senza necessità di ri-addestramento.
  • Risparmio di risorse: Non richiede raccolta di dati, annotazione e potenza computazionale per il fine-tuning.
  • Accessibilità: Consente agli utenti privi di competenze in ML di configurare i modelli tramite semplici esempi testuali.
  • Limitazioni della finestra di contesto: Il numero di esempi è limitato dalla lunghezza massima del contesto del modello.
  • Sensibilità agli esempi: Il risultato dipende fortemente dalla qualità, dall'ordine e dal formato delle dimostrazioni fornite.
  • Costi elevati nella fase di inferenza: Prompt lunghi con molti esempi aumentano i costi e il tempo di generazione.
  • Rischi per la sicurezza: Trasmettere informazioni riservate come esempi può essere pericoloso.

Confronto con altri paradigmi

ICL vs. Fine-tuning

Il Fine-tuning modifica i pesi del modello, «imprimendo» in esso nuove conoscenze. Questo rende il modello un esperto in un dominio ristretto, ma ne riduce la flessibilità generale. ICL, al contrario, non modifica i pesi ed è più flessibile, ma può risultare inferiore nelle prestazioni su compiti altamente specializzati che richiedono una conoscenza approfondita del dominio.

ICL vs. RAG (Retrieval-Augmented Generation)

Entrambi i metodi ampliano il contesto del modello, ma per scopi diversi:

  • ICL utilizza esempi per insegnare al modello come eseguire un compito (dimostrazione di abilità).
  • RAG utilizza informazioni recuperate per comunicare al modello i fatti necessari per rispondere (fornitura di conoscenze).

In pratica, ICL e RAG vengono spesso combinati per ottenere i migliori risultati.

Bibliografia

  • 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.

Note