Azure AI Model Inference API | Azure Machine Learning
Die Modellrückschluss-API von Azure KI ist eine API, die einen gemeinsamen Satz von Funktionen für Basismodelle verfügbar macht und von Entwicklern verwendet werden kann, um Vorhersagen aus verschiedenen Modellen auf einheitliche und konsistente Weise zu nutzen. Entwickler können mit verschiedenen Modellen kommunizieren, die in Azure KI Studio bereitgestellt werden, ohne den zugrunde liegenden Code zu ändern, den sie verwenden.
Vorteile
Bei Basismodellen wie etwa Sprachmodellen wurden in den letzten Jahren bemerkenswerte Fortschritte gemacht. Diese Fortschritte haben verschiedene Bereiche revolutioniert (unter anderem die linguistische Datenverarbeitung und maschinelles Sehen) und Anwendungen wie Chatbots, virtuelle Assistenten und Sprachübersetzungsdienste möglich gemacht.
Basismodelle erzielen zwar in bestimmten Bereichen hervorragende Ergebnisse, es mangelt ihnen jedoch an einheitlichen Funktionen. Manche Modelle sind bei bestimmten Aufgaben (und sogar aufgabenübergreifend) besser, manche Modelle verfolgen einen unterschiedlichen Lösungsansatz als andere Modelle. Entwickler können von dieser Vielfalt profitieren, indem sie das richtige Modell für die richtige Aufgabe verwenden, was Folgendes ermöglicht:
- Verbessern der Leistung bei einer bestimmten nachgelagerten Aufgabe
- Verwenden effizienterer Modelle für einfachere Aufgaben
- Verwenden kleinerer Modelle, die bei bestimmten Aufgaben schneller sind
- Erstellen mehrerer Modelle, um intelligente Erfahrungen zu entwickeln
Wenn Sie eine einheitliche Möglichkeit haben, grundlegende Modelle zu nutzen, können Entwickler all diese Vorteile erkennen, ohne die Portabilität zu beeinträchtigen oder den zugrunde liegenden Code zu ändern.
Verfügbarkeit
Die Modellrückschluss-API von Azure KI ist in folgenden Modellen verfügbar:
Modelle, die für serverlose API-Endpunkte bereitgestellt werden:
- Modellfamilie Cohere Embed V3
- Modellfamilie Cohere Command R
- Die Modellfamilie Meta Llama 2 Chat
- Die Modellfamilie Meta Llama 3 Instruct
- Mistral-Small
- Mistral-Large
- Jais-Modellfamilie
- Jamba-Modellfamilie
- Modellfamilie Phi-3
Für verwaltete Rückschlüsse bereitgestellte Modelle:
- Die Modellfamilie Meta Llama 3 Instruct
- Modellfamilie Phi-3
- Mixtral-Modellfamilie
Die API ist mit Azure OpenAI-Modellimplementierungen kompatibel.
Hinweis
Die Azure KI-Modellinferenz-API ist in verwalteter Inferenz (verwaltete Onlineendpunkte) für Modelle verfügbar, die nach dem 24. Juni 2024 bereitgestellt wurden. Wenn Sie die API nutzen möchten und Ihr Modell vor diesem Datum bereitgestellt haben, müssen Sie Ihren Endpunkt erneut bereitstellen.
Capabilities
Im folgenden Abschnitt werden einige der Funktionen beschrieben, die durch die API verfügbar gemacht werden. Eine vollständige Spezifikation der API finden Sie im Referenzabschnitt.
Modalitäten
Die API gibt an, wie Entwickler Vorhersagen für folgende Modalitäten nutzen können:
- Abrufen von Informationen: Gibt die Informationen über das unter dem Endpunkt bereitgestellte Modell zurück.
- Texteinbettungen: Erstellt einen Einbettungsvektor, der den Eingabetext darstellt.
- Textvervollständigungen: Erstellt eine Vervollständigung für den angegebenen Prompt und die angegebenen Parameter.
- Chatvervollständigungen: Erstellt eine Modellantwort für die angegebene Chatunterhaltung.
- Bildeinbettungen: Erstellt einen Einbettungsvektor, der den Eingabetext und das Eingabebild darstellt.
Inference SDK-Unterstützung
Sie können optimierte Rückschlussclients in der Sprache Ihrer Wahl verwenden, um Vorhersagen von Modellen zu nutzen, die die Azure KI-Modellrückschluss-API ausführen.
Installieren Sie das Paket azure-ai-inference
mit Ihrem Paket-Manager, z. B. pip:
pip install azure-ai-inference
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
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"]),
)
Wenn Sie einen Endpunkt mit Unterstützung für Entra-ID verwenden, können Sie Ihren Client wie folgt erstellen:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureDefaultCredential(),
)
Erkunden Sie unsere Beispiele,und lesen Sie die API-Referenzdokumentation für die ersten Schritte.
Erweiterungen
Die Modellrückschluss-API von Azure KI gibt eine Reihe von Modalitäten und Parametern an, die von Modellen abonniert werden können. Einige Modelle verfügen jedoch möglicherweise über weitere Funktionen, die über die von der API angegebenen Funktionen hinausgehen. In diesen Fällen können Entwickler diese über die API als zusätzliche Parameter in den Nutzdaten übergeben.
Durch Festlegen eines Headers vom Typ extra-parameters: pass-through
versucht die API, unbekannte Parameter direkt an das zugrunde liegende Modell zu übergeben. Wenn das Modell diesen Parameter verarbeiten kann, wird die Anforderung abgeschlossen.
Das folgende Beispiel zeigt eine Anforderung, in der der von Mistral-Large unterstützte Parameter safe_prompt
übergeben wird, der in der Modellrückschluss-API von Azure KI nicht angegeben ist:
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)
Tipp
Bei Verwendung des Azure KI-Rückschluss-SDK konfiguriert model_extras
die Anforderung automatisch mit extra-parameters: pass-through
für Sie.
Hinweis
Der Standardwert für extra-parameters
ist error
, der einen Fehler zurückgibt, wenn ein zusätzlicher Parameter in der Nutzlast angegeben ist. Alternativ können Sie extra-parameters: drop
festlegen, um alle unbekannten Parameter in der Anforderung zu verwerfen. Verwenden Sie diese Funktion, falls Sie Anforderungen mit zusätzlichen Parametern senden, von denen Sie wissen, dass das Modell sie nicht unterstützt, und die Anforderung trotzdem abgeschlossen werden soll. Ein typisches Beispiel hierfür ist die Angabe des Parameters seed
.
Modelle mit unterschiedlichen Funktionen
Die Modellrückschluss-API von Azure KI gibt einen allgemeinen Satz von Funktionen an. Ob diese jedoch implementiert werden, hängt vom jeweiligen Modell ab. In Fällen, in denen das Modell einen bestimmten Parameter nicht unterstützt, wird ein spezifischer Fehler zurückgegeben.
Das folgende Beispiel zeigt die Antwort für eine Chatvervollständigungsanforderung, in der der Parameter reponse_format
angegeben ist und eine Antwort im JSON
-Format angefordert wird. Da das Modell im Beispiel diese Funktion nicht unterstützt, wird an den Benutzer ein 422-Fehler zurückgegeben.
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
Tipp
Sie können anhand der Eigenschaft detail.loc
die Position des problematischen Parameters und anhand von detail.input
den Wert ermitteln, der in der Anforderung übergeben wurde.
Inhaltssicherheit
Die Ableitungs-API für das Azure KI-Modell unterstützt Azure KI Content Safety. Bei der Verwendung von Bereitstellungen mit Azure KI Content Safety durchlaufen Eingaben und Ausgaben ein Ensemble von Klassifizierungsmodellen, die darauf abzielen, die Ausgabe schädlicher Inhalte zu erkennen und zu verhindern. Das System zur Inhaltsfilterung (Vorschau) erkennt bestimmte Kategorien potenziell schädlicher Inhalte sowohl in Eingabeprompts als auch in Ausgabevervollständigungen und ergreift entsprechende Maßnahmen.
Das folgende Beispiel zeigt die Antwort auf eine Chatabschlussanfrage, welche die Sicherheit von Inhalten ausgelöst hat.
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
Erste Schritte
Die Azure KI-Modellrückschluss-API wird derzeit in bestimmten Modellen unterstützt, die als serverlose API-Endpunkte und verwaltete Onlineendpunkte bereitgestellt werden. Stellen Sie eines der unterstützten Modelle bereit, und verwenden Sie genau denselben Code, um ihre Vorhersagen zu nutzen.
Die Clientbibliothek azure-ai-inference
führt Rückschlüsse, einschließlich Chatvervollständigungen, für KI-Modelle aus, die von Azure KI Studio und Azure Machine Learning Studio bereitgestellt werden. Sie unterstützt serverlose API-Endpunkte und verwaltete Computeendpunkte (früher als verwaltete Onlineendpunkte bezeichnet).
Erkunden Sie unsere Beispiele,und lesen Sie die API-Referenzdokumentation für die ersten Schritte.