Ottimizzare un modello per un comportamento coerente
La progettazione dei prompt consente di guidare il comportamento del modello e RAG consente di gestire le risposte in base ai dati reali. Ma a volte il modello non produce ancora risposte con lo stile, il tono o il formato coerenti necessari. Quando si nota che il modello ignora o segue in modo incoerente le istruzioni, anche con messaggi di sistema dettagliati ed esempi con pochi scatti, potrebbe essere il momento di ottimizzare il modello.
La messa a punto è il processo di acquisizione di un modello linguistico preaddestrato e di un addestramento ulteriore su un set di dati più piccolo e specifico per il compito. Ciò regola i pesi interni del modello in modo da produrre risposte coerenti con i modelli nei dati di training.
Informazioni sull'ottimizzazione
I modelli di base come GPT-4o vengono sottoposti a training su grandi quantità di dati generali. L'ottimizzazione si basa su fondamenta esistenti addestrando ulteriormente il modello con esempi aggiuntivi che riflettono i vostri requisiti specifici. Pensate alla specializzazione di un generalista: il modello mantiene le sue ampie capacità linguistiche, ma impara a rispondere in modo specifico ai dati di addestramento dimostrati.
L'ottimizzazione usa LoRA (adattamento Low-Rank), una tecnica che approssima le variazioni di peso con una rappresentazione a rango inferiore. Anziché ripetere il training di tutti i parametri del modello, LoRA aggiorna solo un subset più piccolo di parametri importanti. Questo rende il training più veloce e più conveniente mantenendo la qualità del modello.
Il vantaggio principale della messa a punto rispetto all'addestramento di un modello da zero è l'efficienza. Sono necessari meno tempo, meno risorse di calcolo e meno dati per personalizzare il comportamento di un modello.
Sapere quando ottimizzare
L'ottimizzazione è adatta agli scenari in cui la sola progettazione dei prompt non raggiunge la coerenza necessaria. I casi d'uso comuni includono:
- Stile e tono coerenti: l'organizzazione ha una voce del marchio specifica e il modello deve seguirlo in modo affidabile in tutte le interazioni. Ad esempio, l'agenzia di viaggi vuole che ogni risposta usi un tono caldo e incoraggiante con paragrafi brevi.
- Formati di output specifici: è necessario che il modello producano in modo affidabile output strutturato, ad esempio le risposte JSON che seguono uno schema definito e solo alcuni esempi non sono sufficienti.
- Riduzione della lunghezza del prompt: messaggi di sistema lunghi con molti esempi usano token e aumentano la latenza. L'ottimizzazione integra quegli schemi nel modello, riducendo la dimensione del prompt necessaria per ogni richiesta.
- Distillazione: si desidera trasferire le funzionalità di un modello di grandi dimensioni elevato e costoso verso un modello più piccolo, più efficiente. Ad esempio, è possibile raccogliere output da un modello ad alte prestazioni e usarli per ottimizzare un modello più piccolo che ottiene una qualità simile a un costo e una latenza inferiori.
- Miglioramento dell'utilizzo degli strumenti: quando l'applicazione usa la chiamata degli strumenti, l'ottimizzazione con gli esempi di strumenti può migliorare l'accuratezza della selezione degli strumenti e della generazione di parametri.
Importante
L'ottimizzazione è una funzionalità avanzata. Iniziare sempre valutando le prestazioni di base di un modello standard rispetto ai requisiti prima di prendere in considerazione l'ottimizzazione. Senza una linea di base, è difficile rilevare se la messa a punto ha migliorato o degradato le prestazioni del modello.
Esplorare i tipi di ottimizzazione
Microsoft Foundry offre diverse tecniche di ottimizzazione:
- Ottimizzazione con supervisione (SFT): addestrare il modello su un dataset etichettato di coppie di richieste e risposte. Il modello impara a produrre output che corrispondono ai modelli nei dati di training. Questa tecnica funziona meglio quando ci sono modi chiari e ben definiti per affrontare un'attività.
- Ottimizzazione per rinforzo (RFT):: ottimizzare il comportamento del modello tramite feedback iterativo, usando un classificatore per ricompensare le risposte migliori in modo incrementale. RFT funziona bene per attività complesse o dinamiche in cui sono disponibili molte soluzioni possibili e si vuole migliorare la qualità del ragionamento del modello.
- Ottimizzazione preferenza diretta (DPO): allineare il modello in base alle preferenze umane fornendo coppie di risposta preferite e non preferite. DPO è più leggero dal punto di vista computazionale rispetto agli approcci tradizionali di apprendimento per rinforzo, essendo altrettanto efficace nell'allineamento.
È anche possibile combinare tecniche. Ad esempio, usare prima l'ottimizzazione con supervisione per creare un modello personalizzato, quindi usare DPO per allineare ulteriormente le risposte alle preferenze specifiche.
Preparare i dati di addestramento
L'ottimizzazione richiede un set di dati di esempi di alta qualità in formato JSONL (righe JSON). Per i modelli di completamento della chat, ogni esempio è costituito da una conversazione con messaggi di sistema, utente e assistente:
{"messages": [{"role": "system", "content": "You are a friendly travel advisor for Margie's Travel."}, {"role": "user", "content": "What's a good beach destination in Europe?"}, {"role": "assistant", "content": "For a beautiful European beach experience, consider the Algarve in southern Portugal! It offers stunning golden cliffs, warm waters, and charming coastal towns. The best time to visit is from May through September."}]}
{"messages": [{"role": "system", "content": "You are a friendly travel advisor for Margie's Travel."}, {"role": "user", "content": "I need a budget hotel in Tokyo."}, {"role": "assistant", "content": "Here are some great budget-friendly options in Tokyo:\n\n- **Sakura Hotel Jimbocho** - Central location, from $45/night\n- **Khaosan World Asakusa** - Near Senso-ji temple, from $35/night\n- **Imano Tokyo Ginza Hostel** - Modern design, from $40/night\n\nAll three options are close to public transit, making it easy to explore the city."}]}
Quando si preparano i dati di addestramento:
- Includere un messaggio di sistema coerente tra esempi.
- Usare esempi rappresentativi di alta qualità che coprono la gamma di scenari previsti.
- Mirare ad almeno centinaia di esempi; più è generalmente migliore.
- Assicurarsi che le risposte dell'assistente riflettano esattamente lo stile, il formato e il tono desiderati.
Annotazioni
Includere un messaggio di sistema nei dati di training è importante. Lasciare vuoto tende a produrre modelli di accuratezza inferiore. Usare lo stesso messaggio di sistema quando si distribuisce il modello ottimizzato per l'inferenza.
Prendere in considerazione le sfide
Il perfezionamento introduce costi e complessità da valutare prima di impegnarsi.
- Costi di addestramento: Il perfezionamento prevede costi iniziali per l'addestramento e costi orari continuativi per l'hosting del modello personalizzato.
- Requisiti di qualità dei dati: i dati di training non rappresentativi o di scarsa qualità comportano l'overfitting, l'underfitting o la distorsione.
- Manutenzione: potrebbe essere necessario riprogrammare i modelli ottimizzati al variare dei dati o al rilascio di modelli di base aggiornati.
- Sperimentazione: trovare la combinazione corretta di iperparametri (periodi, dimensioni batch, frequenza di apprendimento) richiede test e iterazione.
- Deriva del modello: la specializzazione troppo stretta può rendere il modello meno efficace nelle attività linguistiche generali al di fuori del dominio ottimizzato.
Per l'agenzia di viaggi, l'ottimizzazione significa garantire che ogni risposta sia costantemente in linea con le linee guida sulla voce e formattazione del marchio dell'azienda, anche senza ampi messaggi di sistema. Tuttavia, il team deve valutare questo vantaggio rispetto al costo della preparazione dei dati di training e della gestione del modello ottimizzato nel tempo.