Aracılığıyla paylaş


Meta Llama model ailesini kullanma

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Bu makalede Meta Lama model ailesi ve bunların nasıl kullanılacağı hakkında bilgi edineceksiniz. Meta Lama modelleri ve araçları, SLM'lerden (1B, Cihaz içi ve uç çıkarım için 3B Temel ve Yönerge modelleri) - orta ölçekli LLM'lere (7B, 8B ve 70B Base ve Instruct modelleri) ve Meta Llama 3.1 405B gibi yüksek performanslı modeller Yapay veri oluşturma ve distilasyon kullanım örnekleri için yönerge.

Meta'nın Lama 3.2 aile modelleri hakkındaki duyurularımızı Meta'nın blogu ve Microsoft Tech Community Blogu aracılığıyla Azure Yapay Zeka Modeli Kataloğu'nda bulabilirsiniz.

Önemli

Önizleme aşamasında olan modeller, model kataloğundaki model kartlarında önizleme olarak işaretlenir.

Meta Llama model ailesi

Meta Llama model ailesi aşağıdaki modelleri içerir:

Llama 3.2 koleksiyonu SLM'ler ve görüntü akıl yürütme modelleri artık kullanılabilir. Yakında Llama 3.2 11B Vision Instruct ve Llama 3.2 90B Vision Instruct, Models-as-a-Service aracılığıyla sunucusuz API uç noktası olarak kullanıma sunulacaktır. Bugünden itibaren, aşağıdaki modeller yönetilen işlem aracılığıyla dağıtım için kullanılabilir olacaktır:

  • Lama 3.2 1B
  • Lama 3.2 3B
  • Llama 3.2 1B Yönerge
  • Lama 3.2 3B Yönerge
  • Lama Guard 3 1B
  • Lama Guard 11B Görüntü İşleme
  • Lama 3.2 11B Görüntü İşleme Yönergesi
  • Llama 3.2 90B Vision Instruct yönetilen işlem dağıtımı için kullanılabilir.

Önkoşullar

Meta Llama modellerini Azure AI Studio ile kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Meta Llama modelleri kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa Azure AI Studio, Python için Azure Machine Learning SDK'sı, Azure CLI veya ARM şablonlarını kullanarak modeli sunucusuz API olarak dağıtın.

Şirket içinde barındırılan yönetilen işleme dağıtım

Meta Llama modelleri, şirket içinde barındırılan yönetilen çıkarım çözümümüze dağıtılabilir. Bu çözüm, modelin nasıl sunulduğuna ilişkin tüm ayrıntıları özelleştirmenize ve denetlemenize olanak tanır.

Şirket içinde barındırılan yönetilen bir işleme dağıtım için aboneliğinizde yeterli kota olması gerekir. Yeterli kotanız yoksa, paylaşılan kota kullanmak istiyorum seçeneğini belirleyerek geçici kota erişimimizi kullanabilirsiniz ve bu uç noktanın 168 saat içinde silineceğini kabul ediyorum.

Çıkarım paketi yüklü

Python ile paketini kullanarak bu modeldeki azure-ai-inference tahminleri kullanabilirsiniz. Bu paketi yüklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Pip de dahil olmak üzere Python 3.8 veya üzeri yüklü.
  • Uç nokta URL'si. İstemci kitaplığını oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name benzersiz model dağıtım ana bilgisayar adınızdır ve your-azure-region modelin dağıtıldığı Azure bölgesidir (örneğin eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Bu önkoşullara sahip olduktan sonra aşağıdaki komutu kullanarak Azure AI çıkarım paketini yükleyin:

pip install azure-ai-inference

Azure AI çıkarım paketi ve başvurusu hakkında daha fazla bilgi edinin.

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Meta Llama Instruct modelleri (yalnızca metin veya görüntü mantığı modelleri) dahil olmak üzere Azure AI Studio'da dağıtılan çoğu modelle aynı koda ve yapıya sahip konuşmanızı sağlar.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

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

Microsoft Entra ID desteğiyle modeli şirket içinde barındırılan bir çevrimiçi uç noktaya dağıttığınızda, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz.

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

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

Not

Şu anda sunucusuz API uç noktaları kimlik doğrulaması için Microsoft Entra Id kullanılmasını desteklememektedir.

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

model_info = client.get_model_info()

Yanıt aşağıdaki gibidir:

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

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

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

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

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 İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

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

Tamamlanmaların akışını yapmak için modeli çağırdığınızda ayarlayın stream=True .

Çıkışı görselleştirmek için akışı yazdıracak bir yardımcı işlev tanımlayın.

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

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

print_stream(result)

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

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

Uyarı

Meta Lama modelleri JSON çıkış biçimlendirmeyi (response_format = { "type": "json_object" } ) desteklemez. Modelden istediğiniz zaman JSON çıkışları oluşturmasını isteyebilirsiniz. Ancak, bu tür çıkışların geçerli JSON olduğu garanti değildir.

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

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

Meta Llama modellerine aşağıdaki ek parametreler geçirilebilir:

Veri Akışı Adı Açıklama Tür
n Her istem için kaç tamamlama oluşturulacağı. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
best_of sunucu tarafında best_of tamamlamaları oluşturur ve en iyi değeri (belirteç başına en düşük günlük olasılığına sahip olan) döndürür. Sonuçlar akışla aktarılamaz. ile nkullanıldığında, best_of aday tamamlama sayısını denetler ve n döndürülecek sayısını belirtir; best_of değerinden nbüyük olmalıdır. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
logprobs Büyük olasılıkla belirteçlere ve seçilen belirteçlere günlük olasılıklarını eklemeyi gösteren bir sayı. Örneğin, logprobs 10 ise, API en olası 10 belirtecin listesini döndürür. API her zaman örneklenen belirtecin logprob'unu döndürür, bu nedenle yanıtta en fazla logprobs+1 öğesi olabilir. integer
ignore_eos Belirtecin EOS yoksayılıp yoksayılmayacağı ve belirteç oluşturulduktan sonra belirteç oluşturmaya devam edilip EOS edilmeyeceği. boolean
use_beam_search Örnekleme yerine ışın aramasının kullanılıp kullanılmaymayacağı. Bu durumda, best_of 1'den büyük ve sıcaklık 0 olmalıdır. boolean
stop_token_ids Oluşturulduğunda daha fazla belirteç oluşturmayı durduran belirteçler için kimliklerin listesi. Döndürülen çıkış, durdurma belirteçleri özel belirteçler olmadığı sürece durdurma belirteçlerini içerir. array
skip_special_tokens Çıkıştaki özel belirteçlerin atlanıp atlanmayacağı. boolean

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme (önizleme) sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek içeriğin belirli kategorilerini algılar ve bu kategoriler üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

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

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Not

Azure AI içerik güvenliği yalnızca sunucusuz API uç noktaları olarak dağıtılan modellerde kullanılabilir.

Meta Lama modelleri

Meta Llama modelleri aşağıdaki modelleri içerir:

Çok dilli büyük dil modellerinden (LLM) oluşan Meta Llama 3.1 koleksiyonu, 8B, 70B ve 405B boyutlarında (metin içinde/metin çıkışında) önceden eğitilmiş ve yönerge ayarlı üretken modellerden oluşan bir koleksiyondur. Llama 3.1 yönergesi yalnızca metin ayarlı modeller (8B, 70B, 405B) çok dilli diyalog kullanım örnekleri için iyileştirilmiştir ve yaygın sektör karşılaştırmalarında mevcut açık kaynak ve kapalı sohbet modellerinin çoğundan daha iyi performans gösterir.

Aşağıdaki modeller kullanılabilir:

Önkoşullar

Meta Llama modellerini Azure AI Studio ile kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Meta Llama modelleri kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa Azure AI Studio, Python için Azure Machine Learning SDK'sı, Azure CLI veya ARM şablonlarını kullanarak modeli sunucusuz API olarak dağıtın.

Şirket içinde barındırılan yönetilen işleme dağıtım

Meta Llama modelleri, şirket içinde barındırılan yönetilen çıkarım çözümümüze dağıtılabilir. Bu çözüm, modelin nasıl sunulduğuna ilişkin tüm ayrıntıları özelleştirmenize ve denetlemenize olanak tanır.

Şirket içinde barındırılan yönetilen bir işleme dağıtım için aboneliğinizde yeterli kota olması gerekir. Yeterli kotanız yoksa, paylaşılan kota kullanmak istiyorum seçeneğini belirleyerek geçici kota erişimimizi kullanabilirsiniz ve bu uç noktanın 168 saat içinde silineceğini kabul ediyorum.

Çıkarım paketi yüklü

bu modeldeki tahminleri, paketinden npmkullanarak @azure-rest/ai-inference kullanabilirsiniz. Bu paketi yüklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • ile npmlts sürümleriNode.js.
  • Uç nokta URL'si. İstemci kitaplığını oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name benzersiz model dağıtım ana bilgisayar adınızdır ve your-azure-region modelin dağıtıldığı Azure bölgesidir (örneğin eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Bu önkoşullara sahip olduktan sonra aşağıdaki komutla JavaScript için Azure Çıkarım kitaplığını yükleyin:

npm install @azure-rest/ai-inference

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Meta Llama modelleri de dahil olmak üzere aynı kod ve yapıya sahip Azure AI Studio'da dağıtılan çoğu modelle konuşmanızı sağlar.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

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

Microsoft Entra ID desteğiyle modeli şirket içinde barındırılan bir çevrimiçi uç noktaya dağıttığınızda, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz.

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

Not

Şu anda sunucusuz API uç noktaları kimlik doğrulaması için Microsoft Entra Id kullanılmasını desteklememektedir.

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

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

Yanıt aşağıdaki gibidir:

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

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

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

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

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 İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

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

Tamamlanmaların akışını yapmak için modeli çağırdığınızda kullanın .asNodeStream() .

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

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

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

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

Uyarı

Meta Lama modelleri JSON çıkış biçimlendirmeyi (response_format = { "type": "json_object" } ) desteklemez. Modelden istediğiniz zaman JSON çıkışları oluşturmasını isteyebilirsiniz. Ancak, bu tür çıkışların geçerli JSON olduğu garanti değildir.

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

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

Meta Llama modellerine aşağıdaki ek parametreler geçirilebilir:

Veri Akışı Adı Açıklama Tür
n Her istem için kaç tamamlama oluşturulacağı. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
best_of sunucu tarafında best_of tamamlamaları oluşturur ve en iyi değeri (belirteç başına en düşük günlük olasılığına sahip olan) döndürür. Sonuçlar akışla aktarılamaz. ile nkullanıldığında, best_of aday tamamlama sayısını denetler ve n döndürülecek sayısını belirtir; best_of değerinden nbüyük olmalıdır. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
logprobs Büyük olasılıkla belirteçlere ve seçilen belirteçlere günlük olasılıklarını eklemeyi gösteren bir sayı. Örneğin, logprobs 10 ise, API en olası 10 belirtecin listesini döndürür. API her zaman örneklenen belirtecin logprob'unu döndürür, bu nedenle yanıtta en fazla logprobs+1 öğesi olabilir. integer
ignore_eos Belirtecin EOS yoksayılıp yoksayılmayacağı ve belirteç oluşturulduktan sonra belirteç oluşturmaya devam edilip EOS edilmeyeceği. boolean
use_beam_search Örnekleme yerine ışın aramasının kullanılıp kullanılmaymayacağı. Bu durumda, best_of 1'den büyük ve sıcaklık 0 olmalıdır. boolean
stop_token_ids Oluşturulduğunda daha fazla belirteç oluşturmayı durduran belirteçler için kimliklerin listesi. Döndürülen çıkış, durdurma belirteçleri özel belirteçler olmadığı sürece durdurma belirteçlerini içerir. array
skip_special_tokens Çıkıştaki özel belirteçlerin atlanıp atlanmayacağı. boolean

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme (önizleme) sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek içeriğin belirli kategorilerini algılar ve bu kategoriler üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

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

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Not

Azure AI içerik güvenliği yalnızca sunucusuz API uç noktaları olarak dağıtılan modellerde kullanılabilir.

Meta Lama modelleri

Meta Llama modelleri aşağıdaki modelleri içerir:

Çok dilli büyük dil modellerinden (LLM) oluşan Meta Llama 3.1 koleksiyonu, 8B, 70B ve 405B boyutlarında (metin içinde/metin çıkışında) önceden eğitilmiş ve yönerge ayarlı üretken modellerden oluşan bir koleksiyondur. Llama 3.1 yönergesi yalnızca metin ayarlı modeller (8B, 70B, 405B) çok dilli diyalog kullanım örnekleri için iyileştirilmiştir ve yaygın sektör karşılaştırmalarında mevcut açık kaynak ve kapalı modellerin çoğundan daha iyi performans gösterir.

Aşağıdaki modeller kullanılabilir:

Önkoşullar

Meta Llama modellerini Azure AI Studio ile kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Meta Llama modelleri kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa Azure AI Studio, Python için Azure Machine Learning SDK'sı, Azure CLI veya ARM şablonlarını kullanarak modeli sunucusuz API olarak dağıtın.

Şirket içinde barındırılan yönetilen işleme dağıtım

Meta Llama modelleri, şirket içinde barındırılan yönetilen çıkarım çözümümüze dağıtılabilir. Bu çözüm, modelin nasıl sunulduğuna ilişkin tüm ayrıntıları özelleştirmenize ve denetlemenize olanak tanır.

Şirket içinde barındırılan yönetilen bir işleme dağıtım için aboneliğinizde yeterli kota olması gerekir. Yeterli kotanız yoksa, paylaşılan kota kullanmak istiyorum seçeneğini belirleyerek geçici kota erişimimizi kullanabilirsiniz ve bu uç noktanın 168 saat içinde silineceğini kabul ediyorum.

Çıkarım paketi yüklü

NuGet'ten gelen paketi kullanarak bu modeldeki Azure.AI.Inference tahminleri kullanabilirsiniz. Bu paketi yüklemek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Uç nokta URL'si. İstemci kitaplığını oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name benzersiz model dağıtım ana bilgisayar adınızdır ve your-azure-region modelin dağıtıldığı Azure bölgesidir (örneğin eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Bu önkoşullara sahip olduktan sonra aşağıdaki komutla Azure AI çıkarım kitaplığını yükleyin:

dotnet add package Azure.AI.Inference --prerelease

Ayrıca Microsoft Entra Id (eski adıyla Azure Active Directory) ile de kimlik doğrulaması yapabilirsiniz. Azure SDK ile sağlanan kimlik bilgisi sağlayıcılarını kullanmak için paketini yükleyin Azure.Identity :

dotnet add package Azure.Identity

Aşağıdaki ad alanlarını içeri aktarın:

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

Bu örnekte aşağıdaki ad alanları da kullanılır ancak bunlara her zaman ihtiyacınız olmayabilir:

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

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Meta Llama sohbet modelleri de dahil olmak üzere aynı kod ve yapıya sahip Azure AI Studio'da dağıtılan çoğu modelle konuşmanızı sağlar.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

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

Microsoft Entra ID desteğiyle modeli şirket içinde barındırılan bir çevrimiçi uç noktaya dağıttığınızda, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz.

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

Not

Şu anda sunucusuz API uç noktaları kimlik doğrulaması için Microsoft Entra Id kullanılmasını desteklememektedir.

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

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

Yanıt aşağıdaki gibidir:

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

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

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

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

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 İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

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

Tamamlanmaların akışını yapmak için modeli çağırırken yöntemini kullanın CompleteStreamingAsync . Bu örnekte çağrısının zaman uyumsuz bir yöntemde sarmalandığını fark edin.

Çıkışı görselleştirmek için, akışı konsolda yazdırmak için zaman uyumsuz bir yöntem tanımlayın.

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

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

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

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

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

Uyarı

Meta Lama modelleri JSON çıkış biçimlendirmeyi (response_format = { "type": "json_object" } ) desteklemez. Modelden istediğiniz zaman JSON çıkışları oluşturmasını isteyebilirsiniz. Ancak, bu tür çıkışların geçerli JSON olduğu garanti değildir.

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

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

Meta Llama modellerine aşağıdaki ek parametreler geçirilebilir:

Veri Akışı Adı Açıklama Tür
n Her istem için kaç tamamlama oluşturulacağı. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
best_of sunucu tarafında best_of tamamlamaları oluşturur ve en iyi değeri (belirteç başına en düşük günlük olasılığına sahip olan) döndürür. Sonuçlar akışla aktarılamaz. ile nkullanıldığında, best_of aday tamamlama sayısını denetler ve n döndürülecek sayısını belirtir; best_of değerinden nbüyük olmalıdır. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
logprobs Büyük olasılıkla belirteçlere ve seçilen belirteçlere günlük olasılıklarını eklemeyi gösteren bir sayı. Örneğin, logprobs 10 ise, API en olası 10 belirtecin listesini döndürür. API her zaman örneklenen belirtecin logprob'unu döndürür, bu nedenle yanıtta en fazla logprobs+1 öğesi olabilir. integer
ignore_eos Belirtecin EOS yoksayılıp yoksayılmayacağı ve belirteç oluşturulduktan sonra belirteç oluşturmaya devam edilip EOS edilmeyeceği. boolean
use_beam_search Örnekleme yerine ışın aramasının kullanılıp kullanılmaymayacağı. Bu durumda, best_of 1'den büyük ve sıcaklık 0 olmalıdır. boolean
stop_token_ids Oluşturulduğunda daha fazla belirteç oluşturmayı durduran belirteçler için kimliklerin listesi. Döndürülen çıkış, durdurma belirteçleri özel belirteçler olmadığı sürece durdurma belirteçlerini içerir. array
skip_special_tokens Çıkıştaki özel belirteçlerin atlanıp atlanmayacağı. boolean

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme (önizleme) sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek içeriğin belirli kategorilerini algılar ve bu kategoriler üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

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

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Not

Azure AI içerik güvenliği yalnızca sunucusuz API uç noktaları olarak dağıtılan modellerde kullanılabilir.

Meta Lama sohbet modelleri

Meta Llama sohbet modelleri aşağıdaki modelleri içerir:

Çok dilli büyük dil modellerinden (LLM) oluşan Meta Llama 3.1 koleksiyonu, 8B, 70B ve 405B boyutlarında (metin içinde/metin çıkışında) önceden eğitilmiş ve yönerge ayarlı üretken modellerden oluşan bir koleksiyondur. Llama 3.1 yönergesi yalnızca metin ayarlı modeller (8B, 70B, 405B) çok dilli diyalog kullanım örnekleri için iyileştirilmiştir ve yaygın sektör karşılaştırmalarında mevcut açık kaynak ve kapalı sohbet modellerinin çoğundan daha iyi performans gösterir.

Aşağıdaki modeller kullanılabilir:

Önkoşullar

Meta Llama modellerini Azure AI Studio ile kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

Model dağıtımı

Sunucusuz API'lere dağıtım

Meta Lama sohbet modelleri kullandıkça öde faturalaması ile sunucusuz API uç noktalarına dağıtılabilir. Bu tür bir dağıtım, modelleri aboneliğinizde barındırmadan API olarak kullanmanın yanı sıra kuruluşların ihtiyaç duyduğu kurumsal güvenlik ve uyumluluğu korumanın bir yolunu sağlar.

Sunucusuz API uç noktasına dağıtım, aboneliğinizden kota gerektirmez. Modeliniz henüz dağıtılmadıysa Azure AI Studio, Python için Azure Machine Learning SDK'sı, Azure CLI veya ARM şablonlarını kullanarak modeli sunucusuz API olarak dağıtın.

Şirket içinde barındırılan yönetilen işleme dağıtım

Meta Llama modelleri, şirket içinde barındırılan yönetilen çıkarım çözümümüze dağıtılabilir. Bu çözüm, modelin nasıl sunulduğuna ilişkin tüm ayrıntıları özelleştirmenize ve denetlemenize olanak tanır.

Şirket içinde barındırılan yönetilen bir işleme dağıtım için aboneliğinizde yeterli kota olması gerekir. Yeterli kotanız yoksa, paylaşılan kota kullanmak istiyorum seçeneğini belirleyerek geçici kota erişimimizi kullanabilirsiniz ve bu uç noktanın 168 saat içinde silineceğini kabul ediyorum.

REST istemcisi

Azure AI modeli çıkarım API'siyle dağıtılan modeller herhangi bir REST istemcisi kullanılarak kullanılabilir. REST istemcisini kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

  • İstekleri oluşturmak için uç nokta URL'sini geçirmeniz gerekir. Uç nokta URL'si biçimindedir https://your-host-name.your-azure-region.inference.ai.azure.com; burada your-host-name`` is your unique model deployment host name and your-azure-region'' modelin dağıtıldığı Azure bölgesidir (örneğin, eastus2).
  • Model dağıtımınıza ve kimlik doğrulama tercihinize bağlı olarak, hizmette kimlik doğrulaması yapmak için bir anahtara veya Microsoft Entra Id kimlik bilgilerine ihtiyacınız vardır. Anahtar 32 karakterlik bir dizedir.

Sohbet tamamlamalarıyla çalışma

Bu bölümde, sohbet için bir sohbet tamamlama modeliyle Azure AI modeli çıkarım API'sini kullanacaksınız.

İpucu

Azure AI modeli çıkarım API'si, Meta Llama sohbet modelleri de dahil olmak üzere aynı kod ve yapıya sahip Azure AI Studio'da dağıtılan çoğu modelle konuşmanızı sağlar.

Modeli kullanmak için istemci oluşturma

İlk olarak, modeli kullanmak için istemcisini oluşturun. Aşağıdaki kod, ortam değişkenlerinde depolanan bir uç nokta URL'si ve anahtarı kullanır.

Microsoft Entra ID desteğiyle modeli şirket içinde barındırılan bir çevrimiçi uç noktaya dağıttığınızda, istemci oluşturmak için aşağıdaki kod parçacığını kullanabilirsiniz.

Not

Şu anda sunucusuz API uç noktaları kimlik doğrulaması için Microsoft Entra Id kullanılmasını desteklememektedir.

Modelin özelliklerini alma

Yol, /info uç noktaya dağıtılan model hakkındaki bilgileri döndürür. Aşağıdaki yöntemi çağırarak modelin bilgilerini döndürebilirsiniz:

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

Yanıt aşağıdaki gibidir:

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

Sohbet tamamlama isteği oluşturma

Aşağıdaki örnekte modele yönelik temel bir sohbet tamamlama isteği oluşturma işlemi gösterilmektedir.

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

Yanıt aşağıdaki gibidir ve modelin kullanım istatistiklerini görebilirsiniz:

{
    "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 İstem için kullanılan belirteç sayısını, oluşturulan toplam belirteç sayısını ve tamamlanma için kullanılan belirteç sayısını görmek için yanıttaki bölümü inceleyin.

İçerik akışı

Varsayılan olarak, tamamlamalar API'si oluşturulan içeriğin tamamını tek bir yanıtta döndürür. Uzun tamamlamalar oluşturuyorsanız yanıtın beklenmesi birkaç saniye sürebilir.

Oluşturulan içeriği almak için içeriği akışla aktarabilirsiniz. Akış içeriği, içerik kullanılabilir hale geldikçe tamamlama işlemini başlatmanıza olanak tanır. Bu mod, yanıtı yalnızca veri sunucu tarafından gönderilen olaylar olarak geri akışla aktaran bir nesne döndürür. İleti alanı yerine delta alanından öbekleri ayıklayın.

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

Akışın içerik oluşturma şeklini görselleştirebilirsiniz:

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

Akıştaki finish_reason son ileti ayarlandı ve oluşturma işleminin durma nedenini belirtir.

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

Çıkarım istemcisi tarafından desteklenen diğer parametreleri keşfedin

Çıkarım istemcisinde belirtebileceğiniz diğer parametreleri keşfedin. Desteklenen tüm parametrelerin ve bunlara karşılık gelen belgelerin tam listesi için bkz . Azure AI Model Çıkarımı API başvurusu.

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

Uyarı

Meta Lama modelleri JSON çıkış biçimlendirmeyi (response_format = { "type": "json_object" } ) desteklemez. Modelden istediğiniz zaman JSON çıkışları oluşturmasını isteyebilirsiniz. Ancak, bu tür çıkışların geçerli JSON olduğu garanti değildir.

Desteklenen parametreler listesinde olmayan bir parametre geçirmek istiyorsanız, ek parametreler kullanarak bunu temel modele geçirebilirsiniz. Bkz. Modele ek parametreler geçirme.

Modele ek parametreler geçirme

Azure AI Model Çıkarımı API'si, modele ek parametreler geçirmenizi sağlar. Aşağıdaki kod örneği, modele ek parametre logprobs geçirmeyi gösterir.

Azure AI modeli çıkarım API'sine ek parametreler geçirmeden önce modelinizin bu ek parametreleri desteklediğinden emin olun. temel alınan modele istek yapıldığında, üst bilgi extra-parameters değeriyle pass-throughmodele geçirilir. Bu değer uç noktaya ek parametreleri modele geçirmesini söyler. Modelle ek parametrelerin kullanılması, modelin bunları işleyebileceğini garanti etmez. Hangi ek parametrelerin desteklendiği hakkında bilgi edinmek için modelin belgelerini okuyun.

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
}

Meta Llama sohbet modellerine aşağıdaki ek parametreler geçirilebilir:

Veri Akışı Adı Açıklama Tür
n Her istem için kaç tamamlama oluşturulacağı. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
best_of sunucu tarafında best_of tamamlamaları oluşturur ve en iyi değeri (belirteç başına en düşük günlük olasılığına sahip olan) döndürür. Sonuçlar akışla aktarılamaz. ile nkullanıldığında, best_of aday tamamlama sayısını denetler ve n döndürülecek sayısını belirtir; best_of değerinden nbüyük olmalıdır. Not: Bu parametre birçok tamamlama oluşturduğundan belirteç kotanızı hızla kullanabilir. integer
logprobs Büyük olasılıkla belirteçlere ve seçilen belirteçlere günlük olasılıklarını eklemeyi gösteren bir sayı. Örneğin, logprobs 10 ise, API en olası 10 belirtecin listesini döndürür. API her zaman örneklenen belirtecin logprob'unu döndürür, bu nedenle yanıtta en fazla logprobs+1 öğesi olabilir. integer
ignore_eos Belirtecin EOS yoksayılıp yoksayılmayacağı ve belirteç oluşturulduktan sonra belirteç oluşturmaya devam edilip EOS edilmeyeceği. boolean
use_beam_search Örnekleme yerine ışın aramasının kullanılıp kullanılmaymayacağı. Bu durumda, best_of 1'den büyük ve sıcaklık 0 olmalıdır. boolean
stop_token_ids Oluşturulduğunda daha fazla belirteç oluşturmayı durduran belirteçler için kimliklerin listesi. Döndürülen çıkış, durdurma belirteçleri özel belirteçler olmadığı sürece durdurma belirteçlerini içerir. array
skip_special_tokens Çıkıştaki özel belirteçlerin atlanıp atlanmayacağı. boolean

İçerik güvenliğini uygulama

Azure AI modeli çıkarım API'si, Azure AI içerik güvenliğini destekler. Azure AI içerik güvenliği açık dağıtımları kullandığınızda, girişler ve çıkışlar zararlı içeriğin çıkışını algılamayı ve önlemeyi hedefleyen sınıflandırma modellerinden oluşan bir topluluk içinden geçer. İçerik filtreleme (önizleme) sistemi, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek içeriğin belirli kategorilerini algılar ve bu kategoriler üzerinde işlem gerçekleştirir.

Aşağıdaki örnek, model giriş isteminde zararlı içerik algıladığında ve içerik güvenliği etkinleştirildiğinde olayların nasıl işleneceğini gösterir.

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

İpucu

Azure AI içerik güvenliği ayarlarını yapılandırma ve denetleme hakkında daha fazla bilgi edinmek için Azure AI içerik güvenliği belgelerine bakın.

Not

Azure AI içerik güvenliği yalnızca sunucusuz API uç noktaları olarak dağıtılan modellerde kullanılabilir.

Diğer çıkarım örnekleri

Meta Llama modellerini kullanma hakkında daha fazla örnek için aşağıdaki örneklere ve öğreticilere bakın:

Açıklama Language Örnek
CURL isteği Bash Bağlantı
JavaScript için Azure AI Çıkarım paketi JavaScript Bağlantı
Python için Azure AI Çıkarım paketi Python Bağlantı
Python web istekleri Python Bağlantı
OpenAI SDK (deneysel) Python Bağlantı
LangChain Python Bağlantı
LiteLLM Python Bağlantı

Sunucusuz API uç noktaları olarak dağıtılan Meta Llama modelleri için maliyet ve kota konuları

Kota dağıtım başına yönetilir. Her dağıtımın dakikada 200.000 belirteç ve dakikada 1.000 API isteği hız sınırı vardır. Ancak şu anda proje başına model başına bir dağıtımla sınırlandırıyoruz. Geçerli hız sınırları senaryolarınız için yeterli değilse Microsoft Azure Desteği'ne başvurun.

Sunucusuz API olarak dağıtılan Meta Llama modelleri Meta tarafından Azure Market aracılığıyla sunulur ve kullanım için Azure AI Studio ile tümleştirilir. Modeli dağıtırken Azure Market fiyatlandırmasını bulabilirsiniz.

Bir proje Azure Market'ten belirli bir teklife her abone olduğunda tüketimiyle ilişkili maliyetleri izlemek için yeni bir kaynak oluşturulur. Çıkarımla ilişkili maliyetleri izlemek için aynı kaynak kullanılır ancak, her senaryoda bağımsız izleme için birden çok metre kullanılabilir.

Maliyetlerin nasıl izleneceği hakkında daha fazla bilgi için Azure Market aracılığıyla sunulan modellerin maliyetlerini izleme bölümüne bakın.

Yönetilen işlemde dağıtılan Meta Llama modelleri için maliyet ve kota konusunda dikkat edilmesi gerekenler

Yönetilen işlem için dağıtılan Meta Llama modelleri, ilişkili işlem örneğinin çekirdek saatlerine göre faturalandırılır. İşlem örneğinin maliyeti, örneğin boyutuna, çalışan örnek sayısına ve çalıştırma süresine göre belirlenir.

Düşük sayıda örnekle başlamak ve gerektiğinde ölçeği genişletmek iyi bir uygulamadır. İşlem örneğinin maliyetini Azure portalından izleyebilirsiniz.