Ottimizzare i modelli Phi-3 nel portale di Azure AI Foundry
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Azure AI Foundry consente di personalizzare modelli linguistici di grandi dimensioni in base ai set di dati personali usando un processo noto come ottimizzazione. L'ottimizzazione offre un valore significativo abilitando la personalizzazione e l'ottimizzazione per attività e applicazioni specifiche. Consente di migliorare le prestazioni, ottenere efficienza dei costi, ridurre la latenza e ottenere output personalizzati.
Questo articolo illustra come ottimizzare la famiglia Phi-3 di modelli linguistici di piccole dimensioni nel portale di Azure AI Foundry come servizio con pagamento in base al consumo.
La famiglia Phi-3 di SLM è una raccolta di modelli di testo generativi ottimizzati per istruzioni. I modelli Phi-3 sono i modelli di linguaggio più efficienti e convenienti disponibili, che superano le stesse dimensioni e le dimensioni successive in vari linguaggi, ragionamenti, codifiche e benchmark matematici.
Importante
I modelli in anteprima vengono contrassegnati come anteprima nelle schede del modello nel catalogo dei modelli.
Phi-3 Mini è un modello aperto, leggero e all'avanguardia con 3,8 miliardi di parametri, basato su set di dati usati per Phi-2 (dati sintetici e siti Web filtrati), con particolare attenzione ai dati di alta qualità e densi di ragionamento. Il modello appartiene alla famiglia di modelli Phi-3 e la versione Mini è disponibile in due varianti, 4K e 128K, ovvero la lunghezza del contesto (in token) che può supportare.
- Phi-3-mini-4k-Instruct (anteprima)
- Phi-3-mini-128k-Instruct (anteprima)
Il modello è stato sottoposto a un rigoroso processo di miglioramento, incorporando sia l'ottimizzazione delle preferenze supervisionate che l'ottimizzazione diretta delle preferenze per garantire una precisa conformità alle istruzioni e misure di sicurezza solide. Quando valutati in base ai benchmark che testano il buon senso, la comprensione del linguaggio, la matematica, il codice, il contesto lungo e il ragionamento logico, Phi-3 Mini-4K-Instruct e Phi-3 Mini-128K-Instruct hanno dimostrato prestazioni affidabili e all'avanguardia tra i modelli con meno di 13 miliardi di parametri.
Prerequisiti
Una sottoscrizione di Azure. Se non si dispone di una sottoscrizione di Azure, è possibile creare un account Azure gratuito per iniziare.
Un hub di Azure AI Foundry.
Importante
Per i modelli della famiglia Phi-3, l'offerta di ottimizzazione con modello di pagamento in base al consumo è disponibile solo con gli hub creati nell'area degli Stati Uniti orientali 2.
Progetto Azure AI Foundry.
I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni nel portale di Azure AI Foundry. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di sviluppatore di Azure per intelligenza artificiale nel gruppo di risorse.
Per altre informazioni sulle autorizzazioni, vedere Controllo degli accessi in base al ruolo nel portale di Azure AI Foundry.
Registrazione del provider della sottoscrizione
Verificare che la sottoscrizione sia registrata nel provider di risorse Microsoft.Network
.
- Accedere al portale di Azure.
- Selezionare Sottoscrizioni nel menu a sinistra.
- selezionare la sottoscrizione da usare.
- Selezionare Impostazioni>Provider di risorse dal menu a sinistra.
- Verificare che Microsoft.Network sia incluso nell'elenco dei provider di risorse. In caso contrario, aggiungerlo.
Preparazione dei dati
Preparare i dati di training e convalida per ottimizzare il modello. I dati di training e i set di dati di convalida sono costituiti da esempi di input e output per il modo in cui si vuole eseguire il modello.
Assicurarsi che tutti gli esempi di training seguano il formato previsto per l'inferenza. Per ottimizzare i modelli in modo efficace, assicurarsi di usare un set di dati bilanciato e diversificato.
Ciò comporta mantenere un equilibrio dei dati, inclusi vari scenari, nonché affinare periodicamente i dati di training per allinearsi alle aspettative del mondo reale, portando infine a risposte del modello più accurate e bilanciate.
Diversi tipi di modello richiedono un formato di dati di training differente.
Completamento della chat
I dati di training e convalida usati devono essere formattati come documento JSON Lines (JSONL). Per l’ottimizzazione di Phi-3-mini-128k-instruct
, il set di dati deve essere formattato nel formato di conversazione usato dall'API di completamento chat.
Formato del file di esempio
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Il tipo di file supportato è JSON Lines. I file vengono caricati nell'archivio dati predefinito e resi disponibili nel progetto.
Ottimizzare un modello Phi-3
Per ottimizzare un modello Phi-3:
Accedere ad Azure AI Foundry.
Scegliere il modello da ottimizzare dal catalogo dei modelli del portale di Azure AI Foundry.
Nella pagina Dettagli del modello selezionare Ottimizza.
Selezionare il progetto in cui si desidera ottimizzare i modelli. Per usare l'offerta di ottimizzazione con pagamento in base al consumo, è necessario che l'area di lavoro appartenga all'area degli Stati Uniti orientali 2.
Nella procedura guidata di ottimizzazione, selezionare il collegamento a Condizioni di Azure AI Foundry per altre informazioni sulle condizioni per l'utilizzo. È anche possibile selezionare la scheda Dei dettagli dell'offerta Azure AI Foundry per informazioni sui prezzi per il modello selezionato.
Se questa è la prima volta che si ottimizza il modello nel progetto, è necessario sottoscrivere il progetto per l'offerta specifica (ad esempio, Phi-3-mini-128k-instruct) da Azure AI Foundry. Questo passaggio richiede che l'account disponga delle autorizzazioni per la sottoscrizione di Azure e delle autorizzazioni del gruppo di risorse elencate nei prerequisiti. Ogni progetto ha una propria sottoscrizione all'offerta di Azure AI Foundry specifica, che consente di controllare e monitorare la spesa. Selezionare Sottoscrivi e ottimizza.
Nota
La sottoscrizione di un progetto a una particolare offerta di Azure AI Foundry (in questo caso Phi-3-mini-128k-instruct) richiede che l'account abbia accesso Come collaboratore o proprietario a livello di sottoscrizione in cui viene creato il progetto. In alternativa, all'account utente deve essere assegnato un ruolo personalizzato con le autorizzazioni per la sottoscrizione di Azure e le autorizzazioni del gruppo di risorse elencate nei prerequisiti.
Dopo aver sottoscritto il progetto per la specifica offerta azure AI Foundry, l'ottimizzazione successiva della stessa offerta nello stesso progetto non richiede di nuovo la sottoscrizione. Quindi non è necessario disporre delle autorizzazioni a livello di sottoscrizione per le ottimizzazioni successive. Se questo scenario si applica all'utente, selezionare Continua a ottimizzare.
Immettere un nome per il modello ottimizzato e i tag e la descrizione facoltativi.
Selezionare i dati di training per ottimizzare il modello. Per altre informazioni, vedere Preparazione dei dati.
Nota
Se si dispone di file di training/convalida in un archivio dati senza credenziali, sarà necessario consentire all'identità gestita dell'area di lavoro l'accesso all'archivio dati per procedere con l'ottimizzazione MaaS con una risorsa di archiviazione senza credenziali. Nella pagina "Archivio dati", dopo aver fatto clic su "Aggiorna autenticazione", > selezionare l'opzione seguente:
Assicurarsi che tutti gli esempi di training seguano il formato previsto per l'inferenza. Per ottimizzare i modelli in modo efficace, assicurarsi di usare un set di dati bilanciato e diversificato. Ciò comporta mantenere un equilibrio dei dati, inclusi vari scenari, nonché affinare periodicamente i dati di training per allinearsi alle aspettative del mondo reale, portando infine a risposte del modello più accurate e bilanciate.
- Dimensioni del batch da usare per il training. Se impostato su -1, batch_size viene calcolato come 0,2% degli esempi nel set di training e il valore massimo è 256.
- La velocità di apprendimento di ottimizzazione è la velocità di apprendimento originale usata per il training preliminare moltiplicata per questo moltiplicatore. È consigliabile provare con valori compresi tra 0.5 e 2. Empiricamente, è stato rilevato che i tassi di apprendimento più elevati spesso offrono prestazioni migliori con dimensioni batch maggiori. Deve essere compreso tra 0.0 e 5.0.
- Numero di periodi di training. Un periodo fa riferimento a un ciclo completo attraverso il set di dati.
I parametri delle attività sono un passaggio facoltativo e un'opzione avanzata: l'ottimizzazione degli iperparametri è essenziale per ottimizzare modelli di linguaggio di grandi dimensioni nelle applicazioni reali. Consente di migliorare le prestazioni e di garantire un utilizzo efficiente delle risorse. Gli utenti possono scegliere di mantenere le impostazioni predefinite, mentre gli utenti avanzati possono personalizzare parametri quali periodi o frequenza di apprendimento.
Esaminare le selezioni e continuare a eseguire il training del modello.
Dopo aver ottimizzato il modello, è possibile distribuirlo e usarlo nella propria applicazione, nel playground o nel prompt flow. Per altre informazioni, vedere Come distribuire la famiglia Phi-3 di modelli linguistici di grandi dimensioni con Azure AI Foundry.
Pulizia dei modelli ottimizzati
È possibile eliminare un modello ottimizzato dall'elenco dei modelli di ottimizzazione in Azure AI Foundry o dalla pagina dei dettagli del modello. Selezionare il modello ottimizzato per eliminare dalla pagina Ottimizzazione e quindi selezionare il pulsante Elimina per eliminare il modello ottimizzato.
Nota
Non è possibile eliminare un modello personalizzato se ha una distribuzione esistente. Prima di poter eliminare il modello personalizzato, è necessario eliminare la distribuzione del modello.
Costi e quote
Considerazioni su costi e quote per i modelli Phi ottimizzati come servizio
I modelli Phi ottimizzati come servizio sono offerti da Microsoft e integrati con Azure AI Foundry per l'uso. È possibile trovare le informazioni sui prezzi durante la distribuzione o l'ottimizzazione dei modelli nella scheda Prezzi e condizioni della procedura guidata di distribuzione.
Notebook di esempio
È possibile usare questo notebook di esempio per creare un processo di ottimizzazione autonoma per migliorare la capacità di un modello di riepilogare i dialoghi tra due persone usando il set di dati Samsum. I dati di training utilizzati sono il set di dati ultrachat_200k, suddiviso in quattro divisioni adatte per l'ottimizzazione con supervisione (sft) e la classificazione della generazione (generazione). Il notebook usa i modelli di intelligenza artificiale di Azure disponibili per l'attività di completamento della chat (se si vuole usare un modello diverso da quello usato nel notebook, è possibile sostituire il nome del modello). Il notebook include la configurazione dei prerequisiti, la selezione di un modello per ottimizzare, creare set di dati di training e convalida, configurare e inviare il processo di ottimizzazione e infine creare una distribuzione serverless usando il modello ottimizzato per l'inferenza di esempio.
Filtri dei contenuti
I modelli distribuiti come servizio con pagamento in base al consumo sono protetti da Sicurezza dei contenuti di Azure AI. Quando viene distribuita agli endpoint in tempo reale, è possibile rifiutare esplicitamente questa funzionalità. Quando è abilitata la sicurezza dei contenuti di Azure per intelligenza artificiale, sia la richiesta che il completamento passano attraverso un insieme di modelli di classificazione volti a rilevare e impedire l'output di contenuto dannoso. Il sistema di filtro del contenuto (anteprima) rileva e agisce su categorie specifiche di contenuto potenzialmente dannoso sia nelle richieste di input che nei completamenti di output. Altre informazioni su Sicurezza dei contenuti di Azure AI.