Condividi tramite


Considerazioni sull’ottimizzazione di Azure OpenAI nei modelli di Fonderia Azure AI

Il fine-tuning è il processo di presa di un modello linguistico pre-addestrato e il suo adattamento per eseguire un'attività specifica o migliorare le sue prestazioni su un particolare set di dati. Questo comporta l'addestramento del modello su un set di dati più piccolo e specifico per il compito, regolando leggermente i pesi del modello. L'ottimizzazione sfrutta le conoscenze acquisite dal modello durante il training iniziale su un set di dati di grandi dimensioni e diversificate, consentendogli di specializzarsi senza iniziare da zero. Questo approccio è spesso più efficiente ed efficace rispetto al training di un nuovo modello da zero, soprattutto per le attività specializzate.

Vantaggi principali dell'ottimizzazione

Accuratezza e pertinenza migliorate

La messa a punto migliora le prestazioni del modello in determinate attività allenandolo con dati specifici per l'attività. Questo comporta spesso output più accurati e rilevanti rispetto all'uso di prompt generali.

A differenza dell'apprendimento con pochi scatti, in cui è possibile includere solo un numero limitato di esempi in un prompt, l'ottimizzazione consente di eseguire il training del modello in un set di dati aggiuntivo. L'ottimizzazione consente al modello di apprendere modelli più sfumati e migliorare le prestazioni delle attività.

Efficienza e potenziali risparmi sui costi

I modelli ottimizzati richiedono richieste più brevi perché vengono sottoposti a training su esempi pertinenti. Questo processo riduce il numero di token necessari in ogni richiesta, che può comportare risparmi sui costi a seconda del caso d'uso.

Poiché i modelli ottimizzati richiedono un minor numero di esempi nel prompt, elaborano le richieste più velocemente, ottenendo tempi di risposta più rapidi.

Scalabilità e specializzazione

L'ottimizzazione consente di applicare il training preliminare completo dei modelli linguistici e di affinare le proprie funzionalità per applicazioni specifiche, rendendole più efficienti ed efficaci per i casi d'uso mirati.

L'ottimizzazione dei modelli più piccoli può ottenere livelli di prestazioni paragonabili a modelli più grandi e più costosi per attività specifiche. Questo approccio riduce i costi di calcolo e aumenta la velocità, rendendola una soluzione scalabile conveniente per la distribuzione dell'intelligenza artificiale in ambienti con vincoli di risorse.

Quando ottimizzare

L'ottimizzazione è adatta per i tempi in cui si dispone di una piccola quantità di dati e si vuole migliorare le prestazioni del modello. L'ottimizzazione può essere per diversi tipi di casi d'uso, ma spesso rientrano in categorie più ampie.

  • Riduzione del sovraccarico di progettazione dei prompt: molti utenti iniziano con l'apprendimento con pochi esempi, aggiungendo esempi degli output desiderati al messaggio di sistema. Nel corso del tempo, questo processo può portare a prompt sempre più lunghi, aumentando il numero di token e la latenza. L'ottimizzazione consente di incorporare questi esempi nel modello eseguendo il training sugli output previsti, utili negli scenari con numerosi casi perimetrali.

  • Modifica dello stile e del tono: l'ottimizzazione consente di allineare gli output del modello con uno stile o un tono desiderato, garantendo coerenza nelle applicazioni come chatbot del servizio clienti e comunicazioni specifiche del marchio.

  • Generazione di output in formati o schemi specifici: i modelli possono essere ottimizzati per produrre output in formati o schemi specifici, rendendoli ideali per la generazione di dati strutturati, i report o le risposte formattate.

  • Miglioramento dell'utilizzo degli strumenti: mentre l'API di completamento della chat supporta la chiamata allo strumento, elencando molti strumenti aumenta l'utilizzo dei token e può causare allucinazioni. L'ottimizzazione con gli esempi di strumenti migliora l'accuratezza e la coerenza, anche senza definizioni complete degli strumenti.

  • Miglioramento delle prestazioni basate sul recupero: la combinazione di ottimizzazione con metodi di recupero migliora la capacità di un modello di integrare conoscenze esterne, eseguire attività complesse e fornire risposte più accurate e consapevoli del contesto. La messa a punto allena il modello per utilizzare efficacemente i dati recuperati, filtrando le informazioni irrilevanti.

  • Ottimizzazione per l'efficienza: è anche possibile usare l'ottimizzazione per trasferire le conoscenze da un modello più grande a uno più piccolo, consentendo al modello più piccolo di ottenere prestazioni di attività simili con costi e latenza inferiori. Ad esempio, i dati di produzione di un modello ad alte prestazioni possono essere usati per ottimizzare un modello più piccolo ed efficiente. Questo approccio consente di ridimensionare le soluzioni di intelligenza artificiale mantenendo la qualità e riducendo il sovraccarico di calcolo.

  • Distillazione: La distillazione del modello utilizza gli output di un modello di grandi dimensioni per ottimizzare un modello più piccolo, consentendogli di operare in modo simile su un compito specifico, ad esempio raccogliendo il traffico di produzione da una distribuzione o1 e usandolo come dati di addestramento per ottimizzare 4o-mini. Questo processo può ridurre i costi e la latenza perché i modelli più piccoli possono essere più efficienti.

Tipi di ottimizzazione

Fonderia Azure AI offre più tipi di tecniche di ottimizzazione:

  • Ottimizzazione con supervisione: consente di fornire dati personalizzati (richiesta/completamento o chat conversazionale, a seconda del modello) per insegnare al modello di base nuove competenze. Questo processo comporta un ulteriore training del modello su un set di dati con etichetta di alta qualità, in cui ogni punto dati è associato all'output o alla risposta corretti. L'obiettivo è migliorare le prestazioni del modello in una determinata attività modificando i relativi parametri in base ai dati etichettati. Questa tecnica funziona meglio quando ci sono modi finiti per risolvere un problema e si vuole insegnare al modello un'attività specifica e migliorare la precisione e la concisità.

  • Ottimizzazione per rinforzo: si tratta di una tecnica di personalizzazione del modello, utile per ottimizzare il comportamento del modello in ambienti altamente complessi o dinamici, consentendo al modello di apprendere e adattarsi tramite feedback iterativo e processo decisionale. Ad esempio, i provider di servizi finanziari possono ottimizzare il modello per valutazioni dei rischi più veloci e accurate o consigli di investimento personalizzati. Nel settore sanitario e farmaceutico, o3-mini può essere personalizzato per accelerare la scoperta dei farmaci, consentendo un'analisi dei dati più efficiente, la generazione di ipotesi e l'identificazione di composti promettenti. RFT è un ottimo modo per ottimizzare quando ci sono un numero infinito o elevato di modi per risolvere un problema. Il grader premia il modello in modo incrementale e migliora il ragionamento.

  • Ottimizzazione preferenza diretta (DPO): si tratta di un'altra nuova tecnica di allineamento per i modelli linguistici di grandi dimensioni, progettata per regolare i pesi del modello in base alle preferenze umane. A differenza dell'apprendimento per rinforzo dal feedback umano (RLHF), DPO non richiede l'adattamento di un modello di ricompensa e usa le preferenze binarie per l'addestramento. Questo metodo è più leggero e veloce dal punto di vista computazionale, rendendolo altrettanto efficace in corrispondenza dell'allineamento, pur essendo più efficiente. Si condivide la risposta preferita e non preferita con il set di training e si usa la tecnica DPO (ottimizzazione delle preferenze dirette).

È anche possibile usare tecniche di stack: usare prima SFT per creare un modello personalizzato, ottimizzato per il caso d'uso, quindi usare l'ottimizzazione delle preferenze per allineare le risposte alle preferenze specifiche. Durante il passaggio SFT, ci si concentra sulla qualità dei dati e sulla rappresentatività delle attività, mentre il passaggio DPO regola le risposte con confronti specifici.

Sfide e limitazioni dell'ottimizzazione

L'affinamento dei modelli linguistici di grandi dimensioni è una tecnica potente per adattarli a domini e compiti specifici. Tuttavia, l'ottimizzazione prevede anche alcune sfide e svantaggi che devono essere presi in considerazione prima di applicarlo a un problema reale. Di seguito sono riportate alcune di queste sfide e svantaggi.

  • L'ottimizzazione richiede dati di training di alta qualità, sufficientemente grandi e rappresentativi corrispondenti al dominio e all'attività di destinazione. I dati di qualità sono rilevanti, accurati, coerenti e sufficientemente diversificati per coprire i possibili scenari e variazioni che il modello incontrerà nel mondo reale. I dati di scarsa qualità o non rappresentativi comportano un overfitting, un underfitting o una distorsione nel modello ottimizzato che danneggia la generalizzazione e la robustezza.
  • L'ottimizzazione dei modelli linguistici di grandi dimensioni comporta costi aggiuntivi associati al training e all'hosting del modello personalizzato.
  • La formattazione di coppie di input/output usate per ottimizzare un modello linguistico di grandi dimensioni può essere fondamentale per le prestazioni e l'usabilità.
  • Potrebbe essere necessario ripetere l'ottimizzazione ogni volta che i dati vengono aggiornati o quando viene rilasciato un modello di base aggiornato. Ciò comporta il monitoraggio e l'aggiornamento regolarmente.
  • L'ottimizzazione è un'attività ripetitiva (valutazione ed errore), quindi gli iperparametri devono essere impostati con attenzione. L'ottimizzazione richiede molta sperimentazione e test per trovare la migliore combinazione di iperparametri e impostazioni per ottenere prestazioni e qualità desiderate.

Passaggi successivi