Freigeben über


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:

Für verwaltete Rückschlüsse bereitgestellte Modelle:

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:

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.