Quando usare l'ottimizzazione del servizio OpenAI di Azure
Quando si decide se l'ottimizzazione è la soluzione giusta per esplorare un determinato caso d'uso, è utile acquisire familiarità con alcuni termini chiave:
- Progettazione dei prompt, una tecnica che implica la progettazione dei prompt per i modelli di elaborazione del linguaggio naturale. Questo processo migliora l'accuratezza e la pertinenza delle risposte, ottimizzando le prestazioni del modello.
- RAG (Retrieval Augmented Generation) migliora le prestazioni del modello linguistico di grandi dimensioni (LLM) recuperando i dati da origini esterne e incorporandoli in una richiesta. RAG consente alle aziende di ottenere soluzioni personalizzate mantenendo al contempo la pertinenza dei dati e ottimizzando i costi.
- L'ottimizzazione ripete il training di un modello linguistico di grandi dimensioni esistente usando dati di esempio, generando un nuovo modello linguistico di grandi dimensioni "personalizzato" ottimizzato usando gli esempi forniti.
Che cos'è l'ottimizzazione con il servizio OpenAI di Azure?
Quando si parla di ottimizzazione, in realtà si fa riferimento all'ottimizzazione con supervisione e non al training preliminare continuo o all'apprendimento per rinforzo da feedback umano (RLHF). L'ottimizzazione con supervisione fa riferimento al processo di ripetizione del training dei modelli con training preliminare su set di dati specifici, in genere per migliorare le prestazioni del modello in attività specifiche o per presentare informazioni che non erano state ben rappresentate quando il modello di base è stato originariamente sottoposto a training.
L'ottimizzazione è una tecnica avanzata e il suo corretto utilizzo richiede competenze specifiche. Le domande riportate di seguito consentono di valutare se si è pronti per l'ottimizzazione e se i ragionamenti considerati durante il processo erano corretti. Questa guida permetterà di esplorare i passaggi successivi o di identificare altri approcci che potrebbero risultare più appropriati.
Perché si desidera ottimizzare un modello?
- Si è in grado di esporre chiaramente un caso d'uso specifico per l'ottimizzazione e di identificare il modello che si spera di ottimizzare.
- I casi d'uso validi per l'ottimizzazione includono il reindirizzamento del modello per fornire contenuto con uno stile, un tono o un formato specifici e personalizzati, oppure scenari in cui le informazioni necessarie per reindirizzare il modello sono troppo lunghe o complesse per adattarsi alla finestra della richiesta.
Indicazioni comuni della possibilità che non si sia ancora pronti per l'ottimizzazione:
- Non si dispone di casi d'uso chiari per l'ottimizzazione o non si è in grado di fornire enunciati migliori di "Voglio migliorare un modello".
- Se si identificano i costi come motivazione principale, procedere con prudenza. L'ottimizzazione potrebbe ridurre i costi per determinati casi d'uso abbreviando i prompt o consentendo di usare un modello più piccolo, tuttavia sono previsti costi iniziali più elevati per il training ed è necessario pagare per l'hosting di un modello personalizzato. Per altre informazioni sui costi di ottimizzazione del servizio OpenAI di Azure, vedere la pagina dei prezzi.
- Se si desidera aggiungere al modello informazioni sul dominio, è consigliabile iniziare con RAG (Retrieval Augmented Generation) con funzionalità come OpenAI di Azure sui dati o sugli incorporamenti. Spesso, questa è l’opzione più conveniente, adattabile e potenzialmente più efficace a seconda del caso d'uso e dei dati.
Cosa si è provato fino ad ora?
L'ottimizzazione è una funzionalità avanzata, non il punto di partenza di un percorso di intelligenza artificiale generativa. È necessario avere già familiarità con le nozioni di base sull'uso dei modelli linguistici di grandi dimensioni (LLM). È consigliabile partire dalla valutazione delle prestazioni di un modello di base con la progettazione dei prompt e/o con RAG (Retrieval Augmented Generation) per ottenere una baseline delle prestazioni.
La presenza di una baseline delle prestazioni senza ottimizzazione è fondamentale per sapere se l'ottimizzazione è stata in grado di migliorare o meno le prestazioni del modello. L'ottimizzazione con dati errati peggiora il modello di base, ma senza una baseline è difficile rilevare le regressioni.
Se si è pronti per l'ottimizzazione:
- Si deve essere in grado di dimostrare l’evidenza e la conoscenza degli approcci basati sulla progettazione dei prompt e su RAG.
- Si deve avere la capacità di condividere esperienze e sfide specifiche con tecniche diverse dall'ottimizzazione e che sono già state sperimentate per il caso d'uso.
- Si deve essere in possesso di valutazioni quantitative delle prestazioni baseline, ove possibile.
Indicazioni comuni della possibilità che non si sia ancora pronti per l'ottimizzazione:
- Partire dall'ottimizzazione senza aver testato altre tecniche.
- Conoscenza o comprensione insufficiente del modo specifico in cui si applica l'ottimizzazione ai modelli linguistici di grandi dimensioni (LLM).
- Assenza di misurazioni benchmark in base alle quali valutare l'ottimizzazione.
Cosa non funziona con gli approcci alternativi?
Comprendere i punti deboli della progettazione dei prompt dovrebbe fornire indicazioni su come eseguire l'ottimizzazione. Il modello di base ha esito negativo per i casi limite o le eccezioni? Il modello di base non fornisce in modo coerente l'output nel formato corretto e non è possibile aggiungere esempi sufficienti nella finestra del contesto per correggerlo?
Gli esempi di errore con il modello di base e la progettazione dei prompt consentono di identificare i dati che devono raccogliere per l'ottimizzazione e come si deve valutare il modello ottimizzato.
Ecco un esempio: un cliente vuole usare GPT-3.5-Turbo per trasformare le domande del linguaggio naturale in query di un linguaggio di query specifico e non standard. Sono state fornite indicazioni nel prompt ("Restituisci sempre GQL") ed è stato usato RAG per recuperare lo schema del database. Tuttavia, la sintassi non era sempre corretta e spesso ha restituito errori per i casi limite. Sono stati raccolti migliaia di esempi di domande in linguaggio naturale e query equivalenti per i relativi database, inclusi i casi in cui il modello ha avuto esito negativo in precedenza; tali dati sono stati utilizzati per ottimizzare il modello. La combinazione del nuovo modello ottimizzato con la richiesta progettata e il recupero hanno contribuito all'accuratezza degli output del modello con standard accettabili per l'uso.
Se si è pronti per l'ottimizzazione:
- Si possono fornire chiari esempi di come sono state affrontate le sfide con approcci alternativi e quali soluzioni sono state individuate e sottoposte a test per migliorare le prestazioni.
- Sono state identificate carenze nell'uso di un modello di base, ad esempio prestazioni incoerenti nei casi limite, incapacità di adattare richieste few-shot nella finestra di contesto per indirizzare il modello, latenza elevata, e così via.
Indicazioni comuni della possibilità che non si sia ancora pronti per l'ottimizzazione:
- Si una conoscenza insufficiente del modello o dell'origine dati.
- No si ha è in grado di trovare i dati corretti per gestire il modello.
Quali dati verranno usati per l'ottimizzazione?
Anche con un ottimo caso d'uso, l'ottimizzazione è affidabile tanto quanto la qualità dei dati che si è in grado di fornire. È necessario essere disposti a investire tempo e impegno per ottenere un’ottimizzazione corretta. Modelli diversi richiederanno volumi di dati diversi, ma spesso è necessario essere in grado di fornire quantità elevate di dati curati e di alta qualità.
Un altro punto importante è che anche si hanno dati di alta qualità, se i dati non sono nel formato richiesto per l'ottimizzazione, sarà necessario eseguire il commit delle risorse di progettazione per formattare correttamente i dati.
Dati | Babbage-002 Davinci-002 |
GPT-3.5-Turbo GPT-4o & GPT-4o mini GPT-4 |
---|---|---|
Volume | Migliaia di esempi | Migliaia di esempi |
Formato | Prompt/completamento | Chat conversazionale |
Se si è pronti per l'ottimizzazione:
- Il set di dati per l'ottimizzazione è stato identificato.
- Il set di dati è nel formato corretto per il training.
- È stato usato un determinato livello di cura per garantire la qualità del set di dati.
Indicazioni comuni della possibilità che non si sia ancora pronti per l'ottimizzazione:
- Il set di dati non è ancora stato identificato.
- Il formato del set di dati non corrisponde al modello che si desidera ottimizzare.
Come si misura la qualità del modello ottimizzato?
Non esiste una sola risposta giusta a questa domanda, tuttavia è necessario avere obiettivi chiaramente definiti per ottenere risultati di ottimizzazione corretti. Idealmente, non si tratta solo di misure qualitative, si devono includere anche misure quantitative per valutare il successo, ad esempio l'uso di un set di dati di controllo per la convalida, nonché i test di accettazione utente o test A/B che del modello ottimizzato rispetto al modello di base.
Passaggi successivi
- Guardare l'episodio di Azure AI Show: "To fine-tune or not to fine-tune, that is the question" (Ottimizzare o non ottimizzare, questo è il dilemma)
- Altre informazioni sull'ottimizzazione del servizio OpenAI di Azure
- Esplorare l'esercitazione sull'ottimizzazione