Azure AI-modell következtetési API | Azure Machine Learning
Az Azure AI Model Inference egy OLYAN API, amely az alapmodellek általános képességeit teszi elérhetővé, és amelyeket a fejlesztők a különböző modellek előrejelzéseinek egységes és egységes felhasználására használhatnak fel. A fejlesztők az Azure AI Studióban üzembe helyezett különböző modellekkel beszélgethetnek anélkül, hogy módosítanák az általuk használt mögöttes kódot.
Juttatások
Az alapvető modellek, például a nyelvi modellek, valóban figyelemre méltó lépéseket tettek az elmúlt években. Ezek a fejlesztések számos területet forradalmasítottak, beleértve a természetes nyelvi feldolgozást és a számítógépes látást, és lehetővé tették az olyan alkalmazásokat, mint a csevegőrobotok, a virtuális asszisztensek és a nyelvi fordítási szolgáltatások.
Bár az alapmodellek bizonyos tartományokban kiemelkedőek, nem rendelkeznek egységes képességkészlettel. Egyes modellek jobbak egy adott feladatnál, és még ugyanazon a feladaton belül is előfordulhat, hogy egyes modellek így közelítik meg a problémát, míg mások a másikban. A fejlesztők kihasználhatják ezt a sokszínűséget, ha a megfelelő modellt használják a megfelelő feladathoz , lehetővé téve számukra az alábbiakat:
- Egy adott alsóbb rétegbeli tevékenység teljesítményének javítása.
- Hatékonyabb modellek használata egyszerűbb feladatokhoz.
- Használjon kisebb modelleket, amelyek gyorsabban futtathatók adott feladatokon.
- Több modell összeállítása intelligens élmények fejlesztéséhez.
Az alapmodellek felhasználásának egységes módja lehetővé teszi a fejlesztők számára, hogy ezeket az előnyöket a hordozhatóság feláldozása vagy az alapul szolgáló kód módosítása nélkül valósítják meg.
Elérhetőség
Az Azure AI Model Inference API a következő modellekben érhető el:
Kiszolgáló nélküli API-végpontokon üzembe helyezett modellek:
- Cohere Embed V3 modellcsalád
- Cohere Command R modellcsalád
- Meta Llama 2 csevegési modellcsalád
- Meta Llama 3 utasítás család modellek
- Mistral-Small
- Mistral-Large
- Jais modellcsalád
- Jamba modellcsalád
- Phi-3 modellcsalád
Felügyelt következtetésre telepített modellek:
- Meta Llama 3 utasítás család modellek
- Phi-3 modellcsalád
- A modellek vegyes familitása
Az API kompatibilis az Azure OpenAI-modellek üzembe helyezésével.
Feljegyzés
Az Azure AI-modell következtetési API a 2024. június 24. után üzembe helyezett modellekhez elérhető felügyelt következtetésben (Managed Online Endpoints). Az API előrehozásához helyezze újra üzembe a végpontot, ha a modell már üzembe lett helyezve az ilyen dátum előtt.
Képességek
A következő szakasz az API által elérhetővé tett képességek némelyikét ismerteti. Az API teljes specifikációjának megtekintéséhez tekintse meg a referenciaszakaszt.
Módozatok
Az API azt jelzi, hogy a fejlesztők hogyan használhatják fel az előrejelzéseket az alábbi módokon:
- Információ lekérése: A végpont alatt üzembe helyezett modell adatait adja vissza.
- Szövegbeágyazások: Létrehoz egy beágyazási vektort, amely a bemeneti szöveget jelöli.
- Szövegkiegészítések: Befejező elemet hoz létre a megadott parancssorhoz és paraméterekhez.
- Csevegés befejezése: Modellválaszt hoz létre az adott csevegéshez.
- Képbeágyazások: Létrehoz egy beágyazási vektort, amely a bemeneti szöveget és a képet jelöli.
KövetkeztetésI SDK-támogatás
Az egyszerűsített következtetési ügyfeleket a választott nyelven használhatja az Azure AI-modell következtetési API-t futtató modellek előrejelzéseinek felhasználásához.
Telepítse a csomagot azure-ai-inference
a csomagkezelővel, például a pipkel:
pip install azure-ai-inference
Ezután a csomag használatával felhasználhatja a modellt. Az alábbi példa bemutatja, hogyan hozhat létre egy ügyfelet a csevegések befejezésének felhasználásához:
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"]),
)
Ha entra-azonosítót támogató végpontot használ, az alábbi módon hozhatja létre az ügyfelet:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureDefaultCredential(),
)
Ismerkedjen meg a mintákkal, és olvassa el az API referenciadokumentációját az első lépésekhez.
Bővíthetőség
Az Azure AI Model Inference API olyan modalitásokat és paramétereket határoz meg, amelyekre a modellek előfizethetnek. Egyes modellek azonban további képességekkel is rendelkezhetnek, amelyeket az API jelez. Ezekben az esetekben az API lehetővé teszi, hogy a fejlesztő további paraméterekként adja át őket a hasznos adatokban.
A fejléc extra-parameters: pass-through
beállításával az API megpróbálja közvetlenül az alapul szolgáló modellnek átadni az ismeretlen paramétereket. Ha a modell képes kezelni ezt a paramétert, a kérés befejeződik.
Az alábbi példa egy kérést mutat be, amely a Mistral-Large által támogatott paramétert safe_prompt
adja át, amely nincs megadva az Azure AI Model Inference API-ban:
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.
Az Azure AI Inference SDK használatakor model_extras
automatikusan konfigurálja a kérést extra-parameters: pass-through
.
Feljegyzés
Az alapértelmezett érték extra-parameters
az, error
amely hibát ad vissza, ha egy további paraméter szerepel a hasznos adatban. Másik lehetőségként beállíthatja extra-parameters: drop
, hogy bármely ismeretlen paramétert elvetjen a kérelemben. Használja ezt a képességet arra az esetre, ha olyan extra paraméterekkel rendelkező kéréseket küld, amelyekről tudja, hogy a modell nem támogatott, de azt szeretné, hogy a kérés mindenképpen befejeződjön. Erre tipikus példa a paraméter jelzése seed
.
Különböző képességekkel rendelkező modellek
Az Azure AI Model Inference API általános képességeket jelez, de mindegyik modell dönthet úgy, hogy implementálja őket. Egy adott hiba jelenik meg azokban az esetekben, amikor a modell nem tud támogatni egy adott paramétert.
Az alábbi példa egy csevegés befejezésére vonatkozó kérésre adott választ mutatja, amely a paramétert reponse_format
jelzi, és a válasz formátumát JSON
kéri. A példában, mivel a modell nem támogatja ezt a képességet, a rendszer 422-as hibát ad vissza a felhasználónak.
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.
A tulajdonságot detail.loc
megvizsgálva megismerheti a jogsértő paraméter helyét, és detail.input
megtekintheti a kérelemben átadott értéket.
Tartalombiztonság
Az Azure AI-modell következtetési API-ja támogatja az Azure AI Content Safetyet. Amikor üzembe helyezéseket használ az Azure AI Content Safety szolgáltatással, a bemenetek és kimenetek besorolási modellek együttesén haladnak át, amelyek célja a káros tartalmak kimenetének észlelése és megakadályozása. A tartalomszűrési (előzetes verzió) rendszer észleli és műveletet hajt végre a potenciálisan káros tartalmak meghatározott kategóriáiban mind a bemeneti kérésekben, mind a kimeneti befejezésekben.
Az alábbi példa a tartalombiztonságot aktiváló csevegés-befejezési kérés válaszát mutatja be.
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
Első lépések
Az Azure AI Model Inference API jelenleg támogatott bizonyos, kiszolgáló nélküli API-végpontként és felügyelt online végpontként üzembe helyezett modellekben. Telepítse bármelyik támogatott modellt , és használja ugyanazt a kódot az előrejelzéseik felhasználásához.
Az ügyfélkódtár azure-ai-inference
az Azure AI Studio és az Azure Machine Learning Studio által üzembe helyezett AI-modellekre vonatkozó következtetést hajt végre, beleértve a csevegés befejezését is. Támogatja a kiszolgáló nélküli API-végpontokat és a felügyelt számítási végpontokat (korábbi nevén felügyelt online végpontokat).
Ismerkedjen meg a mintákkal, és olvassa el az API referenciadokumentációját az első lépésekhez.