Ottimizzare i modelli Meta Llama 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 i modelli Meta Llama in Azure AI Foundry.
La gamma Llama Meta di modelli linguistici di grandi dimensioni (LLM) è una raccolta di modelli di testo generativi pre-sottoposti a training e ottimizzati che vanno da 7 miliardi a 70 miliardi di parametri. La famiglia di modelli include anche versioni ottimizzate per i casi d’uso di dialoghi con l’apprendimento per rinforzo da feedback umano (RLHF), chiamato Llama-Instruct.
Importante
I modelli in anteprima vengono contrassegnati come anteprima nelle schede del modello nel catalogo dei modelli.
Modelli
I modelli seguenti sono disponibili in Azure Marketplace per Llama 3.1 durante l’ottimizzazione come servizio con fatturazione con pagamento in base al consumo:
Meta-Llama-3.1-70B-Instruct
(anteprima)Meta-LLama-3.1-8b-Instruct
(anteprima)
L’ottimizzazione dei modelli Llama 3.1 è attualmente supportata nei progetti che si trovano nell’area degli Stati Uniti occidentali 3.
Importante
In questo momento non siamo in grado di eseguire l’ottimizzazione per Llama 3.1 con lunghezza della sequenza di 128K.
Prerequisiti
Una sottoscrizione di Azure con un metodo di pagamento valido. Le sottoscrizioni di Azure gratuite o di valutazione non funzioneranno. 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 Meta Llama 3.1, l'offerta di ottimizzazione del modello con pagamento in base al consumo è disponibile solo con gli hub creati nelle aree Stati Uniti occidentali 3.
Un progetto Azure AI Foundry nel portale di 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, è necessario che all'account utente sia assegnato il ruolo di proprietario o collaboratore per la sottoscrizione di Azure. In alternativa, all'account può essere assegnato un ruolo personalizzato con le autorizzazioni seguenti:
Nella sottoscrizione di Azure, per sottoscrivere il progetto ai Foundry all'offerta di Azure Marketplace, una volta per ogni progetto, per offerta:
Microsoft.MarketplaceOrdering/agreements/offers/plans/read
Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
Microsoft.SaaS/register/action
Nel gruppo di risorse, per creare e usare la risorsa SaaS:
Microsoft.SaaS/resources/read
Microsoft.SaaS/resources/write
Nel progetto AI Foundry: per distribuire gli endpoint (il ruolo Azure AI Developer contiene già queste autorizzazioni):
Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*
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.
I dati di training e convalida usati devono essere formattati come documento JSON Lines (JSONL). Per l’ottimizzazione di Meta-Llama-3.1-70B-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 Meta Llama
Per ottimizzare un modello LLama 3.1:
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 occidentali 3.
Nella procedura guidata di ottimizzazione selezionare il collegamento a Condizioni di Azure Marketplace per altre informazioni sulle condizioni per l'utilizzo. È anche possibile selezionare la scheda Dettagli sull'offerta in Marketplace per informazioni sui prezzi per il modello selezionato.
Se è la prima volta che si ottimizza il modello nel progetto, è necessario sottoscrivere il progetto per l'offerta specifica (ad esempio, Meta-Llama-3.1-70B-Instruct) da Azure Marketplace. 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 Marketplace, che consente di controllare e monitorare la spesa. Selezionare Sottoscrivi e ottimizza.
Nota
La sottoscrizione di un progetto a una determinata offerta di Azure Marketplace (in questo caso Meta-Llama-3.1-70B-Instruct) richiede l'accesso di Collaboratore o Proprietario al livello della 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 la registrazione del progetto a una determinata offerta di Azure Marketplace, l’ottimizzazione successiva della stessa offerta nello stesso progetto non richiede una nuova 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. Le impostazioni predefinite possono essere usate o gli utenti avanzati possono personalizzare parametri come 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 llama 3.1 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 Meta Llama ottimizzati come servizio
I modelli Meta Llama ottimizzati come servizio sono offerti da Meta tramite Azure Marketplace e integrati con Azure AI Foundry per l'uso. È possibile trovare i prezzi di Azure Marketplace durante la distribuzione o l'ottimizzazione dei modelli.
Ogni volta che un progetto sottoscrive una determinata offerta di Azure Marketplace, viene creata una nuova risorsa per tenere traccia dei costi associati al consumo. La stessa risorsa viene usata per tenere traccia dei costi associati all'inferenza e all'ottimizzazione; tuttavia, sono disponibili più contatori per tenere traccia di ogni scenario in modo indipendente.
Per altre informazioni su come tenere traccia dei costi, vedere Monitorare i costi per i modelli offerti in Azure Marketplace.
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 fatturazione 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.