Informazioni di riferimento sull'API REST per l'inferenza del modello di intelligenza artificiale di Azure
L'inferenza del modello di intelligenza artificiale di Azure è un'API che espone un set comune di funzionalità per i modelli di base e che possono essere usati dagli sviluppatori per usare stime da un set diversificato di modelli in modo uniforme e coerente. Gli sviluppatori possono comunicare con modelli diversi distribuiti nel portale di Azure AI Foundry senza modificare il codice sottostante in uso.
Benefici
I modelli fondamentali, come i modelli linguistici, hanno fatto notevoli passi avanti negli ultimi anni. Questi progressi hanno rivoluzionato vari campi, tra cui l'elaborazione del linguaggio naturale e la visione artificiale, e hanno abilitato applicazioni come chatbot, assistenti virtuali e servizi di traduzione linguistica.
Anche se i modelli di base sono eccellenti in domini specifici, non dispongono di un set uniforme di funzionalità. Alcuni modelli sono migliori in un'attività specifica e anche nella stessa attività, alcuni modelli possono affrontare il problema in un modo mentre altri in un altro. Gli sviluppatori possono trarre vantaggio da questa diversità usando il modello corretto per il lavoro corretto consentendo loro di:
- Migliorare le prestazioni in un'attività downstream specifica.
- Usare modelli più efficienti per attività più semplici.
- Usare modelli più piccoli che possono essere eseguiti più velocemente in attività specifiche.
- Comporre più modelli per sviluppare esperienze intelligenti.
Avere un modo uniforme per utilizzare i modelli di base consente agli sviluppatori di realizzare tutti questi vantaggi senza sacrificare la portabilità o modificare il codice sottostante.
Supporto dell'SDK di inferenza
Il pacchetto di inferenza di intelligenza artificiale di Azure consente di usare tutti i modelli che supportano l'API di inferenza del modello di intelligenza artificiale di Azure e di modificarli facilmente. Il pacchetto di inferenza di Intelligenza artificiale di Azure fa parte di Azure AI Foundry SDK.
Lingua | Documentazione | Pacco | Esempi |
---|---|---|---|
C# | riferimento | azure-ai-inference (NuGet) | esempi di C# |
Giava | riferimento | azure-ai-inference (Maven) | esempi java |
JavaScript | riferimento | @azure/ai-inference (npm) | esempi javaScript |
Pitone | riferimento | azure-ai-inference (PyPi) | esempi python |
Funzionalità
La sezione seguente descrive alcune delle funzionalità esposte dall'API:
Modalità
L'API indica in che modo gli sviluppatori possono usare le stime per le modalità seguenti:
- Ottenere informazioni: restituisce le informazioni sul modello distribuito nell'endpoint.
- incorporamenti di testo: crea un vettore di incorporamento che rappresenta il testo di input.
- completamento chat: crea una risposta del modello per la conversazione di chat specificata.
- incorporamenti di immagini: crea un vettore di incorporamento che rappresenta il testo e l'immagine di input.
Estensibilità
L'API di inferenza del modello di intelligenza artificiale di Azure specifica un set di modalità e parametri a cui i modelli possono sottoscrivere. Tuttavia, alcuni modelli possono avere altre funzionalità indicate dall'API. In questi casi, l'API consente allo sviluppatore di passarle come parametri aggiuntivi nel payload.
Impostando un'intestazione extra-parameters: pass-through
, l'API tenterà di passare qualsiasi parametro sconosciuto direttamente al modello sottostante. Se il modello può gestire tale parametro, la richiesta viene completata.
L'esempio seguente mostra una richiesta che passa il parametro safe_prompt
supportato da Mistral-Large, che non è specificato nell'API di inferenza del modello di intelligenza artificiale di Azure.
richiesta
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" },
"safe_prompt": true
}
Nota
Il valore predefinito per extra-parameters
è error
che restituisce un errore se nel payload è indicato un parametro aggiuntivo. In alternativa, è possibile impostare extra-parameters: drop
per eliminare qualsiasi parametro sconosciuto nella richiesta. Usare questa funzionalità nel caso in cui si inviino richieste con parametri aggiuntivi noti che il modello non supporterà, ma si vuole che la richiesta venga completata comunque. Un esempio tipico di questo è che indica seed
parametro.
Modelli con set di funzionalità diverse
L'API di inferenza del modello di intelligenza artificiale di Azure indica un set generale di funzionalità, ma ognuno dei modelli può decidere di implementarli o meno. In questi casi viene restituito un errore specifico in cui il modello non può supportare un parametro specifico.
L'esempio seguente mostra la risposta per una richiesta di completamento della chat che indica il parametro reponse_format
e la richiesta di una risposta in JSON
formato. Nell'esempio, poiché il modello non supporta tale funzionalità, viene restituito all'utente un errore 422.
richiesta
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "json_object" },
}
response
{
"status": 422,
"code": "parameter_not_supported",
"detail": {
"loc": [ "body", "response_format" ],
"input": "json_object"
},
"message": "One of the parameters contain invalid values."
}
Mancia
È possibile esaminare la proprietà details.loc
per comprendere la posizione del parametro che causa l'offesa e details.input
per visualizzare il valore passato nella richiesta.
Sicurezza dei contenuti
L'API di inferenza del modello di intelligenza artificiale di Azure supporta Azure AI Content Safety. Quando si usano distribuzioni con Azure AI Content Safety su, gli input e gli output 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.
L'esempio seguente mostra la risposta per una richiesta di completamento della chat che ha attivato la sicurezza del contenuto.
richiesta
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
}
],
"temperature": 0,
"top_p": 1,
}
response
{
"status": 400,
"code": "content_filter",
"message": "The response was filtered",
"param": "messages",
"type": null
}
Introduttiva
L'API di inferenza del modello di intelligenza artificiale di Azure è disponibile nelle risorse di Servizi di intelligenza artificiale di Azure. È possibile iniziare a usarlo come qualsiasi altro prodotto Azure in cui è creare e configurare la risorsa per l'inferenza del modello di intelligenza artificiale di Azureo l'istanza del servizio nella sottoscrizione di Azure. È possibile creare tutte le risorse necessarie e configurarle in modo indipendente nel caso in cui si disponga di più team con requisiti diversi.
Dopo aver creato una risorsa di Servizi di intelligenza artificiale di Azure, è necessario distribuire un modello prima di iniziare a effettuare chiamate API. Per impostazione predefinita, non sono disponibili modelli, quindi è possibile controllare da quali iniziare. Vedere l'esercitazione Creare la prima distribuzione di modelli nell'inferenza del modello di intelligenza artificiale di Azure.