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


A Meta Llama modellcsalád használata

Fontos

A cikkben ismertetett funkciók némelyike csak előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Ebben a cikkben megismerheti a Meta Llama modellek családját és azok használatát. A Meta Llama-modellek és -eszközök előre betanított és finomhangolt, generatív AI-szöveg- és képi érvelési modellek gyűjteményei – az SLM-ek (1B, 3B Alap- és instrukciós modellek) az eszköz- és peremhálózati következtetéshez – közepes méretű LLM-ekhez (7B, 8B és 70B alap- és instrukciós modellek) és nagy teljesítményű modellekhez, mint a Meta Llama 3.1 405B Instruct szintetikus adatgenerálási és desztillációs használati esetekhez.

Tipp.

Az Azure AI-modellkatalógusban már elérhető Meta Láma 3.2-s családi modelljeiről szóló közleményeinket a Meta blogján és a Microsoft Tech Community Blogon keresztül tekinthetjük meg.

Meta Llama modellcsalád

A Meta Llama modellcsalád a következő modelleket tartalmazza:

A Llama 3.2 SLM-gyűjtemény és a képi érvelési modellek már elérhetők. Hamarosan elérhető lesz a Llama 3.2 11B Vision Instruct és a Llama 3.2 90B Vision Instruct kiszolgáló nélküli API-végpontként a Models-as-a-Service használatával. A mai naptól kezdve a következő modellek lesznek elérhetők a felügyelt számításon keresztül történő üzembe helyezéshez:

  • Láma 3.2 1B
  • Láma 3.2 3B
  • Láma 3.2 1B utasítás
  • Láma 3.2 3B utasítás
  • Llama Guard 3 1B
  • Llama Guard 11B Vision
  • Llama 3.2 11B Vision Instruct
  • A Llama 3.2 90B Vision Instruct felügyelt számítási üzembe helyezéshez érhető el.

Előfeltételek

A Meta Llama-modellek Azure AI Studióval való használatához a következő előfeltételekre van szükség:

Modell üzembe helyezése

Üzembe helyezés kiszolgáló nélküli API-kban

A metaláma-modellek üzembe helyezhetők a kiszolgáló nélküli API-végpontokon használatalapú fizetéses számlázással. Ez a fajta üzembe helyezés lehetővé teszi a modellek API-ként való használatát anélkül, hogy az előfizetésében üzemelteti őket, miközben megtartja a vállalati biztonságot és megfelelőséget, amire a szervezeteknek szükségük van.

A kiszolgáló nélküli API-végponton való üzembe helyezéshez nem szükséges kvóta az előfizetésből. Ha a modell még nincs üzembe helyezve, használja az Azure AI Studiót, a Pythonhoz készült Azure Machine Learning SDK-t, az Azure CLI-t vagy az ARM-sablonokat a modell kiszolgáló nélküli API-ként való üzembe helyezéséhez.

Üzembe helyezés saját üzemeltetésű felügyelt számításban

A Meta Llama-modellek üzembe helyezhetők a saját üzemeltetésű felügyelt következtetési megoldásban, amely lehetővé teszi a modell kiszolgálásának testreszabását és szabályozását.

Egy saját üzemeltetésű felügyelt számítás üzembe helyezéséhez elegendő kvótával kell rendelkeznie az előfizetésben. Ha nem rendelkezik elegendő kvótával, használhatja az ideiglenes kvótahozzáférést a megosztott kvótát használni kívánt lehetőség kiválasztásával, és tudomásul veszem, hogy a végpont 168 órán belül törlődik.

A következtetési csomag telepítve van

A modellből származó előrejelzéseket a azure-ai-inference Python-csomag használatával használhatja. A csomag telepítéséhez a következő előfeltételekre van szükség:

  • A Python 3.8 vagy újabb verziója telepítve van, beleértve a pipet is.
  • A végpont URL-címe. Az ügyfélkódtár létrehozásához meg kell adnia a végpont URL-címét. A végpont URL-címe az űrlappal https://your-host-name.your-azure-region.inference.ai.azure.comrendelkezik, ahol your-host-name az egyedi modell üzembehelyezési állomásneve, és your-azure-region az az Azure-régió, ahol a modell üzembe van helyezve (például eastus2).
  • A modell üzembe helyezési és hitelesítési beállításaitól függően szüksége van egy kulcsra a szolgáltatáson való hitelesítéshez, vagy a Microsoft Entra-azonosító hitelesítő adataihoz. A kulcs egy 32 karakterből áll.

Ha már rendelkezik ezekkel az előfeltételekkel, telepítse az Azure AI-következtetési csomagot a következő paranccsal:

pip install azure-ai-inference

További információ az Azure AI következtetési csomagjáról és referenciájáról.

Csevegés befejezésének használata

Ebben a szakaszban az Azure AI-modell következtetési API-jával cseveghet egy csevegés befejezései modellel.

Tipp.

Az Azure AI-modell következtetési API-ja lehetővé teszi, hogy az Azure AI Studióban üzembe helyezett legtöbb modellel ugyanazzal a kóddal és struktúrával beszéljen, beleértve a Meta Llama Instruct modelleket is – csak szöveges vagy képi érvelési modelleket.

Ügyfél létrehozása a modell használatához

Először hozza létre az ügyfelet a modell használatához. Az alábbi kód egy környezeti változókban tárolt végponti URL-címet és kulcsot használ.

import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential

client = ChatCompletionsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)

Amikor a modellt egy saját üzemeltetésű online végponton helyezi üzembe a Microsoft Entra ID támogatásával, az alábbi kódrészlettel hozhat létre egy ügyfelet.

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

client = ChatCompletionsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

Feljegyzés

A kiszolgáló nélküli API-végpontok jelenleg nem támogatják a Microsoft Entra ID hitelesítéshez való használatát.

A modell képességeinek lekérése

Az /info útvonal a végponton üzembe helyezett modell adatait adja vissza. Adja vissza a modell adatait a következő metódus meghívásával:

model_info = client.get_model_info()

A válasz a következő:

print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider_name)
Model name: Meta-Llama-3.1-405B-Instruct
Model type: chat-completions
Model provider name: Meta

Csevegés befejezésére vonatkozó kérés létrehozása

Az alábbi példa bemutatja, hogyan hozhat létre alapszintű csevegés-befejezési kérelmet a modellnek.

from azure.ai.inference.models import SystemMessage, UserMessage

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
)

A válasz a következő, ahol láthatja a modell használati statisztikáit:

print("Response:", response.choices[0].message.content)
print("Model:", response.model)
print("Usage:")
print("\tPrompt tokens:", response.usage.prompt_tokens)
print("\tTotal tokens:", response.usage.total_tokens)
print("\tCompletion tokens:", response.usage.completion_tokens)
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Meta-Llama-3.1-405B-Instruct
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

usage A válasz szakaszában megtekintheti a parancssorhoz használt jogkivonatok számát, a létrehozott jogkivonatok teljes számát és a befejezéshez használt tokenek számát.

Tartalom streamelése

Alapértelmezés szerint a befejezési API egyetlen válaszban adja vissza a teljes generált tartalmat. Ha hosszú befejezéseket hoz létre, a válaszra való várakozás több másodpercet is igénybe vehet.

Streamelheti a tartalmat, hogy megkapja a létrehozás közben. A streamelési tartalom lehetővé teszi a befejezés feldolgozását, amint a tartalom elérhetővé válik. Ez a mód egy olyan objektumot ad vissza, amely a választ csak a kiszolgáló által küldött eseményekként küldi vissza. Az üzenetmező helyett bontsa ki az adattömböket a delta mezőből.

result = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    temperature=0,
    top_p=1,
    max_tokens=2048,
    stream=True,
)

A befejezések streameléséhez állítsa be stream=True , amikor meghívja a modellt.

A kimenet megjelenítéséhez definiáljon egy segédfüggvényt a stream nyomtatásához.

def print_stream(result):
    """
    Prints the chat completion with streaming.
    """
    import time
    for update in result:
        if update.choices:
            print(update.choices[0].delta.content, end="")

Vizualizálhatja, hogyan hozza létre a stream a tartalmat:

print_stream(result)

A következtetési ügyfél által támogatott további paraméterek megismerése

Ismerje meg a következtetési ügyfélben megadható egyéb paramétereket. Az összes támogatott paraméter és azok dokumentációjának teljes listáját az Azure AI Model Inference API-referencia tartalmazza.

from azure.ai.inference.models import ChatCompletionsResponseFormatText

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    presence_penalty=0.1,
    frequency_penalty=0.8,
    max_tokens=2048,
    stop=["<|endoftext|>"],
    temperature=0,
    top_p=1,
    response_format={ "type": ChatCompletionsResponseFormatText() },
)

Figyelmeztetés

A metaláma-modellek nem támogatják a JSON-kimenet formázását (response_format = { "type": "json_object" }). Mindig megkérheti a modellt, hogy hozzon létre JSON-kimeneteket. Az ilyen kimenetek azonban nem garantáltan érvényesek JSON-nak.

Ha olyan paramétert szeretne átadni, amely nem szerepel a támogatott paraméterek listájában, további paraméterekkel továbbíthatja azt a mögöttes modellnek. Lásd: További paraméterek átadása a modellnek.

További paraméterek átadása a modellnek

Az Azure AI Model Inference API-val további paramétereket adhat át a modellnek. Az alábbi példakód bemutatja, hogyan adhatja át a plusz paramétert logprobs a modellnek.

Mielőtt további paramétereket ad át az Azure AI-modell következtetési API-jának, győződjön meg arról, hogy a modell támogatja ezeket az extra paramétereket. Amikor a kérést a mögöttes modellnek küldi el, a fejlécet extra-parameters a rendszer átadja a modellnek az értékkel pass-through. Ez az érték arra utasítja a végpontot, hogy adja át a további paramétereket a modellnek. Az extra paraméterek használata a modellel nem garantálja, hogy a modell ténylegesen képes kezelni őket. A modell dokumentációjában megismerheti, hogy mely további paraméterek támogatottak.

response = client.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    model_extras={
        "logprobs": True
    }
)

A következő további paraméterek továbbíthatók a Meta Llama-modelleknek:

Név Leírás Típus
n Hány befejezést kell létrehozni az egyes kérésekhez. Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
best_of Létrehozza best_of kiszolgálóoldali befejezéseket, és a legjobbat adja vissza (a legkisebb naplós valószínűséggel rendelkezőt tokenenként). Az eredmények nem streamelhetők. A best_of na jelölt befejezések számát szabályozza, az n pedig azt határozza meg, hogy hányat kell visszaadni – best_of nagyobbnak kell lennie.n Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
logprobs Egy szám, amely azt jelzi, hogy a naplóprobok legvalószínűbb jogkivonatai és a kiválasztott tokenek napló valószínűségét tartalmazzák. Ha például a logprobs értéke 10, az API a 10 legvalószínűbb token listáját adja vissza. Az API mindig visszaadja a mintául szolgáló jogkivonat naplóprobját, így akár logprobs+1 elemek is lehetnek a válaszban. integer
ignore_eos Figyelmen kívül hagyja-e a EOS jogkivonatot, és folytassa-e a EOS jogkivonatok létrehozásának folytatását. boolean
use_beam_search Azt, hogy mintavételezés helyett sugárkeresést használjon-e. Ilyen esetben 1-nél nagyobbnak kell lennie, best_of a hőmérsékletnek pedig 0-nak kell lennie. boolean
stop_token_ids Azon jogkivonatok azonosítóinak listája, amelyek létrehozásakor leállítja a további jogkivonat-létrehozást. A visszaadott kimenet a leállítási jogkivonatokat tartalmazza, kivéve, ha a leállítási jogkivonatok speciális jogkivonatok. array
skip_special_tokens Speciális jogkivonatok kihagyása a kimenetben. boolean

Tartalombiztonság alkalmazása

Az Azure AI-modell következtetési API-ja támogatja az Azure AI-tartalombiztonságot. Ha bekapcsolt Azure AI-tartalombiztonsággal rendelkező üzembe helyezéseket használ, 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 bemutatja, hogyan kezelheti az eseményeket, amikor a modell káros tartalmat észlel a bemeneti parancssorban, és engedélyezve van a tartalombiztonság.

from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage

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 = ex.response.json()
        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
    raise

Tipp.

Az Azure AI tartalombiztonsági beállításainak konfigurálásáról és szabályozásáról az Azure AI tartalombiztonsági dokumentációjában olvashat bővebben.

Feljegyzés

Az Azure AI tartalombiztonsága csak kiszolgáló nélküli API-végpontként üzembe helyezett modellek esetén érhető el.

Meta Llama-modellek

A Meta Láma modellek a következő modelleket tartalmazzák:

A Meta Llama 3.1 többnyelvű nagy nyelvi modellek (LLM-ek) gyűjteménye előre betanított és utasításokkal hangolt generatív modellek gyűjteménye 8B, 70B és 405B méretben (szöveg/szöveg ki). A Láma 3.1 utasítással hangolt csak szöveges modellek (8B, 70B, 405B) többnyelvű párbeszédes használati esetekre vannak optimalizálva, és felülmúlják a rendelkezésre álló nyílt forráskódú és zárt csevegési modelleket a gyakori iparági teljesítménymutatókon.

A következő modellek állnak rendelkezésre:

Előfeltételek

A Meta Llama-modellek Azure AI Studióval való használatához a következő előfeltételekre van szükség:

Modell üzembe helyezése

Üzembe helyezés kiszolgáló nélküli API-kban

A metaláma-modellek üzembe helyezhetők a kiszolgáló nélküli API-végpontokon használatalapú fizetéses számlázással. Ez a fajta üzembe helyezés lehetővé teszi a modellek API-ként való használatát anélkül, hogy az előfizetésében üzemelteti őket, miközben megtartja a vállalati biztonságot és megfelelőséget, amire a szervezeteknek szükségük van.

A kiszolgáló nélküli API-végponton való üzembe helyezéshez nem szükséges kvóta az előfizetésből. Ha a modell még nincs üzembe helyezve, használja az Azure AI Studiót, a Pythonhoz készült Azure Machine Learning SDK-t, az Azure CLI-t vagy az ARM-sablonokat a modell kiszolgáló nélküli API-ként való üzembe helyezéséhez.

Üzembe helyezés saját üzemeltetésű felügyelt számításban

A Meta Llama-modellek üzembe helyezhetők a saját üzemeltetésű felügyelt következtetési megoldásban, amely lehetővé teszi a modell kiszolgálásának testreszabását és szabályozását.

Egy saját üzemeltetésű felügyelt számítás üzembe helyezéséhez elegendő kvótával kell rendelkeznie az előfizetésben. Ha nem rendelkezik elegendő kvótával, használhatja az ideiglenes kvótahozzáférést a megosztott kvótát használni kívánt lehetőség kiválasztásával, és tudomásul veszem, hogy a végpont 168 órán belül törlődik.

A következtetési csomag telepítve van

A modellből származó előrejelzéseket a @azure-rest/ai-inference forrásból származó npmcsomag használatával használhatja fel. A csomag telepítéséhez a következő előfeltételekre van szükség:

  • LTS-verziók a Node.js with npm.
  • A végpont URL-címe. Az ügyfélkódtár létrehozásához meg kell adnia a végpont URL-címét. A végpont URL-címe az űrlappal https://your-host-name.your-azure-region.inference.ai.azure.comrendelkezik, ahol your-host-name az egyedi modell üzembehelyezési állomásneve, és your-azure-region az az Azure-régió, ahol a modell üzembe van helyezve (például eastus2).
  • A modell üzembe helyezési és hitelesítési beállításaitól függően szüksége van egy kulcsra a szolgáltatáson való hitelesítéshez, vagy a Microsoft Entra-azonosító hitelesítő adataihoz. A kulcs egy 32 karakterből áll.

Ha már rendelkezik ezekkel az előfeltételekkel, telepítse a JavaScripthez készült Azure Inference-kódtárat a következő paranccsal:

npm install @azure-rest/ai-inference

Csevegés befejezésének használata

Ebben a szakaszban az Azure AI-modell következtetési API-jával cseveghet egy csevegés befejezései modellel.

Tipp.

Az Azure AI-modell következtetési API-ja lehetővé teszi, hogy az Azure AI Studióban üzembe helyezett legtöbb modellel ugyanazzal a kóddal és struktúrával beszéljen, beleértve a Meta Llama-modelleket is.

Ügyfél létrehozása a modell használatához

Először hozza létre az ügyfelet a modell használatához. Az alábbi kód egy környezeti változókban tárolt végponti URL-címet és kulcsot használ.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Amikor a modellt egy saját üzemeltetésű online végponton helyezi üzembe a Microsoft Entra ID támogatásával, az alábbi kódrészlettel hozhat létre egy ügyfelet.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential }  from "@azure/identity";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new DefaultAzureCredential()
);

Feljegyzés

A kiszolgáló nélküli API-végpontok jelenleg nem támogatják a Microsoft Entra ID hitelesítéshez való használatát.

A modell képességeinek lekérése

Az /info útvonal a végponton üzembe helyezett modell adatait adja vissza. Adja vissza a modell adatait a következő metódus meghívásával:

var model_info = await client.path("/info").get()

A válasz a következő:

console.log("Model name: ", model_info.body.model_name)
console.log("Model type: ", model_info.body.model_type)
console.log("Model provider name: ", model_info.body.model_provider_name)
Model name: Meta-Llama-3.1-405B-Instruct
Model type: chat-completions
Model provider name: Meta

Csevegés befejezésére vonatkozó kérés létrehozása

Az alábbi példa bemutatja, hogyan hozhat létre alapszintű csevegés-befejezési kérelmet a modellnek.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
    }
});

A válasz a következő, ahol láthatja a modell használati statisztikáit:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log("Response: ", response.body.choices[0].message.content);
console.log("Model: ", response.body.model);
console.log("Usage:");
console.log("\tPrompt tokens:", response.body.usage.prompt_tokens);
console.log("\tTotal tokens:", response.body.usage.total_tokens);
console.log("\tCompletion tokens:", response.body.usage.completion_tokens);
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Meta-Llama-3.1-405B-Instruct
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

usage A válasz szakaszában megtekintheti a parancssorhoz használt jogkivonatok számát, a létrehozott jogkivonatok teljes számát és a befejezéshez használt tokenek számát.

Tartalom streamelése

Alapértelmezés szerint a befejezési API egyetlen válaszban adja vissza a teljes generált tartalmat. Ha hosszú befejezéseket hoz létre, a válaszra való várakozás több másodpercet is igénybe vehet.

Streamelheti a tartalmat, hogy megkapja a létrehozás közben. A streamelési tartalom lehetővé teszi a befejezés feldolgozását, amint a tartalom elérhetővé válik. Ez a mód egy olyan objektumot ad vissza, amely a választ csak a kiszolgáló által küldött eseményekként küldi vissza. Az üzenetmező helyett bontsa ki az adattömböket a delta mezőből.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
    }
}).asNodeStream();

A befejezések streameléséhez használja .asNodeStream() a modellt.

Vizualizálhatja, hogyan hozza létre a stream a tartalmat:

var stream = response.body;
if (!stream) {
    stream.destroy();
    throw new Error(`Failed to get chat completions with status: ${response.status}`);
}

if (response.status !== "200") {
    throw new Error(`Failed to get chat completions: ${response.body.error}`);
}

var sses = createSseStream(stream);

for await (const event of sses) {
    if (event.data === "[DONE]") {
        return;
    }
    for (const choice of (JSON.parse(event.data)).choices) {
        console.log(choice.delta?.content ?? "");
    }
}

A következtetési ügyfél által támogatott további paraméterek megismerése

Ismerje meg a következtetési ügyfélben megadható egyéb paramétereket. Az összes támogatott paraméter és azok dokumentációjának teljes listáját az Azure AI Model Inference API-referencia tartalmazza.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    body: {
        messages: messages,
        presence_penalty: "0.1",
        frequency_penalty: "0.8",
        max_tokens: 2048,
        stop: ["<|endoftext|>"],
        temperature: 0,
        top_p: 1,
        response_format: { type: "text" },
    }
});

Figyelmeztetés

A metaláma-modellek nem támogatják a JSON-kimenet formázását (response_format = { "type": "json_object" }). Mindig megkérheti a modellt, hogy hozzon létre JSON-kimeneteket. Az ilyen kimenetek azonban nem garantáltan érvényesek JSON-nak.

Ha olyan paramétert szeretne átadni, amely nem szerepel a támogatott paraméterek listájában, további paraméterekkel továbbíthatja azt a mögöttes modellnek. Lásd: További paraméterek átadása a modellnek.

További paraméterek átadása a modellnek

Az Azure AI Model Inference API-val további paramétereket adhat át a modellnek. Az alábbi példakód bemutatja, hogyan adhatja át a plusz paramétert logprobs a modellnek.

Mielőtt további paramétereket ad át az Azure AI-modell következtetési API-jának, győződjön meg arról, hogy a modell támogatja ezeket az extra paramétereket. Amikor a kérést a mögöttes modellnek küldi el, a fejlécet extra-parameters a rendszer átadja a modellnek az értékkel pass-through. Ez az érték arra utasítja a végpontot, hogy adja át a további paramétereket a modellnek. Az extra paraméterek használata a modellel nem garantálja, hogy a modell ténylegesen képes kezelni őket. A modell dokumentációjában megismerheti, hogy mely további paraméterek támogatottak.

var messages = [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "How many languages are in the world?" },
];

var response = await client.path("/chat/completions").post({
    headers: {
        "extra-params": "pass-through"
    },
    body: {
        messages: messages,
        logprobs: true
    }
});

A következő további paraméterek továbbíthatók a Meta Llama-modelleknek:

Név Leírás Típus
n Hány befejezést kell létrehozni az egyes kérésekhez. Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
best_of Létrehozza best_of kiszolgálóoldali befejezéseket, és a legjobbat adja vissza (a legkisebb naplós valószínűséggel rendelkezőt tokenenként). Az eredmények nem streamelhetők. A best_of na jelölt befejezések számát szabályozza, az n pedig azt határozza meg, hogy hányat kell visszaadni – best_of nagyobbnak kell lennie.n Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
logprobs Egy szám, amely azt jelzi, hogy a naplóprobok legvalószínűbb jogkivonatai és a kiválasztott tokenek napló valószínűségét tartalmazzák. Ha például a logprobs értéke 10, az API a 10 legvalószínűbb token listáját adja vissza. Az API mindig visszaadja a mintául szolgáló jogkivonat naplóprobját, így akár logprobs+1 elemek is lehetnek a válaszban. integer
ignore_eos Figyelmen kívül hagyja-e a EOS jogkivonatot, és folytassa-e a EOS jogkivonatok létrehozásának folytatását. boolean
use_beam_search Azt, hogy mintavételezés helyett sugárkeresést használjon-e. Ilyen esetben 1-nél nagyobbnak kell lennie, best_of a hőmérsékletnek pedig 0-nak kell lennie. boolean
stop_token_ids Azon jogkivonatok azonosítóinak listája, amelyek létrehozásakor leállítja a további jogkivonat-létrehozást. A visszaadott kimenet a leállítási jogkivonatokat tartalmazza, kivéve, ha a leállítási jogkivonatok speciális jogkivonatok. array
skip_special_tokens Speciális jogkivonatok kihagyása a kimenetben. boolean

Tartalombiztonság alkalmazása

Az Azure AI-modell következtetési API-ja támogatja az Azure AI-tartalombiztonságot. Ha bekapcsolt Azure AI-tartalombiztonsággal rendelkező üzembe helyezéseket használ, 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 bemutatja, hogyan kezelheti az eseményeket, amikor a modell káros tartalmat észlel a bemeneti parancssorban, és engedélyezve van a tartalombiztonság.

try {
    var messages = [
        { role: "system", content: "You are an AI assistant that helps people find information." },
        { role: "user", content: "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills." },
    ];

    var response = await client.path("/chat/completions").post({
        body: {
            messages: messages,
        }
    });

    console.log(response.body.choices[0].message.content);
}
catch (error) {
    if (error.status_code == 400) {
        var response = JSON.parse(error.response._content);
        if (response.error) {
            console.log(`Your request triggered an ${response.error.code} error:\n\t ${response.error.message}`);
        }
        else
        {
            throw error;
        }
    }
}

Tipp.

Az Azure AI tartalombiztonsági beállításainak konfigurálásáról és szabályozásáról az Azure AI tartalombiztonsági dokumentációjában olvashat bővebben.

Feljegyzés

Az Azure AI tartalombiztonsága csak kiszolgáló nélküli API-végpontként üzembe helyezett modellek esetén érhető el.

Meta Llama-modellek

A Meta Láma modellek a következő modelleket tartalmazzák:

A Meta Llama 3.1 többnyelvű nagy nyelvi modellek (LLM-ek) gyűjteménye előre betanított és utasításokkal hangolt generatív modellek gyűjteménye 8B, 70B és 405B méretben (szöveg/szöveg ki). A Láma 3.1 utasítással hangolt csak szövegmodellek (8B, 70B, 405B) többnyelvű párbeszédes használati esetekre vannak optimalizálva, és a közös iparági teljesítménymutatókon elérhető nyílt forráskódú és zárt modellek közül számosat felülmúlnak.

A következő modellek állnak rendelkezésre:

Előfeltételek

A Meta Llama-modellek Azure AI Studióval való használatához a következő előfeltételekre van szükség:

Modell üzembe helyezése

Üzembe helyezés kiszolgáló nélküli API-kban

A metaláma-modellek üzembe helyezhetők a kiszolgáló nélküli API-végpontokon használatalapú fizetéses számlázással. Ez a fajta üzembe helyezés lehetővé teszi a modellek API-ként való használatát anélkül, hogy az előfizetésében üzemelteti őket, miközben megtartja a vállalati biztonságot és megfelelőséget, amire a szervezeteknek szükségük van.

A kiszolgáló nélküli API-végponton való üzembe helyezéshez nem szükséges kvóta az előfizetésből. Ha a modell még nincs üzembe helyezve, használja az Azure AI Studiót, a Pythonhoz készült Azure Machine Learning SDK-t, az Azure CLI-t vagy az ARM-sablonokat a modell kiszolgáló nélküli API-ként való üzembe helyezéséhez.

Üzembe helyezés saját üzemeltetésű felügyelt számításban

A Meta Llama-modellek üzembe helyezhetők a saját üzemeltetésű felügyelt következtetési megoldásban, amely lehetővé teszi a modell kiszolgálásának testreszabását és szabályozását.

Egy saját üzemeltetésű felügyelt számítás üzembe helyezéséhez elegendő kvótával kell rendelkeznie az előfizetésben. Ha nem rendelkezik elegendő kvótával, használhatja az ideiglenes kvótahozzáférést a megosztott kvótát használni kívánt lehetőség kiválasztásával, és tudomásul veszem, hogy a végpont 168 órán belül törlődik.

A következtetési csomag telepítve van

A modellből származó előrejelzéseket a Azure.AI.Inference NuGet-csomag használatával használhatja fel. A csomag telepítéséhez a következő előfeltételekre van szükség:

  • A végpont URL-címe. Az ügyfélkódtár létrehozásához meg kell adnia a végpont URL-címét. A végpont URL-címe az űrlappal https://your-host-name.your-azure-region.inference.ai.azure.comrendelkezik, ahol your-host-name az egyedi modell üzembehelyezési állomásneve, és your-azure-region az az Azure-régió, ahol a modell üzembe van helyezve (például eastus2).
  • A modell üzembe helyezési és hitelesítési beállításaitól függően szüksége van egy kulcsra a szolgáltatáson való hitelesítéshez, vagy a Microsoft Entra-azonosító hitelesítő adataihoz. A kulcs egy 32 karakterből áll.

Ha már rendelkezik ezekkel az előfeltételekkel, telepítse az Azure AI-következtetési kódtárat a következő paranccsal:

dotnet add package Azure.AI.Inference --prerelease

Hitelesítést microsoft entra-azonosítóval (korábban Azure Active Directory) is végezhet. Az Azure SDK-hoz biztosított hitelesítőadat-szolgáltatók használatához telepítse a Azure.Identity csomagot:

dotnet add package Azure.Identity

Importálja a következő névtereket:

using Azure;
using Azure.Identity;
using Azure.AI.Inference;

Ez a példa a következő névtereket is használja, de előfordulhat, hogy nem mindig van rájuk szüksége:

using System.Text.Json;
using System.Text.Json.Serialization;
using System.Reflection;

Csevegés befejezésének használata

Ebben a szakaszban az Azure AI-modell következtetési API-jával cseveghet egy csevegés befejezései modellel.

Tipp.

Az Azure AI-modell következtetési API-ja lehetővé teszi, hogy az Azure AI Studióban üzembe helyezett legtöbb modellel ugyanazzal a kóddal és struktúrával beszéljen, beleértve a Meta Llama csevegőmodelleket is.

Ügyfél létrehozása a modell használatához

Először hozza létre az ügyfelet a modell használatához. Az alábbi kód egy környezeti változókban tárolt végponti URL-címet és kulcsot használ.

ChatCompletionsClient client = new ChatCompletionsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);

Amikor a modellt egy saját üzemeltetésű online végponton helyezi üzembe a Microsoft Entra ID támogatásával, az alábbi kódrészlettel hozhat létre egy ügyfelet.

client = new ChatCompletionsClient(
    new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
    new DefaultAzureCredential(includeInteractiveCredentials: true)
);

Feljegyzés

A kiszolgáló nélküli API-végpontok jelenleg nem támogatják a Microsoft Entra ID hitelesítéshez való használatát.

A modell képességeinek lekérése

Az /info útvonal a végponton üzembe helyezett modell adatait adja vissza. Adja vissza a modell adatait a következő metódus meghívásával:

Response<ModelInfo> modelInfo = client.GetModelInfo();

A válasz a következő:

Console.WriteLine($"Model name: {modelInfo.Value.ModelName}");
Console.WriteLine($"Model type: {modelInfo.Value.ModelType}");
Console.WriteLine($"Model provider name: {modelInfo.Value.ModelProviderName}");
Model name: Meta-Llama-3.1-405B-Instruct
Model type: chat-completions
Model provider name: Meta

Csevegés befejezésére vonatkozó kérés létrehozása

Az alábbi példa bemutatja, hogyan hozhat létre alapszintű csevegés-befejezési kérelmet a modellnek.

ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("How many languages are in the world?")
    },
};

Response<ChatCompletions> response = client.Complete(requestOptions);

A válasz a következő, ahol láthatja a modell használati statisztikáit:

Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");
Console.WriteLine($"\tCompletion tokens: {response.Value.Usage.CompletionTokens}");
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Meta-Llama-3.1-405B-Instruct
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

usage A válasz szakaszában megtekintheti a parancssorhoz használt jogkivonatok számát, a létrehozott jogkivonatok teljes számát és a befejezéshez használt tokenek számát.

Tartalom streamelése

Alapértelmezés szerint a befejezési API egyetlen válaszban adja vissza a teljes generált tartalmat. Ha hosszú befejezéseket hoz létre, a válaszra való várakozás több másodpercet is igénybe vehet.

Streamelheti a tartalmat, hogy megkapja a létrehozás közben. A streamelési tartalom lehetővé teszi a befejezés feldolgozását, amint a tartalom elérhetővé válik. Ez a mód egy olyan objektumot ad vissza, amely a választ csak a kiszolgáló által küldött eseményekként küldi vissza. Az üzenetmező helyett bontsa ki az adattömböket a delta mezőből.

static async Task StreamMessageAsync(ChatCompletionsClient client)
{
    ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
    {
        Messages = {
            new ChatRequestSystemMessage("You are a helpful assistant."),
            new ChatRequestUserMessage("How many languages are in the world? Write an essay about it.")
        },
        MaxTokens=4096
    };

    StreamingResponse<StreamingChatCompletionsUpdate> streamResponse = await client.CompleteStreamingAsync(requestOptions);

    await PrintStream(streamResponse);
}

A befejezések streameléséhez használja CompleteStreamingAsync a metódust, amikor meghívja a modellt. Figyelje meg, hogy ebben a példában a hívás aszinkron metódusba van csomagolva.

A kimenet megjelenítéséhez definiáljon egy aszinkron módszert a stream konzolon való nyomtatásához.

static async Task PrintStream(StreamingResponse<StreamingChatCompletionsUpdate> response)
{
    await foreach (StreamingChatCompletionsUpdate chatUpdate in response)
    {
        if (chatUpdate.Role.HasValue)
        {
            Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
        }
        if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
        {
            Console.Write(chatUpdate.ContentUpdate);
        }
    }
}

Vizualizálhatja, hogyan hozza létre a stream a tartalmat:

StreamMessageAsync(client).GetAwaiter().GetResult();

A következtetési ügyfél által támogatott további paraméterek megismerése

Ismerje meg a következtetési ügyfélben megadható egyéb paramétereket. Az összes támogatott paraméter és azok dokumentációjának teljes listáját az Azure AI Model Inference API-referencia tartalmazza.

requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("How many languages are in the world?")
    },
    PresencePenalty = 0.1f,
    FrequencyPenalty = 0.8f,
    MaxTokens = 2048,
    StopSequences = { "<|endoftext|>" },
    Temperature = 0,
    NucleusSamplingFactor = 1,
    ResponseFormat = new ChatCompletionsResponseFormatText()
};

response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");

Figyelmeztetés

A metaláma-modellek nem támogatják a JSON-kimenet formázását (response_format = { "type": "json_object" }). Mindig megkérheti a modellt, hogy hozzon létre JSON-kimeneteket. Az ilyen kimenetek azonban nem garantáltan érvényesek JSON-nak.

Ha olyan paramétert szeretne átadni, amely nem szerepel a támogatott paraméterek listájában, további paraméterekkel továbbíthatja azt a mögöttes modellnek. Lásd: További paraméterek átadása a modellnek.

További paraméterek átadása a modellnek

Az Azure AI Model Inference API-val további paramétereket adhat át a modellnek. Az alábbi példakód bemutatja, hogyan adhatja át a plusz paramétert logprobs a modellnek.

Mielőtt további paramétereket ad át az Azure AI-modell következtetési API-jának, győződjön meg arról, hogy a modell támogatja ezeket az extra paramétereket. Amikor a kérést a mögöttes modellnek küldi el, a fejlécet extra-parameters a rendszer átadja a modellnek az értékkel pass-through. Ez az érték arra utasítja a végpontot, hogy adja át a további paramétereket a modellnek. Az extra paraméterek használata a modellel nem garantálja, hogy a modell ténylegesen képes kezelni őket. A modell dokumentációjában megismerheti, hogy mely további paraméterek támogatottak.

requestOptions = new ChatCompletionsOptions()
{
    Messages = {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("How many languages are in the world?")
    },
    AdditionalProperties = { { "logprobs", BinaryData.FromString("true") } },
};

response = client.Complete(requestOptions, extraParams: ExtraParameters.PassThrough);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");

A következő további paraméterek továbbíthatók a Meta Llama-modelleknek:

Név Leírás Típus
n Hány befejezést kell létrehozni az egyes kérésekhez. Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
best_of Létrehozza best_of kiszolgálóoldali befejezéseket, és a legjobbat adja vissza (a legkisebb naplós valószínűséggel rendelkezőt tokenenként). Az eredmények nem streamelhetők. A best_of na jelölt befejezések számát szabályozza, az n pedig azt határozza meg, hogy hányat kell visszaadni – best_of nagyobbnak kell lennie.n Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
logprobs Egy szám, amely azt jelzi, hogy a naplóprobok legvalószínűbb jogkivonatai és a kiválasztott tokenek napló valószínűségét tartalmazzák. Ha például a logprobs értéke 10, az API a 10 legvalószínűbb token listáját adja vissza. Az API mindig visszaadja a mintául szolgáló jogkivonat naplóprobját, így akár logprobs+1 elemek is lehetnek a válaszban. integer
ignore_eos Figyelmen kívül hagyja-e a EOS jogkivonatot, és folytassa-e a EOS jogkivonatok létrehozásának folytatását. boolean
use_beam_search Azt, hogy mintavételezés helyett sugárkeresést használjon-e. Ilyen esetben 1-nél nagyobbnak kell lennie, best_of a hőmérsékletnek pedig 0-nak kell lennie. boolean
stop_token_ids Azon jogkivonatok azonosítóinak listája, amelyek létrehozásakor leállítja a további jogkivonat-létrehozást. A visszaadott kimenet a leállítási jogkivonatokat tartalmazza, kivéve, ha a leállítási jogkivonatok speciális jogkivonatok. array
skip_special_tokens Speciális jogkivonatok kihagyása a kimenetben. boolean

Tartalombiztonság alkalmazása

Az Azure AI-modell következtetési API-ja támogatja az Azure AI-tartalombiztonságot. Ha bekapcsolt Azure AI-tartalombiztonsággal rendelkező üzembe helyezéseket használ, 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 bemutatja, hogyan kezelheti az eseményeket, amikor a modell káros tartalmat észlel a bemeneti parancssorban, és engedélyezve van a tartalombiztonság.

try
{
    requestOptions = new ChatCompletionsOptions()
    {
        Messages = {
            new ChatRequestSystemMessage("You are an AI assistant that helps people find information."),
            new ChatRequestUserMessage(
                "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
            ),
        },
    };

    response = client.Complete(requestOptions);
    Console.WriteLine(response.Value.Choices[0].Message.Content);
}
catch (RequestFailedException ex)
{
    if (ex.ErrorCode == "content_filter")
    {
        Console.WriteLine($"Your query has trigger Azure Content Safety: {ex.Message}");
    }
    else
    {
        throw;
    }
}

Tipp.

Az Azure AI tartalombiztonsági beállításainak konfigurálásáról és szabályozásáról az Azure AI tartalombiztonsági dokumentációjában olvashat bővebben.

Feljegyzés

Az Azure AI tartalombiztonsága csak kiszolgáló nélküli API-végpontként üzembe helyezett modellek esetén érhető el.

Meta Llama csevegőmodellek

A Meta Llama csevegőmodelljei a következő modelleket tartalmazzák:

A Meta Llama 3.1 többnyelvű nagy nyelvi modellek (LLM-ek) gyűjteménye előre betanított és utasításokkal hangolt generatív modellek gyűjteménye 8B, 70B és 405B méretben (szöveg/szöveg ki). A Láma 3.1 utasítással hangolt csak szöveges modellek (8B, 70B, 405B) többnyelvű párbeszédes használati esetekre vannak optimalizálva, és felülmúlják a rendelkezésre álló nyílt forráskódú és zárt csevegési modelleket a gyakori iparági teljesítménymutatókon.

A következő modellek állnak rendelkezésre:

Előfeltételek

A Meta Llama-modellek Azure AI Studióval való használatához a következő előfeltételekre van szükség:

Modell üzembe helyezése

Üzembe helyezés kiszolgáló nélküli API-kban

A Meta Llama csevegőmodellek üzembe helyezhetők a kiszolgáló nélküli API-végpontokon használatalapú fizetéses számlázással. Ez a fajta üzembe helyezés lehetővé teszi a modellek API-ként való használatát anélkül, hogy az előfizetésében üzemelteti őket, miközben megtartja a vállalati biztonságot és megfelelőséget, amire a szervezeteknek szükségük van.

A kiszolgáló nélküli API-végponton való üzembe helyezéshez nem szükséges kvóta az előfizetésből. Ha a modell még nincs üzembe helyezve, használja az Azure AI Studiót, a Pythonhoz készült Azure Machine Learning SDK-t, az Azure CLI-t vagy az ARM-sablonokat a modell kiszolgáló nélküli API-ként való üzembe helyezéséhez.

Üzembe helyezés saját üzemeltetésű felügyelt számításban

A Meta Llama-modellek üzembe helyezhetők a saját üzemeltetésű felügyelt következtetési megoldásban, amely lehetővé teszi a modell kiszolgálásának testreszabását és szabályozását.

Egy saját üzemeltetésű felügyelt számítás üzembe helyezéséhez elegendő kvótával kell rendelkeznie az előfizetésben. Ha nem rendelkezik elegendő kvótával, használhatja az ideiglenes kvótahozzáférést a megosztott kvótát használni kívánt lehetőség kiválasztásával, és tudomásul veszem, hogy a végpont 168 órán belül törlődik.

REST-ügyfél

Az Azure AI-modell következtetési API-val üzembe helyezett modellek bármely REST-ügyfél használatával felhasználhatók. A REST-ügyfél használatához a következő előfeltételekre van szükség:

  • A kérések létrehozásához meg kell adnia a végpont URL-címét. A végpont URL-címe az űrlap, https://your-host-name.your-azure-region.inference.ai.azure.comahol your-host-name`` is your unique model deployment host name and az Azure-régió az az Azure-régió, ahol a modell üzembe van helyezve (például eastus2).
  • A modell üzembe helyezési és hitelesítési beállításaitól függően szüksége van egy kulcsra a szolgáltatáson való hitelesítéshez, vagy a Microsoft Entra-azonosító hitelesítő adataihoz. A kulcs egy 32 karakterből áll.

Csevegés befejezésének használata

Ebben a szakaszban az Azure AI-modell következtetési API-jával cseveghet egy csevegés befejezései modellel.

Tipp.

Az Azure AI-modell következtetési API-ja lehetővé teszi, hogy az Azure AI Studióban üzembe helyezett legtöbb modellel ugyanazzal a kóddal és struktúrával beszéljen, beleértve a Meta Llama csevegőmodelleket is.

Ügyfél létrehozása a modell használatához

Először hozza létre az ügyfelet a modell használatához. Az alábbi kód egy környezeti változókban tárolt végponti URL-címet és kulcsot használ.

Amikor a modellt egy saját üzemeltetésű online végponton helyezi üzembe a Microsoft Entra ID támogatásával, az alábbi kódrészlettel hozhat létre egy ügyfelet.

Feljegyzés

A kiszolgáló nélküli API-végpontok jelenleg nem támogatják a Microsoft Entra ID hitelesítéshez való használatát.

A modell képességeinek lekérése

Az /info útvonal a végponton üzembe helyezett modell adatait adja vissza. Adja vissza a modell adatait a következő metódus meghívásával:

GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json

A válasz a következő:

{
    "model_name": "Meta-Llama-3.1-405B-Instruct",
    "model_type": "chat-completions",
    "model_provider_name": "Meta"
}

Csevegés befejezésére vonatkozó kérés létrehozása

Az alábbi példa bemutatja, hogyan hozhat létre alapszintű csevegés-befejezési kérelmet a modellnek.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ]
}

A válasz a következő, ahol láthatja a modell használati statisztikáit:

{
    "id": "0a1234b5de6789f01gh2i345j6789klm",
    "object": "chat.completion",
    "created": 1718726686,
    "model": "Meta-Llama-3.1-405B-Instruct",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
                "tool_calls": null
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

usage A válasz szakaszában megtekintheti a parancssorhoz használt jogkivonatok számát, a létrehozott jogkivonatok teljes számát és a befejezéshez használt tokenek számát.

Tartalom streamelése

Alapértelmezés szerint a befejezési API egyetlen válaszban adja vissza a teljes generált tartalmat. Ha hosszú befejezéseket hoz létre, a válaszra való várakozás több másodpercet is igénybe vehet.

Streamelheti a tartalmat, hogy megkapja a létrehozás közben. A streamelési tartalom lehetővé teszi a befejezés feldolgozását, amint a tartalom elérhetővé válik. Ez a mód egy olyan objektumot ad vissza, amely a választ csak a kiszolgáló által küldött eseményekként küldi vissza. Az üzenetmező helyett bontsa ki az adattömböket a delta mezőből.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "stream": true,
    "temperature": 0,
    "top_p": 1,
    "max_tokens": 2048
}

Vizualizálhatja, hogyan hozza létre a stream a tartalmat:

{
    "id": "23b54589eba14564ad8a2e6978775a39",
    "object": "chat.completion.chunk",
    "created": 1718726371,
    "model": "Meta-Llama-3.1-405B-Instruct",
    "choices": [
        {
            "index": 0,
            "delta": {
                "role": "assistant",
                "content": ""
            },
            "finish_reason": null,
            "logprobs": null
        }
    ]
}

A stream utolsó üzenete be van finish_reason állítva, jelezve a létrehozási folyamat leállításának okát.

{
    "id": "23b54589eba14564ad8a2e6978775a39",
    "object": "chat.completion.chunk",
    "created": 1718726371,
    "model": "Meta-Llama-3.1-405B-Instruct",
    "choices": [
        {
            "index": 0,
            "delta": {
                "content": ""
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

A következtetési ügyfél által támogatott további paraméterek megismerése

Ismerje meg a következtetési ügyfélben megadható egyéb paramétereket. Az összes támogatott paraméter és azok dokumentációjának teljes listáját az Azure AI Model Inference API-referencia tartalmazza.

{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "presence_penalty": 0.1,
    "frequency_penalty": 0.8,
    "max_tokens": 2048,
    "stop": ["<|endoftext|>"],
    "temperature" :0,
    "top_p": 1,
    "response_format": { "type": "text" }
}
{
    "id": "0a1234b5de6789f01gh2i345j6789klm",
    "object": "chat.completion",
    "created": 1718726686,
    "model": "Meta-Llama-3.1-405B-Instruct",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
                "tool_calls": null
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

Figyelmeztetés

A metaláma-modellek nem támogatják a JSON-kimenet formázását (response_format = { "type": "json_object" }). Mindig megkérheti a modellt, hogy hozzon létre JSON-kimeneteket. Az ilyen kimenetek azonban nem garantáltan érvényesek JSON-nak.

Ha olyan paramétert szeretne átadni, amely nem szerepel a támogatott paraméterek listájában, további paraméterekkel továbbíthatja azt a mögöttes modellnek. Lásd: További paraméterek átadása a modellnek.

További paraméterek átadása a modellnek

Az Azure AI Model Inference API-val további paramétereket adhat át a modellnek. Az alábbi példakód bemutatja, hogyan adhatja át a plusz paramétert logprobs a modellnek.

Mielőtt további paramétereket ad át az Azure AI-modell következtetési API-jának, győződjön meg arról, hogy a modell támogatja ezeket az extra paramétereket. Amikor a kérést a mögöttes modellnek küldi el, a fejlécet extra-parameters a rendszer átadja a modellnek az értékkel pass-through. Ez az érték arra utasítja a végpontot, hogy adja át a további paramétereket a modellnek. Az extra paraméterek használata a modellel nem garantálja, hogy a modell ténylegesen képes kezelni őket. A modell dokumentációjában megismerheti, hogy mely további paraméterek támogatottak.

POST /chat/completions HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
extra-parameters: pass-through
{
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "How many languages are in the world?"
        }
    ],
    "logprobs": true
}

A következő további paraméterek továbbíthatók a Meta Llama csevegőmodelljeinek:

Név Leírás Típus
n Hány befejezést kell létrehozni az egyes kérésekhez. Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
best_of Létrehozza best_of kiszolgálóoldali befejezéseket, és a legjobbat adja vissza (a legkisebb naplós valószínűséggel rendelkezőt tokenenként). Az eredmények nem streamelhetők. A best_of na jelölt befejezések számát szabályozza, az n pedig azt határozza meg, hogy hányat kell visszaadni – best_of nagyobbnak kell lennie.n Megjegyzés: Mivel ez a paraméter sok befejezést generál, gyorsan felhasználhatja a jogkivonatkvótát. integer
logprobs Egy szám, amely azt jelzi, hogy a naplóprobok legvalószínűbb jogkivonatai és a kiválasztott tokenek napló valószínűségét tartalmazzák. Ha például a logprobs értéke 10, az API a 10 legvalószínűbb token listáját adja vissza. Az API mindig visszaadja a mintául szolgáló jogkivonat naplóprobját, így akár logprobs+1 elemek is lehetnek a válaszban. integer
ignore_eos Figyelmen kívül hagyja-e a EOS jogkivonatot, és folytassa-e a EOS jogkivonatok létrehozásának folytatását. boolean
use_beam_search Azt, hogy mintavételezés helyett sugárkeresést használjon-e. Ilyen esetben 1-nél nagyobbnak kell lennie, best_of a hőmérsékletnek pedig 0-nak kell lennie. boolean
stop_token_ids Azon jogkivonatok azonosítóinak listája, amelyek létrehozásakor leállítja a további jogkivonat-létrehozást. A visszaadott kimenet a leállítási jogkivonatokat tartalmazza, kivéve, ha a leállítási jogkivonatok speciális jogkivonatok. array
skip_special_tokens Speciális jogkivonatok kihagyása a kimenetben. boolean

Tartalombiztonság alkalmazása

Az Azure AI-modell következtetési API-ja támogatja az Azure AI-tartalombiztonságot. Ha bekapcsolt Azure AI-tartalombiztonsággal rendelkező üzembe helyezéseket használ, 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 bemutatja, hogyan kezelheti az eseményeket, amikor a modell káros tartalmat észlel a bemeneti parancssorban, és engedélyezve van a tartalombiztonság.

{
    "messages": [
        {
            "role": "system",
            "content": "You are an AI assistant that helps people find information."
        },
                {
            "role": "user",
            "content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
        }
    ]
}
{
    "error": {
        "message": "The response was filtered due to the prompt triggering Microsoft's content management policy. Please modify your prompt and retry.",
        "type": null,
        "param": "prompt",
        "code": "content_filter",
        "status": 400
    }
}

Tipp.

Az Azure AI tartalombiztonsági beállításainak konfigurálásáról és szabályozásáról az Azure AI tartalombiztonsági dokumentációjában olvashat bővebben.

Feljegyzés

Az Azure AI tartalombiztonsága csak kiszolgáló nélküli API-végpontként üzembe helyezett modellek esetén érhető el.

További következtetési példák

A Meta Llama-modellek használatára további példákat az alábbi példákban és oktatóanyagokban talál:

Leírás Nyelv Minta
CURL-kérés Bash Láncszem
Azure AI-következtetési csomag JavaScripthez JavaScript Láncszem
Azure AI-következtetési csomag Pythonhoz Python Láncszem
Python-webkérelmek Python Láncszem
OpenAI SDK (kísérleti) Python Láncszem
LangChain Python Láncszem
LiteLLM Python Láncszem

A kiszolgáló nélküli API-végpontként üzembe helyezett Meta Llama-modellek költség- és kvótaalapú szempontjai

A kvóta kezelése üzemelő példányonként történik. Minden üzemelő példányhoz 200 000 token/perc sebességkorlát és percenként 1000 API-kérés tartozik. Jelenleg azonban modellenként és projektenként csak egy telepítésre van lehetőség. Lépjen kapcsolatba a Microsoft Azure ügyfélszolgálatával, ha az aktuális díjszabási korlátok nem elegendőek az Ön forgatókönyveihez.

A kiszolgáló nélküli API-ként üzembe helyezett metaláma-modelleket a Meta az Azure Marketplace-en keresztül kínálja, és integrálva van az Azure AI Studióval használatra. A modell üzembe helyezésekor megtalálja az Azure Marketplace díjszabását.

Minden alkalommal, amikor egy projekt előfizet egy adott ajánlatra az Azure Marketplace-ről, egy új erőforrás jön létre a használathoz kapcsolódó költségek nyomon követéséhez. Ugyanazt az erőforrást használja a következtetéshez kapcsolódó költségek nyomon követésére; azonban több mérőeszköz is rendelkezésre áll az egyes forgatókönyvek egymástól függetlenül történő nyomon követéséhez.

A költségek nyomon követéséről további információt az Azure Marketplace-en kínált modellek költségeinek monitorozása című témakörben talál.

Költség- és kvótaalapú szempontok a felügyelt számításhoz üzembe helyezett Meta Láma-modellekhez

A felügyelt számításhoz üzembe helyezett metaláma-modellek számlázása a társított számítási példány alapóráján alapul. A számítási példány költségét a példány mérete, a futó példányok száma és a futtatás időtartama határozza meg.

Érdemes alacsony példányszámmal kezdeni, és igény szerint felskálázni. A számítási példány költségeit az Azure Portalon követheti nyomon.