Per migliorare le capacità degli LLM preaddestrati è possibile seguire due strategie:

  1. Un approccio basato su Retrieval-Augmented Generation (RAG)
  2. Un fine-tuning del modello preaddestrato

RAG

L’approccio RAG mira a potenziare le capacità dell’LLM attraverso l’integrazione di un sistema di retrieval. Questo sistema estrae frammenti di documenti pertinenti da un ampio corpus informativo, fornendo al modello una base di conoscenza esterna da consultare per generare risposte più accurate e dettagliate (paper).

Si distinguono diversi metodi di implementazione: RAG-Sequence utilizza lo stesso documento per tutta la generazione, mentre RAG-Token può utilizzare documenti diversi per ogni token. Riferimenti pratici in questa video serie di Donato Capitella.

Essenziale è il concetto di vector retrieval, esplorato in questo libro.

Fine-tuning

Il fine-tuning consiste nell’adattare un LLM preaddestrato a un compito specifico mediante ulteriore addestramento su un set di dati più piccolo e focalizzato.

Approcci chiave:

  • RLHF — Reinforcement Learning with Human Feedback
  • DPO — Direct Preference Optimization, che rimuove la necessità di un reward model separato
  • Self-Rewarding — il reward model viene iterativamente migliorato
  • LoRA — Low-Rank Adaptation, aggiorna solo alcuni parametri
  • QLoRA — LoRA con quantizzazione

Un esempio pratico di fine-tuning LLaMA2 è disponibile sul blog di Maxime Labonne.

RAG vs Fine-Tuning

L’articolo RAG vs Fine-Tuning espone differenze in performance in base all’applicazione di RAG, fine-tuning, o entrambi. RAG è efficace dove i dati sono contestualmente rilevanti; il fine-tuning insegna al modello competenze specifiche di dominio. Le due metodologie sono complementari.