Bagikan melalui


Cara menggunakan keluarga model Meta Llama

Penting

Beberapa fitur yang dijelaskan dalam artikel ini mungkin hanya tersedia dalam pratinjau. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan kami tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Dalam artikel ini, Anda mempelajari tentang keluarga model Meta Llama dan cara menggunakannya. Model dan alat Meta Llama adalah kumpulan teks AI dan model penalaran gambar generatif yang telah dilatih dan disempurnakan - mulai dari SLM (1B, Model Dasar dan Instruksi 3B) untuk inferensi perangkat dan tepi - hingga LLM ukuran menengah (model Dasar dan Instruksi 7B, 8B dan 70B) dan model berperforma tinggi seperti Meta Llama 3,1 405B Instruksikan untuk pembuatan data sintetis dan kasus penggunaan penyulingan.

Tip

Lihat pengumuman kami tentang model keluarga Meta Llama 3.2 yang tersedia sekarang di Azure AI Model Catalog melalui blog Meta dan Blog Komunitas Teknologi Microsoft.

Keluarga model Meta Llama

Keluarga model Meta Llama mencakup model berikut:

Koleksi LLAMA 3.2 dari SLM dan model penalaran gambar sekarang tersedia. Segera hadir, Llama 3.2 11B Vision Instruct dan Llama 3.2 90B Vision Instruct akan tersedia sebagai titik akhir API tanpa server melalui Models-as-a-Service. Mulai hari ini, model berikut akan tersedia untuk penyebaran melalui komputasi terkelola:

  • Llama 3.2 1B
  • Llama 3.2 3B
  • Instruksi Llama 3.2 1B
  • Instruksi Llama 3.2 3B
  • Llama Guard 3 1B
  • Llama Guard 11B Vision
  • Instruksi Visi Llama 3.2 11B
  • Llama 3.2 90B Vision Instruct tersedia untuk penyebaran komputasi terkelola.

Prasyarat

Untuk menggunakan model Meta Llama dengan Azure AI Studio, Anda memerlukan prasyarat berikut:

Penyebaran model

Penyebaran ke API tanpa server

Model Meta Llama dapat disebarkan ke titik akhir API tanpa server dengan penagihan bayar sesuai penggunaan. Penyebaran semacam ini menyediakan cara untuk menggunakan model sebagai API tanpa menghostingnya di langganan Anda, sambil menjaga keamanan dan kepatuhan perusahaan yang dibutuhkan organisasi.

Penyebaran ke titik akhir API tanpa server tidak memerlukan kuota dari langganan Anda. Jika model Anda belum disebarkan, gunakan Azure AI Studio, Azure Pembelajaran Mesin SDK untuk Python, Azure CLI, atau templat ARM untuk menyebarkan model sebagai API tanpa server.

Penyebaran ke komputasi terkelola yang dihost sendiri

Model Meta Llama dapat disebarkan ke solusi inferensi terkelola yang dihost sendiri, yang memungkinkan Anda menyesuaikan dan mengontrol semua detail tentang bagaimana model disajikan.

Untuk penyebaran ke komputasi terkelola yang dihost sendiri, Anda harus memiliki kuota yang cukup dalam langganan Anda. Jika Anda tidak memiliki cukup kuota yang tersedia, Anda dapat menggunakan akses kuota sementara kami dengan memilih opsi Saya ingin menggunakan kuota bersama dan saya mengakui bahwa titik akhir ini akan dihapus dalam 168 jam.

Paket inferensi terinstal

Anda dapat menggunakan prediksi dari model ini dengan menggunakan azure-ai-inference paket dengan Python. Untuk menginstal paket ini, Anda memerlukan prasyarat berikut:

  • Python 3.8 atau yang lebih baru terinstal, termasuk pip.
  • URL titik akhir. Untuk membuat pustaka klien, Anda perlu meneruskan URL titik akhir. URL titik akhir memiliki formulir https://your-host-name.your-azure-region.inference.ai.azure.com, di mana your-host-name adalah nama host penyebaran model unik Anda dan your-azure-region merupakan wilayah Azure tempat model disebarkan (misalnya, eastus2).
  • Bergantung pada penyebaran model dan preferensi autentikasi, Anda memerlukan kunci untuk mengautentikasi terhadap layanan, atau kredensial ID Microsoft Entra. Kuncinya adalah string 32 karakter.

Setelah Anda memiliki prasyarat ini, instal paket inferensi Azure AI dengan perintah berikut:

pip install azure-ai-inference

Baca selengkapnya tentang paket dan referensi inferensi Azure AI.

Bekerja dengan penyelesaian obrolan

Di bagian ini, Anda menggunakan API inferensi model Azure AI dengan model penyelesaian obrolan untuk obrolan.

Tip

API inferensi model Azure AI memungkinkan Anda berbicara dengan sebagian besar model yang disebarkan di Azure AI Studio dengan kode dan struktur yang sama, termasuk model Meta Llama Instruct - hanya teks atau model penalaran gambar.

Membuat klien untuk menggunakan model

Pertama, buat klien untuk menggunakan model. Kode berikut menggunakan URL titik akhir dan kunci yang disimpan dalam variabel lingkungan.

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"]),
)

Saat Anda menyebarkan model ke titik akhir online yang dihost sendiri dengan dukungan ID Microsoft Entra, Anda dapat menggunakan cuplikan kode berikut untuk membuat klien.

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

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

Catatan

Saat ini, titik akhir API tanpa server tidak mendukung penggunaan ID Microsoft Entra untuk autentikasi.

Mendapatkan kemampuan model

Rute /info mengembalikan informasi tentang model yang disebarkan ke titik akhir. Kembalikan informasi model dengan memanggil metode berikut:

model_info = client.get_model_info()

Responsnya adalah sebagai berikut:

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

Membuat permintaan penyelesaian obrolan

Contoh berikut menunjukkan bagaimana Anda dapat membuat permintaan penyelesaian obrolan dasar ke model.

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?"),
    ],
)

Responsnya adalah sebagai berikut, di mana Anda dapat melihat statistik penggunaan model:

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

Periksa bagian usage dalam respons untuk melihat jumlah token yang digunakan untuk perintah, jumlah total token yang dihasilkan, dan jumlah token yang digunakan untuk penyelesaian.

Streaming konten

Secara default, API penyelesaian mengembalikan seluruh konten yang dihasilkan dalam satu respons. Jika Anda menghasilkan penyelesaian yang lama, menunggu respons dapat memakan waktu banyak detik.

Anda dapat melakukan streaming konten untuk mendapatkannya saat sedang dibuat. Konten streaming memungkinkan Anda untuk mulai memproses penyelesaian saat konten tersedia. Mode ini mengembalikan objek yang mengalirkan kembali respons sebagai peristiwa yang dikirim server khusus data. Ekstrak potongan dari bidang delta, bukan bidang pesan.

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,
)

Untuk melakukan streaming penyelesaian, atur stream=True saat Anda memanggil model.

Untuk memvisualisasikan output, tentukan fungsi pembantu untuk mencetak aliran.

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="")

Anda dapat memvisualisasikan cara streaming menghasilkan konten:

print_stream(result)

Jelajahi lebih banyak parameter yang didukung oleh klien inferensi

Jelajahi parameter lain yang dapat Anda tentukan di klien inferensi. Untuk daftar lengkap semua parameter yang didukung dan dokumentasi yang sesuai, lihat Referensi API Inferensi Model Azure AI.

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() },
)

Peringatan

Model Meta Llama tidak mendukung pemformatan output JSON (response_format = { "type": "json_object" }). Anda selalu dapat meminta model untuk menghasilkan output JSON. Namun, output tersebut tidak dijamin sebagai JSON yang valid.

Jika Anda ingin meneruskan parameter yang tidak ada dalam daftar parameter yang didukung, Anda dapat meneruskannya ke model yang mendasar menggunakan parameter tambahan. Lihat Meneruskan parameter tambahan ke model.

Meneruskan parameter tambahan ke model

Azure AI Model Inference API memungkinkan Anda meneruskan parameter tambahan ke model. Contoh kode berikut menunjukkan cara meneruskan parameter logprobs tambahan ke model.

Sebelum Anda meneruskan parameter tambahan ke API inferensi model Azure AI, pastikan model Anda mendukung parameter tambahan tersebut. Ketika permintaan dibuat ke model yang mendasar, header extra-parameters diteruskan ke model dengan nilai pass-through. Nilai ini memberi tahu titik akhir untuk meneruskan parameter tambahan ke model. Penggunaan parameter tambahan dengan model tidak menjamin bahwa model benar-benar dapat menanganinya. Baca dokumentasi model untuk memahami parameter tambahan mana yang didukung.

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

Parameter tambahan berikut dapat diteruskan ke model Meta Llama:

Nama Deskripsi Jenis
n Berapa banyak penyelesaian yang dihasilkan untuk setiap perintah. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
best_of Menghasilkan penyelesaian best_of sisi server dan mengembalikan yang terbaik (yang dengan probabilitas log terendah per token). Hasil tidak dapat dialirkan. Saat digunakan dengan n, best_of mengontrol jumlah penyelesaian kandidat dan n menentukan berapa banyak yang akan dikembalikan—best_of harus lebih besar dari n. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
logprobs Angka yang menunjukkan untuk menyertakan probabilitas log pada token logprobs yang kemungkinan besar dan token yang dipilih. Misalnya, jika logprobs adalah 10, API mengembalikan daftar 10 token yang paling mungkin. API akan selalu mengembalikan logprob token sampel, sehingga mungkin ada hingga elemen logprobs+1 dalam respons. integer
ignore_eos Apakah akan mengabaikan EOS token dan terus menghasilkan token setelah EOS token dihasilkan. boolean
use_beam_search Apakah akan menggunakan pencarian sinar alih-alih pengambilan sampel. Dalam kasus seperti itu, best_of harus lebih besar dari 1 dan suhu harus 0. boolean
stop_token_ids Daftar ID untuk token yang, saat dibuat, menghentikan pembuatan token lebih lanjut. Output yang dikembalikan berisi token berhenti kecuali token berhenti adalah token khusus. array
skip_special_tokens Apakah akan melewati token khusus dalam output. boolean

Menerapkan keamanan konten

API inferensi model Azure AI mendukung keamanan konten Azure AI. Saat Anda menggunakan penyebaran dengan keamanan konten Azure AI diaktifkan, input dan output melewati ansambel model klasifikasi yang bertujuan mendeteksi dan mencegah output konten berbahaya. Sistem pemfilteran konten mendeteksi dan mengambil tindakan pada kategori tertentu dari konten yang berpotensi berbahaya dalam perintah input dan penyelesaian output.

Contoh berikut menunjukkan cara menangani peristiwa saat model mendeteksi konten berbahaya dalam perintah input dan keamanan konten diaktifkan.

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

Tip

Untuk mempelajari selengkapnya tentang cara mengonfigurasi dan mengontrol pengaturan keamanan konten Azure AI, periksa dokumentasi keamanan konten Azure AI.

Catatan

Keamanan konten Azure AI hanya tersedia untuk model yang disebarkan sebagai titik akhir API tanpa server.

Model Meta Llama

Model Meta Llama mencakup model berikut:

Koleksi Meta Llama 3.1 dari model bahasa besar multibahasa (LLM) adalah kumpulan model generatif yang telah dilatih dan disetel instruksi dalam ukuran 8B, 70B, dan 405B (teks masuk/teks keluar). Model teks yang disetel instruksi Llama 3.1 (8B, 70B, 405B) dioptimalkan untuk kasus penggunaan dialog multibahasa dan mengungguli banyak model obrolan sumber terbuka dan tertutup yang tersedia pada tolok ukur industri umum.

Model berikut tersedia:

Prasyarat

Untuk menggunakan model Meta Llama dengan Azure AI Studio, Anda memerlukan prasyarat berikut:

Penyebaran model

Penyebaran ke API tanpa server

Model Meta Llama dapat disebarkan ke titik akhir API tanpa server dengan penagihan bayar sesuai penggunaan. Penyebaran semacam ini menyediakan cara untuk menggunakan model sebagai API tanpa menghostingnya di langganan Anda, sambil menjaga keamanan dan kepatuhan perusahaan yang dibutuhkan organisasi.

Penyebaran ke titik akhir API tanpa server tidak memerlukan kuota dari langganan Anda. Jika model Anda belum disebarkan, gunakan Azure AI Studio, Azure Pembelajaran Mesin SDK untuk Python, Azure CLI, atau templat ARM untuk menyebarkan model sebagai API tanpa server.

Penyebaran ke komputasi terkelola yang dihost sendiri

Model Meta Llama dapat disebarkan ke solusi inferensi terkelola yang dihost sendiri, yang memungkinkan Anda menyesuaikan dan mengontrol semua detail tentang bagaimana model disajikan.

Untuk penyebaran ke komputasi terkelola yang dihost sendiri, Anda harus memiliki kuota yang cukup dalam langganan Anda. Jika Anda tidak memiliki cukup kuota yang tersedia, Anda dapat menggunakan akses kuota sementara kami dengan memilih opsi Saya ingin menggunakan kuota bersama dan saya mengakui bahwa titik akhir ini akan dihapus dalam 168 jam.

Paket inferensi terinstal

Anda dapat menggunakan prediksi dari model ini dengan menggunakan @azure-rest/ai-inference paket dari npm. Untuk menginstal paket ini, Anda memerlukan prasyarat berikut:

  • Versi LTS dengan Node.js npm.
  • URL titik akhir. Untuk membuat pustaka klien, Anda perlu meneruskan URL titik akhir. URL titik akhir memiliki formulir https://your-host-name.your-azure-region.inference.ai.azure.com, di mana your-host-name adalah nama host penyebaran model unik Anda dan your-azure-region merupakan wilayah Azure tempat model disebarkan (misalnya, eastus2).
  • Bergantung pada penyebaran model dan preferensi autentikasi, Anda memerlukan kunci untuk mengautentikasi terhadap layanan, atau kredensial ID Microsoft Entra. Kuncinya adalah string 32 karakter.

Setelah Anda memiliki prasyarat ini, instal pustaka Azure Inference untuk JavaScript dengan perintah berikut:

npm install @azure-rest/ai-inference

Bekerja dengan penyelesaian obrolan

Di bagian ini, Anda menggunakan API inferensi model Azure AI dengan model penyelesaian obrolan untuk obrolan.

Tip

API inferensi model Azure AI memungkinkan Anda berbicara dengan sebagian besar model yang disebarkan di Azure AI Studio dengan kode dan struktur yang sama, termasuk model Meta Llama.

Membuat klien untuk menggunakan model

Pertama, buat klien untuk menggunakan model. Kode berikut menggunakan URL titik akhir dan kunci yang disimpan dalam variabel lingkungan.

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)
);

Saat Anda menyebarkan model ke titik akhir online yang dihost sendiri dengan dukungan ID Microsoft Entra, Anda dapat menggunakan cuplikan kode berikut untuk membuat klien.

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()
);

Catatan

Saat ini, titik akhir API tanpa server tidak mendukung penggunaan ID Microsoft Entra untuk autentikasi.

Mendapatkan kemampuan model

Rute /info mengembalikan informasi tentang model yang disebarkan ke titik akhir. Kembalikan informasi model dengan memanggil metode berikut:

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

Responsnya adalah sebagai berikut:

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

Membuat permintaan penyelesaian obrolan

Contoh berikut menunjukkan bagaimana Anda dapat membuat permintaan penyelesaian obrolan dasar ke model.

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,
    }
});

Responsnya adalah sebagai berikut, di mana Anda dapat melihat statistik penggunaan model:

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

Periksa bagian usage dalam respons untuk melihat jumlah token yang digunakan untuk perintah, jumlah total token yang dihasilkan, dan jumlah token yang digunakan untuk penyelesaian.

Streaming konten

Secara default, API penyelesaian mengembalikan seluruh konten yang dihasilkan dalam satu respons. Jika Anda menghasilkan penyelesaian yang lama, menunggu respons dapat memakan waktu banyak detik.

Anda dapat melakukan streaming konten untuk mendapatkannya saat sedang dibuat. Konten streaming memungkinkan Anda untuk mulai memproses penyelesaian saat konten tersedia. Mode ini mengembalikan objek yang mengalirkan kembali respons sebagai peristiwa yang dikirim server khusus data. Ekstrak potongan dari bidang delta, bukan bidang pesan.

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();

Untuk melakukan streaming penyelesaian, gunakan .asNodeStream() saat Anda memanggil model.

Anda dapat memvisualisasikan cara streaming menghasilkan konten:

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 ?? "");
    }
}

Jelajahi lebih banyak parameter yang didukung oleh klien inferensi

Jelajahi parameter lain yang dapat Anda tentukan di klien inferensi. Untuk daftar lengkap semua parameter yang didukung dan dokumentasi yang sesuai, lihat Referensi API Inferensi Model Azure AI.

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" },
    }
});

Peringatan

Model Meta Llama tidak mendukung pemformatan output JSON (response_format = { "type": "json_object" }). Anda selalu dapat meminta model untuk menghasilkan output JSON. Namun, output tersebut tidak dijamin sebagai JSON yang valid.

Jika Anda ingin meneruskan parameter yang tidak ada dalam daftar parameter yang didukung, Anda dapat meneruskannya ke model yang mendasar menggunakan parameter tambahan. Lihat Meneruskan parameter tambahan ke model.

Meneruskan parameter tambahan ke model

Azure AI Model Inference API memungkinkan Anda meneruskan parameter tambahan ke model. Contoh kode berikut menunjukkan cara meneruskan parameter logprobs tambahan ke model.

Sebelum Anda meneruskan parameter tambahan ke API inferensi model Azure AI, pastikan model Anda mendukung parameter tambahan tersebut. Ketika permintaan dibuat ke model yang mendasar, header extra-parameters diteruskan ke model dengan nilai pass-through. Nilai ini memberi tahu titik akhir untuk meneruskan parameter tambahan ke model. Penggunaan parameter tambahan dengan model tidak menjamin bahwa model benar-benar dapat menanganinya. Baca dokumentasi model untuk memahami parameter tambahan mana yang didukung.

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
    }
});

Parameter tambahan berikut dapat diteruskan ke model Meta Llama:

Nama Deskripsi Jenis
n Berapa banyak penyelesaian yang dihasilkan untuk setiap perintah. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
best_of Menghasilkan penyelesaian best_of sisi server dan mengembalikan yang terbaik (yang dengan probabilitas log terendah per token). Hasil tidak dapat dialirkan. Saat digunakan dengan n, best_of mengontrol jumlah penyelesaian kandidat dan n menentukan berapa banyak yang akan dikembalikan—best_of harus lebih besar dari n. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
logprobs Angka yang menunjukkan untuk menyertakan probabilitas log pada token logprobs yang kemungkinan besar dan token yang dipilih. Misalnya, jika logprobs adalah 10, API mengembalikan daftar 10 token yang paling mungkin. API akan selalu mengembalikan logprob token sampel, sehingga mungkin ada hingga elemen logprobs+1 dalam respons. integer
ignore_eos Apakah akan mengabaikan EOS token dan terus menghasilkan token setelah EOS token dihasilkan. boolean
use_beam_search Apakah akan menggunakan pencarian sinar alih-alih pengambilan sampel. Dalam kasus seperti itu, best_of harus lebih besar dari 1 dan suhu harus 0. boolean
stop_token_ids Daftar ID untuk token yang, saat dibuat, menghentikan pembuatan token lebih lanjut. Output yang dikembalikan berisi token berhenti kecuali token berhenti adalah token khusus. array
skip_special_tokens Apakah akan melewati token khusus dalam output. boolean

Menerapkan keamanan konten

API inferensi model Azure AI mendukung keamanan konten Azure AI. Saat Anda menggunakan penyebaran dengan keamanan konten Azure AI diaktifkan, input dan output melewati ansambel model klasifikasi yang bertujuan mendeteksi dan mencegah output konten berbahaya. Sistem pemfilteran konten mendeteksi dan mengambil tindakan pada kategori tertentu dari konten yang berpotensi berbahaya dalam perintah input dan penyelesaian output.

Contoh berikut menunjukkan cara menangani peristiwa saat model mendeteksi konten berbahaya dalam perintah input dan keamanan konten diaktifkan.

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;
        }
    }
}

Tip

Untuk mempelajari selengkapnya tentang cara mengonfigurasi dan mengontrol pengaturan keamanan konten Azure AI, periksa dokumentasi keamanan konten Azure AI.

Catatan

Keamanan konten Azure AI hanya tersedia untuk model yang disebarkan sebagai titik akhir API tanpa server.

Model Meta Llama

Model Meta Llama mencakup model berikut:

Koleksi Meta Llama 3.1 dari model bahasa besar multibahasa (LLM) adalah kumpulan model generatif yang telah dilatih dan disetel instruksi dalam ukuran 8B, 70B, dan 405B (teks masuk/teks keluar). Model teks yang disetel instruksi Llama 3.1 (8B, 70B, 405B) dioptimalkan untuk kasus penggunaan dialog multibahasa dan mengungguli banyak model sumber terbuka dan tertutup yang tersedia pada tolok ukur industri umum.

Model berikut tersedia:

Prasyarat

Untuk menggunakan model Meta Llama dengan Azure AI Studio, Anda memerlukan prasyarat berikut:

Penyebaran model

Penyebaran ke API tanpa server

Model Meta Llama dapat disebarkan ke titik akhir API tanpa server dengan penagihan bayar sesuai penggunaan. Penyebaran semacam ini menyediakan cara untuk menggunakan model sebagai API tanpa menghostingnya di langganan Anda, sambil menjaga keamanan dan kepatuhan perusahaan yang dibutuhkan organisasi.

Penyebaran ke titik akhir API tanpa server tidak memerlukan kuota dari langganan Anda. Jika model Anda belum disebarkan, gunakan Azure AI Studio, Azure Pembelajaran Mesin SDK untuk Python, Azure CLI, atau templat ARM untuk menyebarkan model sebagai API tanpa server.

Penyebaran ke komputasi terkelola yang dihost sendiri

Model Meta Llama dapat disebarkan ke solusi inferensi terkelola yang dihost sendiri, yang memungkinkan Anda menyesuaikan dan mengontrol semua detail tentang bagaimana model disajikan.

Untuk penyebaran ke komputasi terkelola yang dihost sendiri, Anda harus memiliki kuota yang cukup dalam langganan Anda. Jika Anda tidak memiliki cukup kuota yang tersedia, Anda dapat menggunakan akses kuota sementara kami dengan memilih opsi Saya ingin menggunakan kuota bersama dan saya mengakui bahwa titik akhir ini akan dihapus dalam 168 jam.

Paket inferensi terinstal

Anda dapat menggunakan prediksi dari model ini dengan menggunakan Azure.AI.Inference paket dari NuGet. Untuk menginstal paket ini, Anda memerlukan prasyarat berikut:

  • URL titik akhir. Untuk membuat pustaka klien, Anda perlu meneruskan URL titik akhir. URL titik akhir memiliki formulir https://your-host-name.your-azure-region.inference.ai.azure.com, di mana your-host-name adalah nama host penyebaran model unik Anda dan your-azure-region merupakan wilayah Azure tempat model disebarkan (misalnya, eastus2).
  • Bergantung pada penyebaran model dan preferensi autentikasi, Anda memerlukan kunci untuk mengautentikasi terhadap layanan, atau kredensial ID Microsoft Entra. Kuncinya adalah string 32 karakter.

Setelah Anda memiliki prasyarat ini, instal pustaka inferensi Azure AI dengan perintah berikut:

dotnet add package Azure.AI.Inference --prerelease

Anda juga dapat mengautentikasi dengan ID Microsoft Entra (sebelumnya Azure Active Directory). Untuk menggunakan penyedia info masuk yang disediakan dengan Azure SDK, instal Azure.Identity paket:

dotnet add package Azure.Identity

Impor namespace berikut:

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

Contoh ini juga menggunakan namespace berikut tetapi Anda mungkin tidak selalu membutuhkannya:

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

Bekerja dengan penyelesaian obrolan

Di bagian ini, Anda menggunakan API inferensi model Azure AI dengan model penyelesaian obrolan untuk obrolan.

Tip

API inferensi model Azure AI memungkinkan Anda berbicara dengan sebagian besar model yang disebarkan di Azure AI Studio dengan kode dan struktur yang sama, termasuk model obrolan Meta Llama.

Membuat klien untuk menggunakan model

Pertama, buat klien untuk menggunakan model. Kode berikut menggunakan URL titik akhir dan kunci yang disimpan dalam variabel lingkungan.

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

Saat Anda menyebarkan model ke titik akhir online yang dihost sendiri dengan dukungan ID Microsoft Entra, Anda dapat menggunakan cuplikan kode berikut untuk membuat klien.

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

Catatan

Saat ini, titik akhir API tanpa server tidak mendukung penggunaan ID Microsoft Entra untuk autentikasi.

Mendapatkan kemampuan model

Rute /info mengembalikan informasi tentang model yang disebarkan ke titik akhir. Kembalikan informasi model dengan memanggil metode berikut:

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

Responsnya adalah sebagai berikut:

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

Membuat permintaan penyelesaian obrolan

Contoh berikut menunjukkan bagaimana Anda dapat membuat permintaan penyelesaian obrolan dasar ke model.

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);

Responsnya adalah sebagai berikut, di mana Anda dapat melihat statistik penggunaan model:

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

Periksa bagian usage dalam respons untuk melihat jumlah token yang digunakan untuk perintah, jumlah total token yang dihasilkan, dan jumlah token yang digunakan untuk penyelesaian.

Streaming konten

Secara default, API penyelesaian mengembalikan seluruh konten yang dihasilkan dalam satu respons. Jika Anda menghasilkan penyelesaian yang lama, menunggu respons dapat memakan waktu banyak detik.

Anda dapat melakukan streaming konten untuk mendapatkannya saat sedang dibuat. Konten streaming memungkinkan Anda untuk mulai memproses penyelesaian saat konten tersedia. Mode ini mengembalikan objek yang mengalirkan kembali respons sebagai peristiwa yang dikirim server khusus data. Ekstrak potongan dari bidang delta, bukan bidang pesan.

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);
}

Untuk melakukan streaming penyelesaian, gunakan CompleteStreamingAsync metode saat Anda memanggil model. Perhatikan bahwa dalam contoh ini kita panggilan dibungkus dalam metode asinkron.

Untuk memvisualisasikan output, tentukan metode asinkron untuk mencetak aliran di konsol.

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);
        }
    }
}

Anda dapat memvisualisasikan cara streaming menghasilkan konten:

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

Jelajahi lebih banyak parameter yang didukung oleh klien inferensi

Jelajahi parameter lain yang dapat Anda tentukan di klien inferensi. Untuk daftar lengkap semua parameter yang didukung dan dokumentasi yang sesuai, lihat Referensi API Inferensi Model Azure AI.

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}");

Peringatan

Model Meta Llama tidak mendukung pemformatan output JSON (response_format = { "type": "json_object" }). Anda selalu dapat meminta model untuk menghasilkan output JSON. Namun, output tersebut tidak dijamin sebagai JSON yang valid.

Jika Anda ingin meneruskan parameter yang tidak ada dalam daftar parameter yang didukung, Anda dapat meneruskannya ke model yang mendasar menggunakan parameter tambahan. Lihat Meneruskan parameter tambahan ke model.

Meneruskan parameter tambahan ke model

Azure AI Model Inference API memungkinkan Anda meneruskan parameter tambahan ke model. Contoh kode berikut menunjukkan cara meneruskan parameter logprobs tambahan ke model.

Sebelum Anda meneruskan parameter tambahan ke API inferensi model Azure AI, pastikan model Anda mendukung parameter tambahan tersebut. Ketika permintaan dibuat ke model yang mendasar, header extra-parameters diteruskan ke model dengan nilai pass-through. Nilai ini memberi tahu titik akhir untuk meneruskan parameter tambahan ke model. Penggunaan parameter tambahan dengan model tidak menjamin bahwa model benar-benar dapat menanganinya. Baca dokumentasi model untuk memahami parameter tambahan mana yang didukung.

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}");

Parameter tambahan berikut dapat diteruskan ke model Meta Llama:

Nama Deskripsi Jenis
n Berapa banyak penyelesaian yang dihasilkan untuk setiap perintah. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
best_of Menghasilkan penyelesaian best_of sisi server dan mengembalikan yang terbaik (yang dengan probabilitas log terendah per token). Hasil tidak dapat dialirkan. Saat digunakan dengan n, best_of mengontrol jumlah penyelesaian kandidat dan n menentukan berapa banyak yang akan dikembalikan—best_of harus lebih besar dari n. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
logprobs Angka yang menunjukkan untuk menyertakan probabilitas log pada token logprobs yang kemungkinan besar dan token yang dipilih. Misalnya, jika logprobs adalah 10, API mengembalikan daftar 10 token yang paling mungkin. API akan selalu mengembalikan logprob token sampel, sehingga mungkin ada hingga elemen logprobs+1 dalam respons. integer
ignore_eos Apakah akan mengabaikan EOS token dan terus menghasilkan token setelah EOS token dihasilkan. boolean
use_beam_search Apakah akan menggunakan pencarian sinar alih-alih pengambilan sampel. Dalam kasus seperti itu, best_of harus lebih besar dari 1 dan suhu harus 0. boolean
stop_token_ids Daftar ID untuk token yang, saat dibuat, menghentikan pembuatan token lebih lanjut. Output yang dikembalikan berisi token berhenti kecuali token berhenti adalah token khusus. array
skip_special_tokens Apakah akan melewati token khusus dalam output. boolean

Menerapkan keamanan konten

API inferensi model Azure AI mendukung keamanan konten Azure AI. Saat Anda menggunakan penyebaran dengan keamanan konten Azure AI diaktifkan, input dan output melewati ansambel model klasifikasi yang bertujuan mendeteksi dan mencegah output konten berbahaya. Sistem pemfilteran konten mendeteksi dan mengambil tindakan pada kategori tertentu dari konten yang berpotensi berbahaya dalam perintah input dan penyelesaian output.

Contoh berikut menunjukkan cara menangani peristiwa saat model mendeteksi konten berbahaya dalam perintah input dan keamanan konten diaktifkan.

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;
    }
}

Tip

Untuk mempelajari selengkapnya tentang cara mengonfigurasi dan mengontrol pengaturan keamanan konten Azure AI, periksa dokumentasi keamanan konten Azure AI.

Catatan

Keamanan konten Azure AI hanya tersedia untuk model yang disebarkan sebagai titik akhir API tanpa server.

Model obrolan Meta Llama

Model obrolan Meta Llama mencakup model berikut:

Koleksi Meta Llama 3.1 dari model bahasa besar multibahasa (LLM) adalah kumpulan model generatif yang telah dilatih dan disetel instruksi dalam ukuran 8B, 70B, dan 405B (teks masuk/teks keluar). Model teks yang disetel instruksi Llama 3.1 (8B, 70B, 405B) dioptimalkan untuk kasus penggunaan dialog multibahasa dan mengungguli banyak model obrolan sumber terbuka dan tertutup yang tersedia pada tolok ukur industri umum.

Model berikut tersedia:

Prasyarat

Untuk menggunakan model Meta Llama dengan Azure AI Studio, Anda memerlukan prasyarat berikut:

Penyebaran model

Penyebaran ke API tanpa server

Model obrolan Meta Llama dapat disebarkan ke titik akhir API tanpa server dengan penagihan bayar sesuai penggunaan. Penyebaran semacam ini menyediakan cara untuk menggunakan model sebagai API tanpa menghostingnya di langganan Anda, sambil menjaga keamanan dan kepatuhan perusahaan yang dibutuhkan organisasi.

Penyebaran ke titik akhir API tanpa server tidak memerlukan kuota dari langganan Anda. Jika model Anda belum disebarkan, gunakan Azure AI Studio, Azure Pembelajaran Mesin SDK untuk Python, Azure CLI, atau templat ARM untuk menyebarkan model sebagai API tanpa server.

Penyebaran ke komputasi terkelola yang dihost sendiri

Model Meta Llama dapat disebarkan ke solusi inferensi terkelola yang dihost sendiri, yang memungkinkan Anda menyesuaikan dan mengontrol semua detail tentang bagaimana model disajikan.

Untuk penyebaran ke komputasi terkelola yang dihost sendiri, Anda harus memiliki kuota yang cukup dalam langganan Anda. Jika Anda tidak memiliki cukup kuota yang tersedia, Anda dapat menggunakan akses kuota sementara kami dengan memilih opsi Saya ingin menggunakan kuota bersama dan saya mengakui bahwa titik akhir ini akan dihapus dalam 168 jam.

Klien REST

Model yang disebarkan dengan API inferensi model Azure AI dapat digunakan menggunakan klien REST apa pun. Untuk menggunakan klien REST, Anda memerlukan prasyarat berikut:

  • Untuk membuat permintaan, Anda perlu meneruskan URL titik akhir. URL titik akhir memiliki formulir https://your-host-name.your-azure-region.inference.ai.azure.com, di mana your-host-name`` is your unique model deployment host name and wilayah-azure Anda'' adalah wilayah Azure tempat model disebarkan (misalnya, eastus2).
  • Bergantung pada penyebaran model dan preferensi autentikasi, Anda memerlukan kunci untuk mengautentikasi terhadap layanan, atau kredensial ID Microsoft Entra. Kuncinya adalah string 32 karakter.

Bekerja dengan penyelesaian obrolan

Di bagian ini, Anda menggunakan API inferensi model Azure AI dengan model penyelesaian obrolan untuk obrolan.

Tip

API inferensi model Azure AI memungkinkan Anda berbicara dengan sebagian besar model yang disebarkan di Azure AI Studio dengan kode dan struktur yang sama, termasuk model obrolan Meta Llama.

Membuat klien untuk menggunakan model

Pertama, buat klien untuk menggunakan model. Kode berikut menggunakan URL titik akhir dan kunci yang disimpan dalam variabel lingkungan.

Saat Anda menyebarkan model ke titik akhir online yang dihost sendiri dengan dukungan ID Microsoft Entra, Anda dapat menggunakan cuplikan kode berikut untuk membuat klien.

Catatan

Saat ini, titik akhir API tanpa server tidak mendukung penggunaan ID Microsoft Entra untuk autentikasi.

Mendapatkan kemampuan model

Rute /info mengembalikan informasi tentang model yang disebarkan ke titik akhir. Kembalikan informasi model dengan memanggil metode berikut:

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

Responsnya adalah sebagai berikut:

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

Membuat permintaan penyelesaian obrolan

Contoh berikut menunjukkan bagaimana Anda dapat membuat permintaan penyelesaian obrolan dasar ke model.

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

Responsnya adalah sebagai berikut, di mana Anda dapat melihat statistik penggunaan model:

{
    "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
    }
}

Periksa bagian usage dalam respons untuk melihat jumlah token yang digunakan untuk perintah, jumlah total token yang dihasilkan, dan jumlah token yang digunakan untuk penyelesaian.

Streaming konten

Secara default, API penyelesaian mengembalikan seluruh konten yang dihasilkan dalam satu respons. Jika Anda menghasilkan penyelesaian yang lama, menunggu respons dapat memakan waktu banyak detik.

Anda dapat melakukan streaming konten untuk mendapatkannya saat sedang dibuat. Konten streaming memungkinkan Anda untuk mulai memproses penyelesaian saat konten tersedia. Mode ini mengembalikan objek yang mengalirkan kembali respons sebagai peristiwa yang dikirim server khusus data. Ekstrak potongan dari bidang delta, bukan bidang pesan.

{
    "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
}

Anda dapat memvisualisasikan cara streaming menghasilkan konten:

{
    "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
        }
    ]
}

Pesan terakhir dalam aliran telah finish_reason ditetapkan, menunjukkan alasan proses pembuatan berhenti.

{
    "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
    }
}

Jelajahi lebih banyak parameter yang didukung oleh klien inferensi

Jelajahi parameter lain yang dapat Anda tentukan di klien inferensi. Untuk daftar lengkap semua parameter yang didukung dan dokumentasi yang sesuai, lihat Referensi API Inferensi Model Azure AI.

{
    "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
    }
}

Peringatan

Model Meta Llama tidak mendukung pemformatan output JSON (response_format = { "type": "json_object" }). Anda selalu dapat meminta model untuk menghasilkan output JSON. Namun, output tersebut tidak dijamin sebagai JSON yang valid.

Jika Anda ingin meneruskan parameter yang tidak ada dalam daftar parameter yang didukung, Anda dapat meneruskannya ke model yang mendasar menggunakan parameter tambahan. Lihat Meneruskan parameter tambahan ke model.

Meneruskan parameter tambahan ke model

Azure AI Model Inference API memungkinkan Anda meneruskan parameter tambahan ke model. Contoh kode berikut menunjukkan cara meneruskan parameter logprobs tambahan ke model.

Sebelum Anda meneruskan parameter tambahan ke API inferensi model Azure AI, pastikan model Anda mendukung parameter tambahan tersebut. Ketika permintaan dibuat ke model yang mendasar, header extra-parameters diteruskan ke model dengan nilai pass-through. Nilai ini memberi tahu titik akhir untuk meneruskan parameter tambahan ke model. Penggunaan parameter tambahan dengan model tidak menjamin bahwa model benar-benar dapat menanganinya. Baca dokumentasi model untuk memahami parameter tambahan mana yang didukung.

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
}

Parameter tambahan berikut dapat diteruskan ke model obrolan Meta Llama:

Nama Deskripsi Jenis
n Berapa banyak penyelesaian yang dihasilkan untuk setiap perintah. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
best_of Menghasilkan penyelesaian best_of sisi server dan mengembalikan yang terbaik (yang dengan probabilitas log terendah per token). Hasil tidak dapat dialirkan. Saat digunakan dengan n, best_of mengontrol jumlah penyelesaian kandidat dan n menentukan berapa banyak yang akan dikembalikan—best_of harus lebih besar dari n. Catatan: Karena parameter ini menghasilkan banyak penyelesaian, parameter ini dapat dengan cepat menggunakan kuota token Anda. integer
logprobs Angka yang menunjukkan untuk menyertakan probabilitas log pada token logprobs yang kemungkinan besar dan token yang dipilih. Misalnya, jika logprobs adalah 10, API mengembalikan daftar 10 token yang paling mungkin. API akan selalu mengembalikan logprob token sampel, sehingga mungkin ada hingga elemen logprobs+1 dalam respons. integer
ignore_eos Apakah akan mengabaikan EOS token dan terus menghasilkan token setelah EOS token dihasilkan. boolean
use_beam_search Apakah akan menggunakan pencarian sinar alih-alih pengambilan sampel. Dalam kasus seperti itu, best_of harus lebih besar dari 1 dan suhu harus 0. boolean
stop_token_ids Daftar ID untuk token yang, saat dibuat, menghentikan pembuatan token lebih lanjut. Output yang dikembalikan berisi token berhenti kecuali token berhenti adalah token khusus. array
skip_special_tokens Apakah akan melewati token khusus dalam output. boolean

Menerapkan keamanan konten

API inferensi model Azure AI mendukung keamanan konten Azure AI. Saat Anda menggunakan penyebaran dengan keamanan konten Azure AI diaktifkan, input dan output melewati ansambel model klasifikasi yang bertujuan mendeteksi dan mencegah output konten berbahaya. Sistem pemfilteran konten mendeteksi dan mengambil tindakan pada kategori tertentu dari konten yang berpotensi berbahaya dalam perintah input dan penyelesaian output.

Contoh berikut menunjukkan cara menangani peristiwa saat model mendeteksi konten berbahaya dalam perintah input dan keamanan konten diaktifkan.

{
    "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
    }
}

Tip

Untuk mempelajari selengkapnya tentang cara mengonfigurasi dan mengontrol pengaturan keamanan konten Azure AI, periksa dokumentasi keamanan konten Azure AI.

Catatan

Keamanan konten Azure AI hanya tersedia untuk model yang disebarkan sebagai titik akhir API tanpa server.

Contoh inferensi lainnya

Untuk contoh selengkapnya tentang cara menggunakan model Meta Llama, lihat contoh dan tutorial berikut:

Deskripsi Bahasa Sampel
Permintaan CURL Bash Tautan
Paket Inferensi Azure AI untuk JavaScript JavaScript Tautan
Paket Inferensi Azure AI untuk Python Python Tautan
Permintaan web Python Python Tautan
OpenAI SDK (eksperimental) Python Tautan
LangChain Python Tautan
LiteLLM Python Tautan

Pertimbangan biaya dan kuota untuk model Meta Llama yang disebarkan sebagai titik akhir API tanpa server

Kuota dikelola per penyebaran. Setiap penyebaran memiliki batas tarif 200.000 token per menit dan 1.000 permintaan API per menit. Namun, saat ini kami membatasi satu penyebaran per model per proyek. Hubungi Dukungan Microsoft Azure jika batas tarif saat ini tidak cukup untuk skenario Anda.

Model Meta Llama yang disebarkan sebagai API tanpa server ditawarkan oleh Meta melalui Marketplace Azure dan terintegrasi dengan Azure AI Studio untuk digunakan. Anda dapat menemukan harga Marketplace Azure saat menyebarkan model.

Setiap kali proyek berlangganan penawaran tertentu dari Marketplace Azure, sumber daya baru dibuat untuk melacak biaya yang terkait dengan konsumsinya. Sumber daya yang sama digunakan untuk melacak biaya yang terkait dengan inferensi; namun, beberapa meter tersedia untuk melacak setiap skenario secara independen.

Untuk informasi selengkapnya tentang cara melacak biaya, lihat Memantau biaya untuk model yang ditawarkan melalui Marketplace Azure.

Pertimbangan biaya dan kuota untuk model Meta Llama yang disebarkan ke komputasi terkelola

Model Meta Llama yang disebarkan ke komputasi terkelola ditagih berdasarkan jam inti instans komputasi terkait. Biaya instans komputasi ditentukan oleh ukuran instans, jumlah instans yang berjalan, dan durasi eksekusi.

Ini adalah praktik yang baik untuk memulai dengan jumlah instans yang rendah dan meningkatkan skala sesuai kebutuhan. Anda dapat memantau biaya instans komputasi di portal Azure.