Interfejs API wnioskowania modelu sztucznej inteligencji platformy Azure | Azure AI Foundry
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
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 portalu usługi Azure AI Foundry 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:
- Meta Llama 3 instruuje rodzinę modeli
- Rodzina modeli Phi-3
- Mistral i Mixtral rodzina modeli.
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:
- Uzyskaj informacje: zwraca informacje o modelu wdrożonym w punkcie końcowym.
- Osadzanie tekstu: tworzy wektor osadzania reprezentujący tekst wejściowy.
- Uzupełnianie tekstu: tworzy uzupełnianie dla podanego monitu i parametrów.
- Ukończenie czatu: tworzy odpowiedź modelu dla danej konwersacji na czacie.
- Osadzanie obrazów: tworzy wektor osadzania reprezentujący tekst wejściowy i obraz.
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
model = 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
model = 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.
Poniższy przykład przedstawia żą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.
from azure.ai.inference.models import SystemMessage, UserMessage
response = model.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 = model.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ść details.loc
, aby zrozumieć lokalizację parametru przestępczego i details.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 = model.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 klienta wykonuje wnioskowanie, w tym uzupełnianie czatów, dla modeli sztucznej inteligencji azure-ai-inference
wdrożonych przez usługę Azure AI Foundry i 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ę.