Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tahmin edilen çıkışlar, daha büyük bir metin gövdesinde çok az değişiklik yapılması gereken sohbet tamamlama çağrıları için model yanıt gecikme süresini iyileştirebilir. Modelden beklenen yanıtın büyük bir bölümünün zaten bilindiği bir yanıt sağlamasını istiyorsanız, tahmin edilen çıkışlar bu isteğin gecikme süresini önemli ölçüde azaltabilir. Bu özellik, otomatik tamamlama, hata algılama ve gerçek zamanlı düzenleme gibi kodlama senaryoları için özellikle uygundur; burada hız ve yanıt hızı geliştiriciler ve son kullanıcılar için kritik önem taşır. Modelin tüm metni sıfırdan yeniden oluşturmasını sağlamak yerine, modele bilinen metni prediction parametresine geçirerek yanıtın çoğunun zaten bilindiğini belirtebilirsiniz.
Önkoşullar
Azure OpenAI modeli dağıtıldı
OpenAI Python kitaplığını yükseltin:
pip install --upgrade openaiMicrosoft Entra ID kullanıyorsanız
azure-identityaynı zamanda yükleyin:pip install --upgrade azure-identity
Model desteği
-
gpt-4o-miniSürüm:2024-07-18 -
gpt-4oSürüm:2024-08-06 -
gpt-4oSürüm:2024-11-20 -
gpt-4.1Sürüm:2025-04-14 -
gpt-4.1-nanoSürüm:2025-04-14 -
gpt-4.1-miniSürüm:2025-04-14
API desteği
İlk olarak 2025-01-01-preview tarihinde kullanıma sunulmuştur. Sonraki tüm sürümlerde desteklenir.
Desteklenmeyen özellikler
Tahmin edilen çıktılar şu anda sadece metin olarak verilmektedir. Bu özellikler prediction parametresi ve tahmin edilen çıkışlarla birlikte kullanılamaz.
- Araçlar/İşlev çağrısı
- ses modelleri/girişler ve çıkışlar
-
n1'den daha yüksek değerler logprobs-
presence_penaltydeğerinden büyük değerler0 -
frequency_penaltydeğerinden büyük değerler0 max_completion_tokens
Uyarı
Öngörülen çıktılar özelliği şu anda Güneydoğu Asya bölgesindeki modeller için kullanılamıyor.
Başlarken
Modelden ortak bir programlama FizzBuzz sorunundaki kodun yeniden düzenlenmesini isteyerek ve FizzBuzz örneğini MSFTBuzz ile değiştirterek tahmin edilen çıktının temellerini göstereceğiz. Örnek kodumuzu modele iki yerde geçireceğiz. İlk olarak dizideki/listedeki bir kullanıcı iletisinin messages parçası, ikinci kez de yeni prediction parametrenin içeriğinin bir parçası olarak.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
client = OpenAI(
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
code = """
for number in range(1, 101):
if number % 3 == 0 and number % 5 == 0:
print("FizzBuzz")
elif number % 3 == 0:
print("Fizz")
elif number % 5 == 0:
print("Buzz")
else:
print(number)
"""
instructions = """
Replace string `FizzBuzz` with `MSFTBuzz`. Respond only
with code, and with no markdown formatting.
"""
completion = client.chat.completions.create(
model="YOUR-DEPLOYMENT-NAME",
messages=[
{
"role": "user",
"content": instructions
},
{
"role": "user",
"content": code
}
],
prediction={
"type": "content",
"content": code
},
)
print(completion.model_dump_json(indent=2))
Çıktı
{
"id": "chatcmpl-AskZk3P5QGmefqobDw4Ougo6jLxSP",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "for number in range(1, 101):\n if number % 3 == 0 and number % 5 == 0:\n print(\"MSFTBuzz\")\n elif number % 3 == 0:\n print(\"Fizz\")\n elif number % 5 == 0:\n print(\"Buzz\")\n else:\n print(number)",
"refusal": null,
"role": "assistant",
"audio": null,
"function_call": null,
"tool_calls": null
},
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"protected_material_code": {
"filtered": false,
"detected": false
},
"protected_material_text": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"created": 1737612112,
"model": "gpt-4o-mini-2024-07-18",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": "fp_5154047bf2",
"usage": {
"completion_tokens": 77,
"prompt_tokens": 124,
"total_tokens": 201,
"completion_tokens_details": {
"accepted_prediction_tokens": 6,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 4
},
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
}
},
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"jailbreak": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
]
}
Verilen çıktıda accepted_prediction_tokens ve rejected_prediction_tokens için yeni yanıt parametrelerine dikkat edin.
"usage": {
"completion_tokens": 77,
"prompt_tokens": 124,
"total_tokens": 201,
"completion_tokens_details": {
"accepted_prediction_tokens": 6,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 4
}
Bu accepted_prediction_tokens yardım, model yanıt gecikme süresini azaltır ancak herhangi bir rejected_prediction_tokens, model tarafından üretilen ek çıkış belirteçleriyle aynı maliyet etkisine sahiptir. Bu nedenle, tahmin edilen çıkışlar model yanıt sürelerini iyileştirebilirken, daha fazla maliyete neden olabilir. Artan model performansını maliyetteki olası artışlara karşı değerlendirmeniz ve dengelemeniz gerekir.
Tahmine dayalı çıkışları kullanmanın gecikme süresini azaltmayı garanti etmediğini anlamak da önemlidir. Reddedilen tahmin belirteçlerinin yüzdesi kabul edilen tahmin belirteçlerinden daha yüksek olan büyük bir istek, model yanıt gecikme süresinde azalma yerine artışa neden olabilir.
Uyarı
Yalnızca isteğin başındaki en az sayıda ilk belirtecin aynı olması halinde çalışan istem önbelleğe alma işleminden farklı olarak, tahmin edilen çıkışlar belirteç konumuyla kısıtlanmamıştır. Cevap metniniz, tahmin edilen çıktıdan önce döndürülecek yeni bir çıktı içerse bile, accepted_prediction_tokens yine de meydana gelebilir.
Yayın
tr-TR: Yanıtlarınızı akış etkinleştirildiğinde döndürüyorsanız, tahmin edilen çıkışların performans artışı genellikle en belirgin şekilde görülür.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
client = OpenAI(
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
code = """
for number in range(1, 101):
if number % 3 == 0 and number % 5 == 0:
print("FizzBuzz")
elif number % 3 == 0:
print("Fizz")
elif number % 5 == 0:
print("Buzz")
else:
print(number)
"""
instructions = """
Replace string `FizzBuzz` with `MSFTBuzz`. Respond only
with code, and with no markdown formatting.
"""
completion = client.chat.completions.create(
model="YOUR-DEPLOYMENT-NAME",
messages=[
{
"role": "user",
"content": instructions
},
{
"role": "user",
"content": code
}
],
prediction={
"type": "content",
"content": code
},
stream=True
)
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end='',)
Sorun giderme
-
401/403: Microsoft Entra ID kullanıyorsanız, kimliğinizin Azure OpenAI kaynağına access olduğunu onaylayın.
get_bearer_token_providerkullanıyorsanızhttps://ai.azure.com/.defaultiçin bir belirteç isteyin. -
404: onaylayın
base_urlAzure OpenAI kaynak adınızı kullanır vemodeldağıtım adınızı kullanır. - 400: Desteklenmeyen özellikler bölümünde listelenen isteğe bağlı parametreleri ve özellikleri kaldırın ve yeniden deneyin.