Direct Preference Optimization (DPO) (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Direct Preference Optimization (DPO) — è un metodo di allineamento dei grandi modelli linguistici (LLM) alle preferenze umane, proposto come alternativa più semplice e stabile al Reinforcement Learning from Human Feedback (RLHF). Il metodo è stato presentato nel 2023 da un gruppo di ricercatori dell'Università di Stanford guidati da Rafael Rafailov[1].

La differenza fondamentale di DPO consiste nel fatto che ottimizza direttamente il modello linguistico per conformarsi alle preferenze umane, evitando l'addestramento esplicito di una separata reward model e la complessa fase di Reinforcement Learning (RL), il che rende il processo di configurazione degli LLM significativamente più semplice, rapido e stabile[2].

Contesto: Limiti di RLHF

Il metodo standard Reinforcement Learning from Human Feedback (RLHF) si compone di tre fasi principali:

  1. Supervised Fine-Tuning (SFT): Fine-tuning di base del modello su esempi di alta qualità.
  2. Addestramento della reward model: Creazione di un modello separato che impara ad assegnare un "punteggio" alle risposte sulla base di confronti a coppie forniti da esseri umani (ad esempio, la risposta A è migliore della risposta B).
  3. Ottimizzazione della policy tramite RL: Fine-tuning del modello principale mediante algoritmi RL (ad esempio, PPO), affinché generi risposte che massimizzino il punteggio assegnato dalla reward model.

Nonostante la sua efficacia, RLHF è un processo complesso, costoso e instabile. È soggetto a problemi come il reward hacking (quando il modello "inganna" la reward model) e richiede un'attenta configurazione di numerosi iperparametri[1]. DPO è stato sviluppato per superare questi limiti.

Principio di funzionamento di DPO

Il metodo DPO sostituisce la pipeline a più fasi di RLHF con una singola fase di addestramento, assimilabile a un fine-tuning supervisionato.

  1. Raccolta dei dati di preferenza. Come in RLHF, viene raccolto un dataset in cui, per ogni richiesta `x`, sono presenti due risposte: quella preferita (`y_w`, winning) e quella scartata (`y_l`, losing).
  2. Ottimizzazione diretta. Invece di addestrare una reward model, DPO utilizza direttamente questi dati per aggiornare il modello linguistico stesso. L'obiettivo di ottimizzazione è aumentare la probabilità di generare la risposta preferita `y_w` e, al contempo, ridurre la probabilità di generare la risposta scartata `y_l`.

Matematicamente, ciò si riduce alla minimizzazione di una funzione di perdita basata sulla regressione logistica applicata alla differenza tra le log-probabilità delle risposte. Per evitare che il modello "dimentichi" le proprie conoscenze originali, DPO, come RLHF, utilizza un modello di riferimento (reference model, solitamente la versione SFT) per la regolarizzazione, impedendo una deviazione eccessiva dalla distribuzione originale delle risposte[2].

Vantaggi rispetto a RLHF

  • Semplicità e stabilità: DPO elimina la necessità di addestrare una reward model separata e di configurare in modo complesso il RL. Il processo diventa più semplice, prevedibile e meno soggetto a errori[3].
  • Efficienza e velocità: L'eliminazione di due fasi riduce significativamente i costi computazionali (ore GPU) e il tempo necessario per la configurazione del modello. Secondo alcune stime, DPO è del 50–60% più economico di RLHF[4].
  • Qualità dei risultati: Gli esperimenti hanno dimostrato che DPO non è inferiore a RLHF in termini di qualità e, in alcuni compiti, come la gestione del tono delle risposte, lo supera addirittura. I modelli addestrati con DPO mostrano un migliore allineamento alle preferenze umane[1].
  • Assenza di degrado delle competenze di base: Il fine-tuning con DPO incide minimamente sulle capacità generali del modello (ad esempio, le conoscenze fattuali o la logica), a differenza di RLHF, che talvolta può peggiorare le metriche di base[5].

Applicazione e diffusione

Grazie alla sua efficienza e semplicità, DPO si è diffuso rapidamente. È stato implementato nelle principali librerie open-source, come Hugging Face TRL e OpenRLHF.

Molti modelli open di successo sono stati sottoposti a fine-tuning con DPO, tra cui Zephyr-7B e TÜLU 2. Questi modelli hanno dimostrato ottime prestazioni sui benchmark di valutazione della qualità delle risposte, confermando l'efficacia di DPO per modelli su larga scala[5].

I leader del settore hanno anch'essi integrato DPO nelle proprie piattaforme. Ad esempio, Microsoft ha aggiunto il supporto al fine-tuning con DPO nel proprio servizio Azure OpenAI, consentendo agli utenti di configurare modelli, incluso GPT-4, sui propri dati di preferenza[6].

Limitazioni

Nonostante i vantaggi, DPO eredita alcune limitazioni dall'approccio stesso dell'apprendimento basato sulle preferenze:

  • Sensibilità ai dati: La qualità e la varietà dei dati di preferenza raccolti sono fondamentali. Se i dati sono sbilanciati (ad esempio, contengono solo una lingua o uno stile), il modello può sovradattarsi e peggiorare le proprie prestazioni in altri ambiti[7].
  • Staticità dell'addestramento: Come RLHF, DPO viene addestrato su un dataset statico e non prevede un'interazione dinamica con l'ambiente. Questo metodo è adatto all'allineamento in un unico passaggio, ma non per compiti che richiedono l'apprendimento attraverso azioni sequenziali.

Riferimenti

  • Documentazione di DPO nella libreria Hugging Face TRL
  • Analisi comparativa di RLHF e DPO in ICLR 2024 Blogposts

Bibliografia

  • Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
  • Hong, J.; Lee, N.; Thorne, J. (2024). ORPO: Monolithic Preference Optimization without Reference Model. arXiv:2403.07691.
  • Sun, L. et al. (2025). BPO: Revisiting Preference Modeling in Direct Preference Optimization. arXiv:2506.03557.
  • Yin, Y. et al. (2024). Self-Augmented Preference Optimization: Off-Policy Paradigms for Language Model Alignment. arXiv:2405.20830.
  • Wu, Y. et al. (2024). Self-Play Preference Optimization for Language Model Alignment. arXiv:2405.00675.
  • Li, P. et al. (2024). ROPO: Robust Preference Optimization for Large Language Models. arXiv:2404.04102.
  • Tunstall, L. et al. (2023). Zephyr: Direct Distillation of LM Alignment. arXiv:2310.16944.
  • Wu, F. et al. (2023). Diffusion-DPO: Diffusion Model Alignment Using Direct Preference Optimization. arXiv:2311.12908.
  • Lee, H. et al. (2023). RLAIF vs. RLHF: Scaling Reinforcement Learning from Human Feedback with AI Feedback. arXiv:2309.00267.
  • Rafailov, R.; Sharma, A.; Mitchell, E.; Manning, C. D.; Finn, C. (2024). Direct Preference Optimization (v3): Enhanced Experiments and Analysis. arXiv:2305.18290v3.

Note

  1. 1.0 1.1 1.2 Rafailov, R., et al. «Direct Preference Optimization: Your Language Model is Secretly a Reward Model». arXiv:2305.18290. [1]
  2. 2.0 2.1 «Simplifying Alignment: From RLHF to Direct Preference Optimization (DPO)». Hugging Face Blog. [2]
  3. «What is direct preference optimization (DPO)?». SuperAnnotate Blog. [3]
  4. «RLHF vs DPO: A Closer Look into the Process and Methodology». Arbisoft Blog. [4]
  5. 5.0 5.1 «RLHF without RL - Direct Preference Optimization». ICLR Blogposts 2024. [5]
  6. «Direct preference optimization». Azure OpenAI | Microsoft Learn. [6]
  7. «Direct Preference Optimization (DPO): A Lightweight Counterpart to RLHF». Toloka AI Blog. [7]