Condividi tramite


API di inferenza del modello di Azure per intelligenza artificiale | Azure Machine Learning

L'inferenza del modello di Azure per intelligenza artificiale è un'API che espone un set comune di funzionalità per i modelli di base e che gli sviluppatori possono usare per sfruttare le stime da set di modelli diversi in modo uniforme e coerente. Gli sviluppatori possono comunicare con modelli diversi distribuiti in Studio AI della piattaforma Azure senza modificare il codice sottostante in uso.

Vantaggi

I modelli fondamentali, ad esempio i modelli linguistici, hanno fatto notevoli passi in avanti negli ultimi anni. Tali progressi hanno rivoluzionato numerosi 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à, altri possono affrontare il problema in un modo mentre altri in un modo differente. Gli sviluppatori possono trarre vantaggio da questa diversità usando il modello appropriato per un determinato lavoro che consente di:

  • Migliorare le prestazioni in un'attività downstream specifica.
  • Usare modelli più efficienti per attività più semplici.
  • Usare modelli più piccoli da eseguire più velocemente in attività specifiche.
  • Creare 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.

Disponibilità

L'API di inferenza del modello di Azure per intelligenza artificiale è disponibile nei modelli seguenti:

I modelli distribuiti in endpoint API serverless:

L'API è compatibile con le distribuzioni modelli di Azure OpenAI.

Funzionalità

La sezione seguente descrive alcune delle funzionalità esposte dall'API. Per una definizione completa dell'API, vedere la sezione di riferimento.

Modalità

L'API indica in che modo gli sviluppatori possono sfruttare le stime per gli scopi seguenti:

Estendibilità

L'API di inferenza del modello di Azure per intelligenza artificiale specifica un set di modalità e di parametri a cui i modelli possono sottoscrivere. Tuttavia, alcuni modelli possono avere altre funzionalità oltre quelle indicate dall'API. In questi casi, l'API consente allo sviluppatore di trasmetterle come parametri aggiuntivi al payload.

Impostando un'intestazione extra-parameters: allow, l'API tenterà di trasmettere 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 trasmette il parametro safe_prompt supportato da Mistral-Large, che non è specificato nell'API di inferenza del modello di Azure per intelligenza artificiale:

Richiedi

POST /chat/completions?api-version=2024-04-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: allow
{
    "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
}

Suggerimento

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 è l'indicazione del parametro seed.

Modelli con set di funzionalità diverse

L'API di inferenza del modello di Azure per intelligenza artificiale indica un set generale di funzionalità, ma ognuno dei modelli può decidere di implementarle 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 formato JSON. Nell'esempio, poiché il modello non supporta tale funzionalità, viene restituito all'utente un errore 422.

Richiedi

POST /chat/completions?api-version=2024-04-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."
}

Suggerimento

È possibile esaminare la proprietà details.loc per comprendere la posizione del parametro danneggiato e details.input per visualizzare il valore trasmesso nella richiesta.

Sicurezza dei contenuti

L'API di inferenza del modello di intelligenza artificiale di Azure supporta la Sicurezza dei contenuti di Azure AI. Quando si usano distribuzioni con sicurezza dei contenuti di Azure AI attivata, 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 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.

Richiedi

POST /chat/completions?api-version=2024-04-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
}

Introduzione

L'API di inferenza del modello di Azure per intelligenza artificiale è al momento supportata nei modelli distribuiti come endpoint API serverless. Distribuire uno dei modelli supportati in un nuovo endpoint API serverless per iniziare. È quindi possibile usare l'API nei modi seguenti:

È possibile usare l'API di inferenza del modello di Azure per intelligenza artificiale per eseguire valutazioni o durante la compilazione con il prompt flow. Creare una connessione del modello serverless a un endpoint API serverless e utilizzare le stime. L'API di inferenza del modello di Azure per intelligenza artificiale viene usata in modo invisibile.