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:
- Cohere Embed V3-serie modellen
- Cohere Command R-serie modellen
- Meta Llama 2 chatfamilie van modellen
- Meta Llama 3 instrueert familie van modellen
- Mistral-small
- Mistral-large
- Jais-familie van modellen
- Jamba-familie van modellen
- Phi-3-serie modellen
Modellen die zijn geïmplementeerd in beheerde deductie:
- Meta Llama 3 instrueert familie van modellen
- Phi-3-serie modellen
- Mixtrale familiteit van modellen
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-through
in 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.