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/systemach:
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 i Phi-4
- Mistral i Mixtral rodzina modeli
Modele wdrożone w wnioskowaniu modelu AI platformy Azure w usługach Azure AI Services:
- Zobacz obsługiwane modele.
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.
- 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.
Ważne
Podczas pracy z punktem końcowym wnioskowania modelu AI platformy Azure (wersja zapoznawcza) podstawowy adres URL, z którym ma być nawiązane połączenie, ma postać https://<resource-name>.services.ai.azure.com/models
. Użyj tego adresu URL z parametrem endpoint
. Jeśli używasz interfejsów API REST, jest to podstawowy adres URL, który należy dołączyć do modalności, którą chcesz użyć. Dowiedz się, jak używać punktu końcowego wnioskowania modelu AI 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 DefaultAzureCredential
model = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=DefaultAzureCredential(),
)
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ę.