Dela via


API för Azure AI-modellinferens | Azure Machine Learning

Azure AI Model Inference är ett API som exponerar en gemensam uppsättning funktioner för grundläggande modeller och som kan användas av utvecklare för att använda förutsägelser från en mängd olika modeller på ett enhetligt och konsekvent sätt. Utvecklare kan prata med olika modeller som distribueras i Azure AI Studio utan att ändra den underliggande kod de använder.

Förmåner

Grundläggande modeller, som språkmodeller, har verkligen gjort anmärkningsvärda framsteg under de senaste åren. Dessa framsteg har revolutionerat olika områden, inklusive bearbetning av naturligt språk och visuellt innehåll, och de har aktiverat program som chattrobotar, virtuella assistenter och språköversättningstjänster.

Även om grundläggande modeller utmärker sig i specifika domäner saknar de en enhetlig uppsättning funktioner. Vissa modeller är bättre på specifika uppgifter och även i samma uppgift kan vissa modeller närma sig problemet på ett sätt medan andra i en annan. Utvecklare kan dra nytta av den här mångfalden genom att använda rätt modell för rätt jobb så att de kan:

  • Förbättra prestandan i en specifik nedströmsaktivitet.
  • Använd effektivare modeller för enklare uppgifter.
  • Använd mindre modeller som kan köras snabbare på specifika uppgifter.
  • Skapa flera modeller för att utveckla intelligenta upplevelser.

Med ett enhetligt sätt att använda grundläggande modeller kan utvecklare utnyttja alla dessa fördelar utan att offra portabilitet eller ändra den underliggande koden.

Tillgänglighet

Api:et för Azure AI-modellinferens är tillgängligt i följande modeller:

Modeller som distribueras till serverlösa API-slutpunkter:

Modeller som distribuerats till hanterad slutsatsdragning:

API:et är kompatibelt med Azure OpenAI-modelldistributioner.

Kommentar

Azure AI-modellinferens-API:et är tillgängligt i hanterad slutsatsdragning (Managed Online Endpoints) för modeller som distribuerats efter den 24 juni 2024. Om du vill gå vidare med API:et distribuerar du om slutpunkten om modellen har distribuerats före det datumet.

Funktioner

I följande avsnitt beskrivs några av de funktioner som API:et exponerar. En fullständig specifikation av API:et finns i referensavsnittet.

Modaliteter

API:et anger hur utvecklare kan använda förutsägelser för följande metoder:

  • Hämta information: Returnerar informationen om modellen som distribuerats under slutpunkten.
  • Textinbäddningar: Skapar en inbäddningsvektor som representerar indatatexten.
  • Textavslutningar: Skapar ett slutförande för den angivna prompten och parametrarna.
  • Chattavslut: Skapar ett modellsvar för den angivna chattkonversationen.
  • Bildinbäddningar: Skapar en inbäddningsvektor som representerar indatatexten och bilden.

Stöd för slutsatsdragnings-SDK

Du kan använda strömlinjeformade slutsatsdragningsklienter på valfritt språk för att använda förutsägelser från modeller som kör Azure AI-modellinferens-API:et.

Installera paketet azure-ai-inference med hjälp av pakethanteraren, till exempel pip:

pip install azure-ai-inference

Sedan kan du använda paketet för att använda modellen. I följande exempel visas hur du skapar en klient för att använda chattavslutningar:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential

client = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)

Om du använder en slutpunkt med stöd för Entra-ID kan du skapa klienten på följande sätt:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential

client = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureDefaultCredential(),
)

Utforska våra exempel och läs API-referensdokumentationen för att komma igång.

Utökningsbarhet

AZURE AI Model Inference API anger en uppsättning modaliteter och parametrar som modeller kan prenumerera på. Vissa modeller kan dock ha ytterligare funktioner som API:et anger. I dessa fall tillåter API:et att utvecklaren skickar dem som extra parametrar i nyttolasten.

Genom att ange ett huvud extra-parameters: pass-throughförsöker API:et skicka alla okända parametrar direkt till den underliggande modellen. Om modellen kan hantera den parametern slutförs begäran.

I följande exempel visas en begäran som skickar parametern safe_prompt som stöds av Mistral-Large, som inte anges i AZURE AI Model Inference API:

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    model_extras={
        "safe_mode": True
    }
)

print(response.choices[0].message.content)

Dricks

När du använder Azure AI Inference SDK konfigurerar med hjälp model_extras av begäran extra-parameters: pass-through automatiskt åt dig.

Kommentar

Standardvärdet för extra-parameters returnerar error ett fel om en extra parameter anges i nyttolasten. Du kan också ange extra-parameters: drop att släppa valfri okänd parameter i begäran. Använd den här funktionen om du råkar skicka begäranden med extra parametrar som du vet att modellen inte stöder, men du vill att begäran ska slutföras ändå. Ett typiskt exempel på detta är att ange seed parametern.

Modeller med olika uppsättning funktioner

Azure AI Model Inference API anger en allmän uppsättning funktioner, men var och en av modellerna kan välja att implementera dem eller inte. Ett specifikt fel returneras i de fall där modellen inte kan stödja en specifik parameter.

I följande exempel visas svaret för en begäran om chattavslut som anger parametern reponse_format och ber om ett svar i JSON format. I exemplet returneras felet 422 till användaren eftersom modellen inte stöder den här funktionen.

import json
from azure.ai.inference.models import SystemMessage, UserMessage, ChatCompletionsResponseFormatJSON
from azure.core.exceptions import HttpResponseError

try:
    response = client.complete(
        messages=[
            SystemMessage(content="You are a helpful assistant."),
            UserMessage(content="How many languages are in the world?"),
        ],
        response_format=ChatCompletionsResponseFormatJSON()
    )
except HttpResponseError as ex:
    if ex.status_code == 422:
        response = json.loads(ex.response._content.decode('utf-8'))
        if isinstance(response, dict) and "detail" in response:
            for offending in response["detail"]:
                param = ".".join(offending["loc"])
                value = offending["input"]
                print(
                    f"Looks like the model doesn't support the parameter '{param}' with value '{value}'"
                )
    else:
        raise ex

Dricks

Du kan kontrollera egenskapen detail.loc för att förstå platsen för den felaktiga parametern och detail.input för att se värdet som skickades i begäran.

Innehållssäkerhet

Azure AI-modellinferens-API:et stöder Azure AI Content Safety. När du använder distributioner med Azure AI Content Safety på passerar indata och utdata genom en uppsättning klassificeringsmodeller som syftar till att identifiera och förhindra utdata från skadligt innehåll. Systemet för innehållsfiltrering (förhandsversion) identifierar och vidtar åtgärder för specifika kategorier av potentiellt skadligt innehåll i både inkommande prompter och slutföranden av utdata.

I följande exempel visas svaret på en begäran om chattavslut som har utlöst innehållssäkerhet.

from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError

try:
    response = client.complete(
        messages=[
            SystemMessage(content="You are an AI assistant that helps people find information."),
            UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
        ]
    )

    print(response.choices[0].message.content)

except HttpResponseError as ex:
    if ex.status_code == 400:
        response = json.loads(ex.response._content.decode('utf-8'))
        if isinstance(response, dict) and "error" in response:
            print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
        else:
            raise ex
    else:
        raise ex

Komma igång

Azure AI Model Inference API stöds för närvarande i vissa modeller som distribueras som serverlösa API-slutpunkter och hanterade onlineslutpunkter. Distribuera någon av de modeller som stöds och använd exakt samma kod för att använda deras förutsägelser.

Klientbiblioteket azure-ai-inference gör slutsatsdragningar, inklusive chattavslut, för AI-modeller som distribueras av Azure AI Studio och Azure Machine Learning Studio. Den stöder serverlösa API-slutpunkter och hanterade beräkningsslutpunkter (kallades tidigare managed online-slutpunkter).

Utforska våra exempel och läs API-referensdokumentationen för att komma igång.