Condividi tramite


Come distribuire modelli Meta Llama 3.1 con lo studio di Azure Machine Learning

In questo articolo vengono fornite informazioni sulla famiglia di modelli Meta Llama (LLM). Si apprenderà anche come usare lo studio di Azure Machine Learning per distribuire modelli da questo set alle API serverless con fatturazione in base al consumo o al calcolo gestito.

Importante

Vedere altre informazioni sull'annuncio dei modelli Meta Llama 3.1 405B e altri modelli Llama 3.1 disponibili ora nel catalogo dei modelli di Azure per intelligenza artificiale: Blog di Microsoft Tech Community e Blog degli annunci di Meta.

Ora disponibile nello studio di Azure Machine Learning Models-as-a-Service:

  • Meta-Llama-3.1-405B-Instruct
  • Meta-Llama-3.1-70B-Instruct
  • Meta-Llama-3.1-8B-Instruct

La famiglia Meta Llama 3.1 di modelli linguistici multilingue (LLMS) è una raccolta di modelli generativi con training preliminare e ottimizzati per istruzioni in dimensioni 8B, 70B e 405B (testo in/text out). Tutti i modelli supportano la lunghezza del contesto lungo (128k) e sono ottimizzati per l'inferenza con supporto per l'attenzione alle query raggruppate (GQA). I modelli di testo ottimizzati per l'istruzione Llama 3.1 (8B, 70B, 405B) sono ottimizzati per i casi d'uso di dialoghi multilingue e hanno prestazioni migliori per molti dei modelli di chat open source disponibili su benchmark di settore comuni.

Vedere gli esempi di GitHub seguenti per esplorare le integrazioni con LangChain, LiteLLM, OpenAI e l'API di Azure.

Importante

Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio, pertanto se ne sconsiglia l’uso per i carichi di lavoro in ambienti 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.

Distribuire Meta Llama 3.1 405B Indicare come API serverless

I modelli Meta Llama 3.1, ad esempio Meta Llama 3.1 405B Instruct, possono essere distribuiti come API serverless con pagamento in base al consumo, in modo che sia possibile utilizzarli come API senza ospitarli nella sottoscrizione, mantenendo al contempo la sicurezza aziendale e la conformità richieste dalle organizzazioni. Questa opzione di distribuzione non richiede la quota dalla sottoscrizione. I modelli Meta Llama 3.1 vengono distribuiti come API serverless con fatturazione in base al consumo tramite Microsoft Azure Marketplace e potrebbero prevedere altre condizioni per l'utilizzo e prezzi.

Offerte di modelli di Azure Marketplace

I modelli seguenti sono disponibili in Azure Marketplace per Llama 3.1 e Llama 3 quando vengono distribuiti come servizio con pagamento in base al consumo:

Per distribuire un modello diverso, distribuirlo invece nell’ambiente di calcolo gestito.

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'area di lavoro di Azure Machine Learning e un'istanza di ambiente di calcolo. Se non sono disponibili, seguire la procedura descritta nell'articolo Avvio rapido: Creare risorse dell'area di lavoro per crearle. L'offerta di distribuzione modello di API serverless per Meta Llama 3.1 e Llama 3 è disponibile sono disponibili solo con gli hub creati in queste aree geografiche:

    • Stati Uniti orientali
    • Stati Uniti orientali 2
    • Stati Uniti centro-settentrionali
    • Stati Uniti centro-meridionali
    • Stati Uniti occidentali
    • Stati Uniti occidentali 3
    • Svezia centrale

    Per un elenco delle aree disponibili per ognuno dei modelli che supportano distribuzioni di endpoint API serverless, vedere Disponibilità dell'area per i modelli negli endpoint API serverless.

  • I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni in Azure Machine Learning. 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 l'area di lavoro all'offerta di Azure Marketplace, una volta per ogni area di lavoro, 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
    • Nell'area di lavoro, per distribuire gli endpoint (il ruolo data scientist di Azure Machine Learning contiene già queste autorizzazioni):

      • Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
      • Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*

    Per altre informazioni sulle autorizzazioni, vedere Gestire l'accesso a un'area di lavoro di Azure Machine Learning.

Creare una nuova distribuzione

Per creare una distribuzione:

  1. Passare ad Azure Machine Learning Studio.

  2. Selezionare l'area di lavoro in cui distribuire i modelli. Per usare l'offerta di distribuzione del modello con pagamento in base al consumo con pagamento in base al consumo l'area di lavoro deve appartenere a una delle aree elencate nella sezione Prerequisiti. appartenere a una delle aree disponibili elencate nei prerequisiti di questo articolo.

  3. Scegliere Meta-Llama-3.1-405B-Instruct da distribuire dal catalogo di modelli.

    In alternativa, è possibile avviare la distribuzione passando all'area di lavoro e selezionando Endpoint>Endpoint serverless>Crea.

  4. Nella pagina Dettagli per Meta-Llama-3.1-405B-Instructselezionare Deploy (Distribuisci ) e quindi selezionare API serverless con la Sicurezza dei contenuti di Azure AI.

  5. Nella distribuzione guidata 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.

  6. Se è la prima volta che si distribuisce il modello nell'area di lavoro, è necessario sottoscrivere l'area di lavoro per l'offerta specifica, ad esempio Meta-Llama-3.1-405B-Instruct, da Azure Marketplace. Questo passaggio richiede che l'account abbia le autorizzazioni per la sottoscrizione di Azure e le autorizzazioni del gruppo di risorse elencate nei prerequisiti. Ogni area di lavoro ha una propria sottoscrizione all'offerta di Azure Marketplace, che consente di controllare e monitorare la spesa. Selezionare Sottoscrivi e distribuisci.

    Nota

    La sottoscrizione di un'area di lavoro a una determinata offerta di Azure Marketplace (in questo caso Llama-3-70B) richiede l'accesso di Collaboratore o Proprietario al 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.

  7. Dopo la registrazione dell’area di lavoro a una determinata offerta di Azure Marketplace, le distribuzioni successive della stessa offerta nello stesso progetto non richiedono una nuova sottoscrizione. Quindi non è necessario disporre delle autorizzazioni a livello di sottoscrizione per le distribuzioni successive. Se questo scenario si applica all'utente, selezionare Continua a distribuire.

  8. Assegnare un nome alla distribuzione. Questo nome diventa parte dell'URL dell'API di distribuzione. Questo URL deve essere univoco in ogni area di Azure.

  9. Seleziona Distribuisci. Attendere il completamento della distribuzione e si viene reindirizzati alla pagina endpoint serverless.

  10. Selezionare l'endpoint per aprire la relativa pagina Dettagli.

  11. Selezionare la scheda Test per iniziare a interagire con il modello.

  12. È anche possibile prendere nota dell'URL Target e della Chiave segreta per chiamare la distribuzione e generare completamenti.

  13. È sempre possibile trovare i dettagli, l'URL e le chiavi di accesso dell'endpoint passando a Area di lavoro>Endpoint>Endpoint serverless.

Per informazioni sulla fatturazione per i modelli Meta Llama distribuiti come API serverless, vedere Considerazioni sui costi e sulle quote per modelli Meta Llama distribuiti come API serverless.

Utilizzare modelli Meta Llama come servizio

I modelli distribuiti come servizio possono essere utilizzati tramite la chat o l'API di completamento, a seconda del tipo di modello distribuito.

  1. Nell'area di lavoro, selezionare Endpoint>Endpoint serverless.

  2. Trovare e selezionare la distribuzione di Meta-Llama-3.1-405B-Instruct creata.

  3. Copiare l'URL Target e i valori del token Chiave.

  4. Effettuare una richiesta API in base al tipo di modello distribuito.

    Per altre informazioni sull'uso delle API, vedere la sezione di riferimento.

Informazioni di riferimento per i modelli Meta Llama 3.1 distribuiti come API serverless

I modelli Llama accettano sia l'API di inferenza del modello di Azure per intelligenza artificiale nella route /chat/completions che un'API di chat Llama in /v1/chat/completions. Allo stesso modo, i completamenti del testo possono essere generati usando l'API di inferenza del modello di Azure per intelligenza artificiale nella route /completions o un'API di completamento Llama in /v1/completions

Lo schema dell'API di inferenza del modello di Azure per intelligenza artificiale è disponibile nell'articolo di riferimento sui completamenti delle chat. È inoltre possibile ottenere una specifica OpenAPI dall'endpoint stesso.

API di completamento

Usare il metodo POST per inviare la richiesta alla route /v1/completions:

Richiedi

POST /v1/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

Schema della richiesta

Il payload è una stringa in formato JSON contenente i parametri seguenti:

Chiave Type Default Descrizione
prompt string Nessuna impostazione predefinita. Questo valore deve essere specificato. La richiesta di invio al modello.
stream boolean False Lo streaming consente di inviare i token generati come eventi solo dati inviati dal server ogni volta che diventano disponibili.
max_tokens integer 16 Numero massimo di token da generare nel completamento. Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello.
top_p float 1 Un'alternativa al campionamento con temperatura, denominata campionamento del nucleo, in cui il modello considera i risultati dei token con massa di probabilità top_p. Quindi 0,1 significa che vengono considerati solo i token che comprendono la massa di probabilità superiore del 10%. In genere è consigliabile modificare top_p o temperature, ma non entrambi.
temperature float 1 Temperatura di campionamento da usare, compresa tra 0 e 2. Valori più alti indicano che i campioni del modello sono più ampiamente la distribuzione dei token. Zero significa campionamento greedy. È consigliabile modificare questo o top_p, ma non entrambi.
n integer 1 Il numero di completamenti da generare per ogni richiesta.
Nota: poiché questo parametro genera molti completamenti, può utilizzare rapidamente la quota del token.
stop array null Una stringa o un elenco di stringhe che contiene la parola in cui l'API smette di generare altri token. Il testo restituito non conterrà la sequenza di interruzione.
best_of integer 1 Genera completamenti best_of sul lato server e restituisce il valore "migliore" (quello con la probabilità di log più bassa per token). I risultati non possono essere trasmessi in streaming. Se usato con n, best_of controlla il numero di completamenti candidati e n specifica quanti best_of da restituire devono essere maggiori di n.
Nota: poiché questo parametro genera molti completamenti, può utilizzare rapidamente la quota del token.
logprobs integer null Un numero che indica di includere le probabilità di log nei token logprobs più probabili e nei token scelti. Ad esempio, se logprobs è 10, l'API restituisce un elenco dei 10 token più probabili. L'API restituisce sempre il logprob del token campionato, quindi potrebbero essere presenti fino a logprobs+1 elementi nella risposta.
presence_penalty float null Un numero compreso tra -2 e 2. I valori positivi penalizzano i nuovi token in base al fatto che vengano visualizzati o meno nel testo fino a questo momento, aumentando la probabilità del modello di parlare di nuovi argomenti.
ignore_eos boolean True Indica se ignorare il token EOS e continuare a generare token dopo la generazione del token EOS.
use_beam_search boolean False Indica se usare la ricerca beam anziché il campionamento. In tal caso best_of deve essere maggiore di 1 e temperature deve essere 0.
stop_token_ids array null Un elenco di ID per i token che, quando vengono generati, arrestano un'ulteriore generazione di token. L'output restituito contiene i token di arresto a meno che i token di arresto non siano token speciali.
skip_special_tokens boolean null Indica se ignorare i token speciali nell'output.

Esempio

Testo

{
    "prompt": "What's the distance to the moon?",
    "temperature": 0.8,
    "max_tokens": 512,
}

Schema della risposta

Il payload della risposta è un dizionario con i campi seguenti.

Chiave Type Descrizione
id string Un identificatore univoco del completamento.
choices array L'elenco delle scelte di completamento che il modello ha generato per il prompt di input.
created integer Il timestamp Unix (in secondi) del momento in cui è stato creato il completamento.
model string Il model_id usato per il completamento.
object string Il tipo di oggetto, che è sempre text_completion.
usage object Statistiche di utilizzo per la richiesta di completamento.

Suggerimento

Nella modalità di streaming, per ogni blocco di risposta, finish_reason è sempre null, ad eccezione dell'ultimo che viene terminato da un payload [DONE].

L'oggetto choices è un dizionario con i campi seguenti.

Chiave Type Descrizione
index integer L'indice della scelta. Quando best_of> 1, l'indice nella matrice potrebbe non essere in ordine e il valore può andare da 0 a n-1.
text string Il risultato del completamento.
finish_reason string Il motivo per cui il modello ha interrotto la generazione di token:
- stop: il modello ha raggiunto un punto di arresto naturale o una sequenza di interruzione specificata.
- length: è stato raggiunto il numero massimo di token.
- content_filter: quando RAI modera e CMP forza la moderazione.
- content_filter_error: si è verificato un errore durante la moderazione e non è stato possibile prendere la decisione sulla risposta.
- null: la risposta dell'API è ancora in corso o è incompleta.
logprobs object Probabilità di log dei token generati nel testo di output.

L'oggetto usage è un dizionario con i campi seguenti.

Chiave Type Valore
prompt_tokens integer Numero di token nel prompt.
completion_tokens integer Numero di token generati nel completamento.
total_tokens integer Token totali.

L'oggetto logprobs è un dizionario con i campi seguenti:

Chiave Type Valore
text_offsets array di integers Posizione o indice di ogni token nell'output di completamento.
token_logprobs array di float È stato selezionato logprobs dal dizionario nella matrice top_logprobs.
tokens array di string Token selezionati.
top_logprobs array di dictionary Matrice di dizionario. In ogni dizionario la chiave è il token e il valore è il probe.

Esempio

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "text_completion",
    "created": 217877,
    "choices": [
        {
            "index": 0,
            "text": "The Moon is an average of 238,855 miles away from Earth, which is about 30 Earths away.",
            "logprobs": null,
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 7,
        "total_tokens": 23,
        "completion_tokens": 16
    }
}

API chat

Usare il metodo POST per inviare la richiesta alla route /v1/chat/completions:

Richiedi

POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

Schema della richiesta

Il payload è una stringa in formato JSON contenente i parametri seguenti:

Chiave Type Default Descrizione
messages string Nessuna impostazione predefinita. Questo valore deve essere specificato. Messaggio o cronologia dei messaggi da usare per richiedere il modello.
stream boolean False Lo streaming consente di inviare i token generati come eventi inviati dal server solo dati ogni volta che diventano disponibili.
max_tokens integer 16 Numero massimo di token da generare nel completamento. Il numero di token della richiesta più max_tokens non può superare la lunghezza del contesto del modello.
top_p float 1 Un'alternativa al campionamento con temperatura, denominata campionamento del nucleo, in cui il modello considera i risultati dei token con massa di probabilità top_p. Quindi 0,1 significa che vengono considerati solo i token che comprendono la massa di probabilità superiore del 10%. In genere è consigliabile modificare top_p o temperature, ma non entrambi.
temperature float 1 Temperatura di campionamento da usare, compresa tra 0 e 2. Valori più alti indicano che i campioni del modello sono più ampiamente la distribuzione dei token. Zero significa campionamento greedy. È consigliabile modificare questo o top_p, ma non entrambi.
n integer 1 Il numero di completamenti da generare per ogni richiesta.
Nota: poiché questo parametro genera molti completamenti, può utilizzare rapidamente la quota del token.
stop array null Una stringa o un elenco di stringhe che contiene la parola in cui l'API smette di generare altri token. Il testo restituito non conterrà la sequenza di interruzione.
best_of integer 1 Genera completamenti best_of sul lato server e restituisce il valore "migliore" (quello con la probabilità di log più bassa per token). I risultati non possono essere trasmessi in streaming. Se usato con n, best_of controlla il numero di completamenti candidati e n specifica il numero da restituire: best_of deve essere maggiore di n.
Nota: poiché questo parametro genera molti completamenti, può utilizzare rapidamente la quota del token.
logprobs integer null Un numero che indica di includere le probabilità di log nei token logprobs più probabili e nei token scelti. Ad esempio, se logprobs è 10, l'API restituisce un elenco dei 10 token più probabili. L'API restituirà sempre il logprob del token campionato, quindi potrebbero essere presenti fino a logprobs+1 elementi nella risposta.
presence_penalty float null Un numero compreso tra -2 e 2. I valori positivi penalizzano i nuovi token in base al fatto che vengano visualizzati o meno nel testo fino a questo momento, aumentando la probabilità del modello di parlare di nuovi argomenti.
ignore_eos boolean True Indica se ignorare il token EOS e continuare a generare token dopo la generazione del token EOS.
use_beam_search boolean False Indica se usare la ricerca beam anziché il campionamento. In tal caso best_of deve essere maggiore di 1 e temperature deve essere 0.
stop_token_ids array null Un elenco di ID per i token che, quando vengono generati, arrestano un'ulteriore generazione di token. L'output restituito contiene i token di arresto a meno che i token di arresto non siano token speciali.
skip_special_tokens boolean null Indica se ignorare i token speciali nell'output.

L'oggetto messages ha i campi seguenti:

Chiave Type Valore
content string Contenuto del messaggio. Il contenuto è obbligatorio per tutti i messaggi.
role string Ruolo dell'autore del messaggio. Uno tra system, user e assistant.

Esempio

Testo

{
    "messages":
    [
        { 
        "role": "system", 
        "content": "You are a helpful assistant that translates English to Italian."},
        {
        "role": "user", 
        "content": "Translate the following sentence from English to Italian: I love programming."
        }
    ],
    "temperature": 0.8,
    "max_tokens": 512,
}

Schema della risposta

Il payload della risposta è un dizionario con i campi seguenti.

Chiave Type Descrizione
id string Identificatore univoco per il completamento.
choices array Elenco delle scelte di completamento del modello generato per i messaggi di input.
created integer Timestamp Unix (in secondi) di quando è stato creato il completamento.
model string Il model_id usato per il completamento.
object string Il tipo di oggetto, che è sempre chat.completion.
usage object Statistiche di utilizzo per la richiesta di completamento.

Suggerimento

Nella modalità di streaming, per ogni blocco di risposta, finish_reason è sempre null, ad eccezione dell'ultimo che viene terminato da un payload [DONE]. In ogni oggetto choices la chiave per messages viene modificata da delta.

L'oggetto choices è un dizionario con i campi seguenti.

Chiave Type Descrizione
index integer Indice di scelta. Quando best_of> 1, l'indice nella matrice potrebbe non essere in ordine e il valore può andare da 0 a n-1.
messages oppure delta string Il completamento della chat genera l'oggetto messages. Quando viene usata la modalità di streaming, viene usata la chiave delta.
finish_reason string Motivo per cui il modello ha interrotto la generazione di token:
- stop: il modello ha raggiunto un punto di arresto naturale o una sequenza di interruzione specificata.
- length: è stato raggiunto il numero massimo di token.
- content_filter: quando RAI modera e CMP forza la moderazione
- content_filter_error: si è verificato un errore durante la moderazione e non è stato possibile prendere la decisione sulla risposta
- null: la risposta dell'API è ancora in corso o è incompleta.
logprobs object Probabilità di log dei token generati nel testo di output.

L'oggetto usage è un dizionario con i campi seguenti.

Chiave Type Valore
prompt_tokens integer Numero di token nel prompt.
completion_tokens integer Numero di token generati nel completamento.
total_tokens integer Token totali.

L'oggetto logprobs è un dizionario con i campi seguenti:

Chiave Type Valore
text_offsets array di integers Posizione o indice di ogni token nell'output di completamento.
token_logprobs array di float È stato selezionato logprobs dal dizionario nella matrice top_logprobs.
tokens array di string Token selezionati.
top_logprobs array di dictionary Matrice di dizionario. In ogni dizionario la chiave è il token e il valore è il probe.

Esempio

Di seguito è riportato un esempio di risposta:

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "chat.completion",
    "created": 2012359,
    "model": "",
    "choices": [
        {
            "index": 0,
            "finish_reason": "stop",
            "message": {
                "role": "assistant",
                "content": "Sure, I\'d be happy to help! The translation of ""I love programming"" from English to Italian is:\n\n""Amo la programmazione.""\n\nHere\'s a breakdown of the translation:\n\n* ""I love"" in English becomes ""Amo"" in Italian.\n* ""programming"" in English becomes ""la programmazione"" in Italian.\n\nI hope that helps! Let me know if you have any other sentences you\'d like me to translate."
            }
        }
    ],
    "usage": {
        "prompt_tokens": 10,
        "total_tokens": 40,
        "completion_tokens": 30
    }
}

Distribuire modelli Meta Llama in un ambiente di calcolo gestito

Oltre alla distribuzione con il servizio gestito con pagamento in base al consumo, è anche possibile distribuire i modelli Meta Llama 3.1 a un calcolo gestito nello studio di Azure Machine Learning. Quando vengono distribuiti in ambienti di calcolo gestito, è possibile selezionare tutti i dettagli sull'infrastruttura che esegue il modello, tra cui le macchine virtuali da usare e il numero di istanze per gestire il carico previsto. I modelli distribuiti nel calcolo gestito utilizzano la quota dalla sottoscrizione. I modelli seguenti dell'ondata di versione 3.1 sono disponibili nel calcolo gestito:

  • Meta-Llama-3.1-8B-Instruct (FT supportato)
  • Meta-Llama-3.1-70B-Instruct (FT supportato)
  • Meta-Llama-3.1-8B (FT supportato)
  • Meta-Llama-3.1-70B (FT supportato)
  • Llama Guard 3 8B
  • Prompt Guard

Creare una nuova distribuzione

Seguire questa procedura per distribuire un modello, ad esempio Meta-Llama-3.1-70B-Instruct in un ambiente di calcolo gestito nello studio di Azure Machine Learning.

  1. Selezionare l'area di lavoro in cui distribuire il modello.

  2. Scegliere il modello da distribuire dal catalogo dei modelli dello studio.

    In alternativa, è possibile avviare la distribuzione passando all'area di lavoro e selezionando Endpoint>Comput gestito>Crea.

  3. Nella pagina di panoramica del modello selezionare Distribuisci e quindi Calcolo gestito senza Sicurezza dei contenuti di Azure AI.

  4. Nella pagina Distribuisci con Sicurezza dei contenuti di Azure AI (anteprima) selezionare Ignora Sicurezza dei contenuti di Azure AI in modo da poter continuare a distribuire il modello usando l'interfaccia utente.

    Suggerimento

    In generale, è consigliabile selezionare Abilita Sicurezza dei contenuti di Azure AI (consigliato) per la distribuzione del modello Meta Llama. Questa opzione di distribuzione è attualmente supportata solo con Python SDK e si verifica in un notebook.

  5. Selezionare Continua.

    Suggerimento

    Se nel progetto selezionato non è disponibile una quota sufficiente, è possibile usare l'opzione Voglio usare la quota condivisa e accetto che questo endpoint venga eliminato tra 168 ore.

  6. Selezionare la macchina virtuale e il numero di istanze da assegnare alla distribuzione.

  7. Scegliere se si vuole creare questa distribuzione come parte di un nuovo endpoint o di un endpoint esistente. Gli endpoint possono ospitare più distribuzioni e allo stesso tempo mantenere la configurazione delle risorse esclusiva per ognuna di loro. Le distribuzioni nello stesso endpoint condividono l'URI dell'endpoint e le relative chiavi di accesso.

  8. Indicare se si vuole abilitare Raccolta dati di inferenza (anteprima).

  9. Indicare se si vuole abilitare Package Model (anteprima).

  10. Seleziona Distribuisci. Dopo alcuni istanti, viene visualizzata la pagina Dettagli dell'endpoint.

  11. Attendere il completamento della creazione e della distribuzione dell'endpoint. Questo passaggio potrebbe richiedere alcuni minuti.

  12. Selezionare la pagina Utilizzare dell'endpoint per ottenere esempi di codice che è possibile usare per usare il modello distribuito nell'applicazione.

Per altre informazioni su come distribuire modelli a un calcolo gestito tramite lo studio, vedere Distribuzione di modelli di base in endpoint per l'inferenza.

Consumare i modelli Meta Llama distribuiti in un ambiente di calcolo gestito

Per informazioni di riferimento su come richiamare i modelli Meta Llama 3 distribuiti nel calcolo gestito, vedere la scheda del modello nel catalogo modelli dello studio di Azure Machine Learning. La scheda di ogni modello include una pagina di panoramica con una descrizione del modello, esempi per l'inferenza basata su codice, l'ottimizzazione e la valutazione del modello.

Altri esempi di inferenza

Pacchetto Notebook di esempio
Interfaccia della riga di comando con richieste Web CURL e Python webrequests.ipynb
SDK di OpenAI (sperimentale) openaisdk.ipynb
LangChain langchain.ipynb
LiteLLM SDK litellm.ipynb

Costi e quote

Considerazioni su costi e quote per i modelli Meta Llama 3.1 distribuiti come API serverless

I modelli Meta Llama 3.1 distribuiti come API serverless vengono offerti da Meta tramite Azure Marketplace e integrati con lo studio di Azure Machine Learning. È possibile trovare i prezzi di Azure Marketplace durante la distribuzione o l'ottimizzazione dei modelli.

Ogni volta che un'area di lavoro sottoscrive un'offerta di modello specifica da 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 tramite Azure Marketplace.

Screenshot che mostra diverse risorse corrispondenti a diverse offerte di modelli e ai contatori associati.

La quota viene gestita per distribuzione. Ogni distribuzione ha un limite di frequenza di 400.000 token al minuto e 1.000 richieste API al minuto. Attualmente, tuttavia, viene limitata una distribuzione per ogni modello per ogni progetto. Contattare il supporto tecnico di Microsoft Azure se i limiti di frequenza correnti non sono sufficienti per gli scenari in uso.

Considerazioni su costi e quote per i modelli Meta Llama 3.1 distribuiti nel calcolo gestito

Per la distribuzione e l'inferenza di modelli Meta Llama 3.1 con un ambiente di calcolo gestito, viene utilizzata la quota di core della macchina virtuale assegnata alla sottoscrizione in base all'area. Quando si effettua l'iscrizione a Studio AI della piattaforma Azure, si riceve una quota di VM predefinita per diverse famiglie di macchine virtuali disponibili nell'area. È possibile continuare a creare distribuzioni fino a raggiungere il limite di quota. Dopo aver raggiunto questo limite, è possibile richiedere un aumento della quota.

Filtri dei contenuti

I modelli distribuiti come API serverless sono protetti dalla Sicurezza dei contenuti di Azure AI. Quando si esegue la distribuzione in un ambiente di calcolo gestito, è possibile rifiutare esplicitamente questa funzionalità. Con la sicurezza dei contenuti di Intelligenza artificiale di Azure abilitata, sia il prompt 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 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 per intelligenza artificiale.