Udostępnij za pośrednictwem


Interfejs API wnioskowania modelu sztucznej inteligencji platformy Azure | Azure Machine Learning

Wnioskowanie modelu sztucznej inteligencji platformy Azure to interfejs API, który uwidacznia wspólny zestaw możliwości dla podstawowych modeli i może być używany przez deweloperów do korzystania z przewidywań z różnych zestawów modeli w jednolity i spójny sposób. Deweloperzy mogą rozmawiać z różnymi modelami wdrożonym w programie Azure AI Studio bez zmieniania używanego kodu.

Świadczenia

Podstawowe modele, takie jak modele językowe, rzeczywiście poczyniły niezwykłe postępy w ostatnich latach. Te postępy zrewolucjonizowały różne pola, w tym przetwarzanie języka naturalnego i przetwarzanie obrazów, a także włączyły aplikacje, takie jak czatboty, asystenty wirtualne i usługi tłumaczenia języka.

Chociaż podstawowe modele są excel w określonych domenach, nie mają one jednolitego zestawu możliwości. Niektóre modele są lepsze w konkretnym zadaniu, a nawet w ramach tego samego zadania, niektóre modele mogą podejść do problemu w jeden sposób, podczas gdy inne w innym. Deweloperzy mogą korzystać z tej różnorodności , korzystając z odpowiedniego modelu dla odpowiedniego zadania , co pozwala im:

  • Zwiększ wydajność w określonym zadaniu podrzędnym.
  • Używaj bardziej wydajnych modeli do prostszych zadań.
  • Używaj mniejszych modeli, które mogą działać szybciej w określonych zadaniach.
  • Tworzenie wielu modeli w celu opracowywania inteligentnych środowisk.

Jednolity sposób korzystania z podstawowych modeli umożliwia deweloperom realizowanie wszystkich tych korzyści bez poświęcania przenośności ani zmieniania bazowego kodu.

Dostępność

Interfejs API wnioskowania modelu AI platformy Azure jest dostępny w następujących modelach:

Modele wdrożone w punktach końcowych bezserwerowego interfejsu API:

Modele wdrożone w zarządzanym wnioskowaniu:

Interfejs API jest zgodny z wdrożeniami modeli usługi Azure OpenAI.

Uwaga

Interfejs API wnioskowania modelu AI platformy Azure jest dostępny w zarządzanym wnioskowaniu (zarządzanych punktach końcowych online) dla modeli wdrożonych po 24 czerwca 2024 r. Aby przejść z wyprzedzeniem do interfejsu API, ponownie wdróż punkt końcowy, jeśli model został wdrożony przed taką datą.

Możliwości

W poniższej sekcji opisano niektóre możliwości uwidaczniane przez interfejs API. Aby uzyskać pełną specyfikację interfejsu API, zapoznaj się z sekcją referencyjną.

Sposoby

Interfejs API wskazuje, w jaki sposób deweloperzy mogą korzystać z przewidywań dla następujących sposobów:

Obsługa zestawu SDK wnioskowania

Możesz użyć usprawnionych klientów wnioskowania w wybranym języku, aby korzystać z przewidywań z modeli z uruchomionym interfejsem API wnioskowania modelu sztucznej inteligencji platformy Azure.

Zainstaluj pakiet azure-ai-inference przy użyciu menedżera pakietów, takiego jak:

pip install azure-ai-inference

Następnie możesz użyć pakietu do korzystania z modelu. W poniższym przykładzie pokazano, jak utworzyć klienta w celu korzystania z uzupełniania czatu:

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

Jeśli używasz punktu końcowego z obsługą identyfikatora Entra, możesz utworzyć klienta w następujący sposób:

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

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

Zapoznaj się z naszymi przykładami i przeczytaj dokumentację referencyjną interfejsu API, aby rozpocząć pracę.

Rozszerzalność

Interfejs API wnioskowania modelu sztucznej inteligencji platformy Azure określa zestaw modalności i parametrów, które modele mogą subskrybować. Jednak niektóre modele mogą mieć dalsze możliwości, które wskazuje interfejs API. W takich przypadkach interfejs API umożliwia deweloperowi przekazanie ich jako dodatkowych parametrów w ładunku.

Ustawiając nagłówek extra-parameters: pass-through, interfejs API podejmie próbę przekazania dowolnego nieznanego parametru bezpośrednio do bazowego modelu. Jeśli model może obsłużyć ten parametr, żądanie zostanie ukończone.

W poniższym przykładzie pokazano żądanie przekazujące parametr safe_prompt obsługiwany przez program Mistral-Large, który nie jest określony w interfejsie API wnioskowania modelu AI platformy Azure:

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)

Napiwek

W przypadku korzystania z zestawu AZURE AI Inference SDK przy użyciu polecenia model_extras konfiguruje żądanie extra-parameters: pass-through automatycznie.

Uwaga

Wartość domyślna parametru extra-parameters oznacza error , że zwraca błąd, jeśli dodatkowy parametr jest wskazywany w ładunku. Alternatywnie możesz ustawić opcję extra-parameters: drop upuszczania dowolnego nieznanego parametru w żądaniu. Użyj tej funkcji w przypadku wysyłania żądań z dodatkowymi parametrami, które wiesz, że model nie będzie obsługiwany, ale mimo to chcesz, aby żądanie zostało ukończone. Typowym przykładem tego parametru jest wskazanie seed parametru.

Modele z różnymi zestawami możliwości

Interfejs API wnioskowania modelu AI platformy Azure wskazuje ogólny zestaw możliwości, ale każdy z modeli może zdecydować się na ich zaimplementowanie. W tych przypadkach zwracany jest określony błąd, w którym model nie może obsługiwać określonego parametru.

Poniższy przykład przedstawia odpowiedź na żądanie ukończenia czatu wskazującą parametr reponse_format i prosząc o odpowiedź w JSON formacie. W tym przykładzie, ponieważ model nie obsługuje takiej możliwości, zwracany jest błąd 422 do użytkownika.

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

Napiwek

Możesz sprawdzić właściwość detail.loc , aby zrozumieć lokalizację parametru przestępczego i detail.input zobaczyć wartość przekazaną w żądaniu.

Bezpieczeństwo zawartości

Interfejs API wnioskowania modelu AI platformy Azure obsługuje bezpieczeństwo zawartości usługi Azure AI. W przypadku korzystania z wdrożeń z bezpieczeństwem zawartości sztucznej inteligencji platformy Azure dane wejściowe i wyjściowe przechodzą przez zespół modeli klasyfikacji mających na celu wykrywanie i zapobieganie wyjściu szkodliwej zawartości. System filtrowania zawartości (wersja zapoznawcza) wykrywa i podejmuje działania dotyczące określonych kategorii potencjalnie szkodliwej zawartości zarówno w monitach wejściowych, jak i w przypadku uzupełniania danych wyjściowych.

Poniższy przykład przedstawia odpowiedź na żądanie ukończenia czatu, które wyzwoliło bezpieczeństwo zawartości.

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

Wprowadzenie

Interfejs API wnioskowania modelu AI platformy Azure jest obecnie obsługiwany w niektórych modelach wdrożonych jako punkty końcowe bezserwerowego interfejsu API i zarządzane punkty końcowe online. Wdróż dowolne z obsługiwanych modeli i użyj dokładnie tego samego kodu, aby wykorzystać swoje przewidywania.

Biblioteka kliencka wykonuje wnioskowanie, w tym ukończenie czatu, dla modeli sztucznej inteligencji azure-ai-inference wdrożonych przez program Azure AI Studio i usługę Azure Machine Learning Studio. Obsługuje ona punkty końcowe bezserwerowego interfejsu API i zarządzane punkty końcowe obliczeniowe (wcześniej nazywane zarządzanymi punktami końcowymi online).

Zapoznaj się z naszymi przykładami i przeczytaj dokumentację referencyjną interfejsu API, aby rozpocząć pracę.