Delen via


Azure AI-modeldeductie-API | Azure Machine Learning

De Azure AI-modeldeductie is een API die een algemene set mogelijkheden voor basismodellen beschikbaar maakt en die door ontwikkelaars kan worden gebruikt om voorspellingen van een diverse set modellen op een uniforme en consistente manier te gebruiken. Ontwikkelaars kunnen praten met verschillende modellen die zijn geïmplementeerd in Azure AI Studio zonder de onderliggende code te wijzigen die ze gebruiken.

Vergoedingen

Basismodellen, zoals taalmodellen, hebben de afgelopen jaren inderdaad opmerkelijke stappen gezet. Deze ontwikkelingen hebben een revolutie teweeggebracht in verschillende velden, waaronder verwerking van natuurlijke taal en computer vision, en ze hebben toepassingen zoals chatbots, virtuele assistenten en vertaalservices voor talen ingeschakeld.

Hoewel basismodellen excelleren in specifieke domeinen, hebben ze geen uniforme set mogelijkheden. Sommige modellen zijn beter bij specifieke taken en zelfs voor dezelfde taak, sommige modellen kunnen het probleem op de ene manier benaderen, terwijl andere in een andere. Ontwikkelaars kunnen profiteren van deze diversiteit door het juiste model voor de juiste taak te gebruiken, zodat ze het volgende kunnen doen:

  • Verbeter de prestaties in een specifieke downstream-taak.
  • Gebruik efficiëntere modellen voor eenvoudigere taken.
  • Gebruik kleinere modellen die sneller kunnen worden uitgevoerd voor specifieke taken.
  • Stel meerdere modellen samen om intelligente ervaringen te ontwikkelen.

Door een uniforme manier te hebben om basismodellen te gebruiken, kunnen ontwikkelaars al deze voordelen realiseren zonder de draagbaarheid op te offeren of de onderliggende code te wijzigen.

Beschikbaarheid

De Azure AI-modeldeductie-API is beschikbaar in de volgende modellen:

Modellen die zijn geïmplementeerd op serverloze API-eindpunten:

Modellen die zijn geïmplementeerd in beheerde deductie:

De API is compatibel met Azure OpenAI-modelimplementaties.

Notitie

De Azure AI-modeldeductie-API is beschikbaar in beheerde deductie (Beheerde online-eindpunten) voor modellen die zijn geïmplementeerd na 24 juni 2024. Als u verder wilt gaan met de API, implementeert u uw eindpunt opnieuw als het model vóór deze datum is geïmplementeerd.

Functies

In de volgende sectie worden enkele van de mogelijkheden beschreven die de API beschikbaar maakt. Bekijk de naslagsectie voor een volledige specificatie van de API.

Modaliteiten

De API geeft aan hoe ontwikkelaars voorspellingen kunnen gebruiken voor de volgende modaliteiten:

  • Informatie ophalen: retourneert de informatie over het model dat is geïmplementeerd onder het eindpunt.
  • Tekst insluitingen: Hiermee maakt u een insluitvector die de invoertekst vertegenwoordigt.
  • Tekstvoltooiingen: Hiermee maakt u een voltooiing voor de opgegeven prompt en parameters.
  • Chatvoltooiingen: Hiermee maakt u een modelantwoord voor het opgegeven chatgesprek.
  • Insluitingen van afbeeldingen: Hiermee maakt u een insluitvector die de invoertekst en afbeelding vertegenwoordigt.

Ondersteuning voor deductie-SDK

U kunt gestroomlijnde deductieclients gebruiken in de taal van uw keuze om voorspellingen te gebruiken van modellen met de deductie-API van het Azure AI-model.

Installeer het pakket azure-ai-inference met behulp van uw pakketbeheer, zoals pip:

pip install azure-ai-inference

Vervolgens kunt u het pakket gebruiken om het model te gebruiken. In het volgende voorbeeld ziet u hoe u een client maakt om chatvoltooiingen te gebruiken:

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"]),
)

Als u een eindpunt gebruikt met ondersteuning voor Entra ID, kunt u uw client als volgt maken:

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

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

Bekijk onze voorbeelden en lees de API-referentiedocumentatie om aan de slag te gaan.

Uitbreidbaarheid

De Azure AI-modeldeductie-API geeft een set modaliteiten en parameters op waarop modellen zich kunnen abonneren. Sommige modellen kunnen echter nog meer mogelijkheden hebben die de API aangeeft. In deze gevallen kan de API de ontwikkelaar deze doorgeven als extra parameters in de nettolading.

Door een header extra-parameters: pass-throughin te stellen, probeert de API een onbekende parameter rechtstreeks door te geven aan het onderliggende model. Als het model deze parameter kan verwerken, wordt de aanvraag voltooid.

In het volgende voorbeeld ziet u een aanvraag die de parameter safe_prompt doorgeeft die wordt ondersteund door Mistral-Large, die niet is opgegeven in de Azure AI-modeldeductie-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)

Tip

Wanneer u azure AI-deductie-SDK gebruikt model_extras , wordt de aanvraag automatisch voor extra-parameters: pass-through u geconfigureerd.

Notitie

De standaardwaarde extra-parameters is error waarvoor een fout wordt geretourneerd als een extra parameter wordt aangegeven in de nettolading. U kunt ook instellen extra-parameters: drop dat een onbekende parameter in de aanvraag wordt verwijderd. Gebruik deze mogelijkheid voor het geval u aanvragen verzendt met extra parameters die u weet dat het model geen ondersteuning biedt, maar u wilt dat de aanvraag toch wordt voltooid. Een typisch voorbeeld hiervan is het aangeven van seed de parameter.

Modellen met verschillende mogelijkheden

De Azure AI-modeldeductie-API geeft een algemene set mogelijkheden aan, maar elk van de modellen kan besluiten deze te implementeren of niet. Er wordt een specifieke fout geretourneerd in deze gevallen waarin het model geen ondersteuning biedt voor een specifieke parameter.

In het volgende voorbeeld ziet u het antwoord voor een voltooiingsaanvraag voor een chat met de parameter reponse_format en het vragen om een antwoord in JSON indeling. Omdat het model in het voorbeeld geen ondersteuning biedt voor dergelijke mogelijkheden, wordt fout 422 geretourneerd aan de gebruiker.

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

Tip

U kunt de eigenschap detail.loc inspecteren om inzicht te hebben in de locatie van de offending-parameter en detail.input om de waarde te zien die is doorgegeven in de aanvraag.

Inhoudsveiligheid

De Azure AI-modeldeductie-API ondersteunt Azure AI Content Safety. Wanneer u implementaties met Azure AI Content Safety gebruikt, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.

In het volgende voorbeeld ziet u het antwoord voor een voltooiingsaanvraag voor een chat die de veiligheid van inhoud heeft geactiveerd.

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

Aan de slag

De Azure AI-modeldeductie-API wordt momenteel ondersteund in bepaalde modellen die zijn geïmplementeerd als serverloze API-eindpunten en beheerde online-eindpunten. Implementeer een van de ondersteunde modellen en gebruik exact dezelfde code om hun voorspellingen te gebruiken.

De clientbibliotheek azure-ai-inference leidt tot deductie, inclusief chatvoltooiingen, voor AI-modellen die zijn geïmplementeerd door Azure AI Studio en Azure Machine Learning Studio. Het ondersteunt serverloze API-eindpunten en Managed Compute-eindpunten (voorheen beheerde online-eindpunten genoemd).

Bekijk onze voorbeelden en lees de API-referentiedocumentatie om aan de slag te gaan.