Megosztás a következőn keresztül:


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:

Felügyelt következtetésre telepített modellek:

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:

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

model = 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

model = 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-throughbeá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 = 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)

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, ChatCompletionsResponseFormat
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={ "type": ChatCompletionsResponseFormat.JSON_OBJECT }
    )
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 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 = 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

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.