Condividi tramite


Come distribuire modelli Mistral con lo studio di Azure Machine Learning

Questo articolo illustra come usare studio di Azure Machine Learning per distribuire la famiglia Mistral di modelli come API serverless con fatturazione basata su token con pagamento in base al consumo.

L'intelligenza artificiale Mistral offre due categorie di modelli nello studio di Azure Machine Learning. Questi modelli sono disponibili nel catalogo modelli.

  • Modelli Premium: Mistral Large (2402), Mistral Large (2407), Mistral Small e Ministral-3B.
  • Modelli aperti: Mistral Nemo, Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 e Mistral-7B-v01.

Tutti i modelli Premium e Mistral Nemo (un modello aperto) possono essere distribuiti come API serverless con fatturazione basata su token con pagamento in base al consumo. Gli altri modelli aperti possono essere distribuiti in ambienti di calcolo gestiti nella propria sottoscrizione di Azure.

È possibile esplorare la famiglia Mistral di modelli nel catalogo dei modelli filtrando la raccolta Mistral.

Famiglia di modelli Mistral

Mistral Large è il modello LLM più avanzato dell'intelligenza artificiale di Mistral. Può essere usato in qualsiasi attività basata sul linguaggio, grazie alle sue capacità di ragionamento e conoscenza all'avanguardia. Sono disponibili due varianti per la versione del modello Mistral Large:

  • Mistral Large (2402)
  • Mistral-Large (2407)

Inoltre, alcuni attributi di Mistral Large (2402) includono:

  • Specializzata in RAG. Le informazioni cruciali non si perdono nel mezzo di finestre di contesto lunghe (fino a 32 K token).
  • Codifica avanzata. Generazione di codice, revisione e commenti. Supporta tutti i linguaggi di codifica mainstream.
  • Multilingue per impostazione predefinita. Prestazioni migliori in francese, tedesco, spagnolo e italiano, oltre all'inglese. Sono supportate decine di altre lingue.
  • Conforme all'IA responsabile. Protezioni efficienti predefinite nel modello e livello di sicurezza extra con l'opzione safe_mode.

E attributi di Mistral Large (2407) includono:

  • Multilingue per impostazione predefinita. Supporta decine di lingue, tra cui inglese, francese, tedesco, spagnolo e italiano.
  • Conoscenza della codifica. È stato eseguito il training su più di 80 linguaggi di codifica, tra cui Python, Java, C, C++, JavaScript e Bash. È stato anche eseguito il training su linguaggi più specifici, ad esempio Swift e Fortran.
  • Agent-centric. Dispone di funzionalità agentic con chiamate di funzioni native e output JSON.
  • Avanzato nel ragionamento. Illustra le funzionalità matematiche e di ragionamento all'avanguardia.

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 la famiglia di modelli Mistral come API serverless

Alcuni modelli nel catalogo modelli possono essere distribuiti come API serverless con la fatturazione di pagamenti in base al consumo. Questo tipo di distribuzione consente di usare i modelli come le API senza ospitarli nella sottoscrizione, mantenendo al contempo la sicurezza e la conformità aziendali necessarie alle organizzazioni. Questa opzione di distribuzione non richiede la quota dalla sottoscrizione.

Mistral Large (2402), Mistral Large (2407), Mistral Small e Mistral Nemo possono essere distribuiti come API serverless con fatturazione in base al consumo e sono offerti da Mistral AI tramite Microsoft Azure Marketplace. Mistral AI può modificare o aggiornare le condizioni per l'utilizzo e i prezzi di questo modello.

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. Se non si dispone di un'area di lavoro, seguire la procedura descritta nell'articolo Guida introduttiva: Creare risorse dell'area di lavoro per crearne una. L'offerta di distribuzione del modello API serverless per i modelli idonei nella famiglia Mistral è disponibile solo nelle aree di lavoro creati nelle seguenti aree:

    • 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 le distribuzioni degli 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, 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 Gestire l'accesso a un'area di lavoro di Azure Machine Learning.

Creare una nuova distribuzione

I passaggi seguenti illustrano la distribuzione di Mistral Large (2402), ma è possibile usare gli stessi passaggi per distribuire i modelli Mistral Nemo o uno dei modelli Premium Mistral sostituendo il nome del modello.

Per creare una distribuzione:

  1. Passare ad Azure Machine Learning Studio.

  2. Selezionare l'area di lavoro in cui distribuire il modello. Per usare l'offerta di distribuzione del modello API serverless, l'area di lavoro deve appartenere a una delle aree elencate nei prerequisiti.

  3. Scegliere il modello da distribuire, ad esempio il modello Mistral Large (2402), dal catalogo dei modelli.

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

  4. Nella pagina di panoramica del modello nel catalogo dei modelli selezionare Distribuisci per aprire una finestra di distribuzione api serverless per il modello.

  5. Selezionare la casella di controllo per accettare i criteri di acquisto Microsoft.

    Screenshot che mostra come distribuire un modello come API serverless.

  6. Nella distribuzione guidata selezionare il collegamento a Condizioni di Azure Marketplace per altre informazioni sulle condizioni per l'utilizzo.

  7. È anche possibile selezionare la scheda Prezzi e termini per informazioni sui prezzi per il modello selezionato.

  8. 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 Mistral Large (2402)). Questo passaggio richiede che l'account disponga delle autorizzazioni associate al ruolo di sviluppatore di Azure per intelligenza artificiale per il gruppo di risorse, come indicato nei prerequisiti. Ogni area di lavoro ha una propria sottoscrizione per l'offerta specifica di Azure Marketplace, che consente di controllare e monitorare la spesa. Selezionare Sottoscrivi e distribuisci. Attualmente è possibile avere una sola distribuzione per ogni modello all'interno di un'area di lavoro.

  9. Dopo la sottoscrizione 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. Se questo scenario si applica all'utente, verrà visualizzata un'opzione Continua a distribuire da selezionare.

    Screenshot che mostra un'area di lavoro già sottoscritta all'offerta.

  10. 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.

    Screenshot che mostra come indicare il nome della distribuzione che si vuole creare.

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

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

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

  14. È 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 Mistral distribuiti come API serverless con fatturazione basata su token con pagamento in base al consumo, vedere Considerazioni sui costi e sulle quote per la famiglia di modelli Mistral distribuiti come servizio.

Utilizzare la famiglia di modelli Mistral come servizio

È possibile usare i modelli Mistral usando l'API chat.

  1. Nell'area di lavoro, selezionare Endpoint>Endpoint serverless.
  2. Trovare e selezionare la distribuzione di creata.
  3. Copiare l'URL Target e i valori del token Chiave.
  4. Effettuare una richiesta API usando l'API per inferenza del modello di Azure per intelligenza artificiale sulla route /chat/completions e l'API di chat Mistral nativa in /v1/chat/completions.

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

Riferimento per la famiglia di modelli Mistral distribuiti come servizio

I modelli Mistral accettano sia l'API per inferenza del modello di Azure per intelligenza artificiale sulla route /chat/completions e che l'API di chat Mistral in /v1/chat/completions.

API per inferenza del modello di Azure per intelligenza artificiale

Lo schema dell'API per inferenza del modello di Azure per intelligenza artificiale è disponibile nell'articolo di riferimento per i completamenti della chat e una specifica OpenAPI può essere ottenuta dall'endpoint stesso.

API di chat Mistral

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 8192 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 parametro o top_p, ma non entrambi.
ignore_eos boolean False Indica se ignorare il token EOS e continuare a generare token dopo la generazione del token EOS.
safe_prompt boolean False Indica se inserire una richiesta di sicurezza prima di tutte le conversazioni.

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 di richiesta

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.

Risposta di esempio

Di seguito è riportata una risposta JSON di esempio:

{
    "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
    }
}

Altri esempi di inferenza del modello

Tipo di esempio 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
Intelligenza artificiale Mistral mistralai.ipynb
LiteLLM litellm.ipynb

Costi e quote

Considerazioni su costi e quote per la famiglia di modelli Mistral distribuiti come servizio

I modelli mistrali distribuiti come servizio sono offerti dall'intelligenza artificiale Mistral tramite Azure Marketplace e integrati con studio di Azure Machine Learning per l'uso. È possibile trovare i prezzi di Azure Marketplace durante la distribuzione 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; 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.

La quota viene gestita per distribuzione. Ogni distribuzione ha un limite di frequenza di 200.000 token al minuto e 1.000 richieste API al minuto. Tuttavia, c’è attualmente un limite di una distribuzione per ogni modello per ogni area di lavoro. Contattare il supporto tecnico di Microsoft Azure se i limiti di frequenza correnti non sono sufficienti per gli scenari in uso.

Filtri dei contenuti

I modelli distribuiti come servizio con pagamento in base al consumo sono protetti dalla sicurezza dei contenuti di Intelligenza artificiale di Azure. 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 (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 per intelligenza artificiale.