Aracılığıyla paylaş


Kılavuz: Microsoft Foundry Modellerinde DeepSeek-R1 mantık modelini kullanmaya başlama

Bu öğreticide, Microsoft Foundry'de DeepSeek akıl yürütme modelini dağıtmayı ve kullanmayı öğreneceksiniz. Bu öğreticide çizim için DeepSeek-R1 kullanılır. Ancak, içerik daha yeni DeepSeek-R1-0528 akıl yürütme modeli için de geçerlidir.

Gerçekleştirdiğiniz başarılar:

Bu öğreticide, DeepSeek-R1 akıl yürütme modelini dağıtacak, kod kullanarak çıkarım isteklerini program aracılığıyla gönderecek ve modelin yanıtlarına nasıl ulaştığını anlamak için akıl yürütme çıkışını ayrıştıracaksınız.

Bu öğreticide gerçekleştirdiğiniz adımlar şunlardır:

  • Dökümhane Modellerinde DeepSeek-R1 kullanmak için Azure kaynaklarını oluşturun ve yapılandırın.
  • Model dağıtımını yapılandırın.
  • Modeli kodda kullanmak için yeni nesil v1 Azure OpenAI API'leriyle DeepSeek-R1 kullanın.

Önkoşullar

Bu makaleyi tamamlamak için şunlar gerekir:

  • Geçerli bir ödeme yöntemine sahip Azure aboneliği. Azure aboneliğiniz yoksa başlamak için bir paid Azure hesabı oluşturun. GitHub Modelleri kullanıyorsanız GitHub Modellerinden Microsoft Döküm Modelleri > sürümüne yükseltebilir ve işlemde bir Azure aboneliği oluşturabilirsiniz.

  • Kaynakları oluşturmak ve yönetmek için uygun izinlere sahip Microsoft Dökümhanesine erişim. Genellikle kaynak oluşturmak ve modelleri dağıtmak için kaynak grubunda Katkıda Bulunan veya Sahip rolü gerekir.

  • Foundry kaynağındaki Azure hesabınıza atanan Cognitive Services User rolü (veya üzeri). Bu rol, Microsoft Entra ID ile çıkarım çağrıları yapmak için gereklidir. Azure portalında, Foundry kaynağındaki Access Control (IAM) altında atayın.

  • Programlama diliniz için Azure OpenAI SDK'sını yükleyin:

    • Python: pip install openai azure-identity
    • .NET: dotnet add package OpenAI ve dotnet add package Azure.Identity
    • JavaScript: npm install openai @azure/identity
    • Java: com.openai:openai-java ve com.azure:azure-identity paketlerini ekleyin

DeepSeek-R1, yanıtların yanı sıra açıklamalar oluşturan bir akıl yürütme modelidir. Metin tabanlı sohbet tamamlamalarını destekler, ancak araç çağrılarını veya yapılandırılmış çıkış biçimlerini desteklemez. Ayrıntılar için bkz. Akıl yürütme modelleri hakkında .

Kaynakları oluşturma

DeepSeek-R1 dağıtımını destekleyen bir Foundry projesi oluşturmak için şu adımları izleyin. Ayrıca Azure CLI veya Bicep ile altyapı kodu olarak kullanarak kaynakları oluşturabilirsiniz.

  1. Microsoft Foundry'da oturum açın. Yeni Dökümhane anahtarının açık olduğundan emin olun. Bu adımlar Foundry (yeni) ile ilgilidir.
  2. Üzerinde çalıştığınız proje sol üst köşede görünür.
  3. Yeni proje oluşturmak için proje adını ve ardından Yeni proje oluştur'u seçin.
  4. Projenize bir ad verin ve Proje oluştur'u seçin.

Modeli dağıtın

  1. Projenize bir model ekleyin. Sayfanın ortasında Oluştur'a ve ardından Model'e tıklayın.
  2. Model kataloğunu açmak için Temel modeli dağıt'ı seçin.
  3. DeepSeek-R1 model kutucuğunu bulun ve model kartını açmak için seçin, ardından Dağıt'a tıklayın. Varsayılanları kullanmak için Hızlı dağıtım'ı veya dağıtım ayarlarını görmek ve değiştirmek için Dağıtımı özelleştir'i seçebilirsiniz.

Dağıtım tamamlandığında, dağıtımla etkileşim kurmaya başlayabileceğiniz oyun alanına ulaşırsınız. Dağıtım durumunun Başarılı olduğunu doğrulayarak dağıtımınızın hazır olduğunu onaylayın. Dağıtım ayrıntılarındaki dağıtım adını ve uç nokta URI'sini not alın; her ikisi de kod bölümü için gereklidir.

Önce modeli etkileşimli olarak keşfetmeyi tercih ediyorsanız, Modeli oyun alanında kullanma bölümüne atlayın.

Modeli kodda kullanma

Modele bağlanmak için Döküm Modelleri uç noktasını ve kimlik bilgilerini kullanın.

  1. Dağıtımın ayrıntılarını görmek için Oyun Alanları'nın üst bölmesinden Ayrıntılar bölmesini seçin. Burada dağıtımın URI'sini ve API anahtarını bulabilirsiniz.
  2. Kodu kullanarak modeli çıkarsamak için kullanılacak dağıtımın URI'sinden kaynak adınızı alın.

Azure yeni nesil v1 OpenAI API'lerini kodunuzda modeli kullanmak için kullanın. Bu kod örnekleri, Azure Identity kitaplığı aracılığıyla Microsoft Entra ID güvenli, anahtarsız kimlik doğrulama yaklaşımını kullanır.

Aşağıdaki kod örnekleri nasıl yapılacağını gösterir:

  1. Birden çok kimlik doğrulama yöntemini (ortam değişkenleri, yönetilen kimlik, Azure CLI ve diğerleri) otomatik olarak deneyen DefaultAzureCredential kullanarak Microsoft Entra ID ile kimlik doğrulaması yapın. Tam sıra, kullandığınız Azure Kimlik SDK'sı sürümüne bağlıdır.

    Tavsiye

    Yerel geliştirme için az login çalıştırarak Azure CLI kimlik doğrulamasından emin olun. Azure'daki üretim dağıtımları için, uygulamanız için yönetilen kimliği yapılandırın.

  2. Model dağıtımınıza bağlı bir sohbet tamamlama istemcisi oluşturma

  3. DeepSeek-R1 modeline temel bir istem gönderme

  4. Yanıtı al ve göster

Beklenen çıkış: Modelin yanıtını, akıl yürütme işlemini (etiketler içinde <think> ), belirteç kullanımı istatistiklerini (istem belirteçleri, tamamlanma belirteçleri, toplam belirteçler) ve model bilgilerini içeren bir JSON yanıtı.

Paketleri, pip gibi paket yöneticinizi kullanarak, openai ve azure-identity yükleyin.

pip install --upgrade openai azure-identity

Aşağıdaki örnekte, sohbet tamamlamalarını kullanmak ve ardından yanıtı oluşturup yazdırmak için bir istemcinin nasıl oluşturulacağı gösterilmektedir:


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,
)
response = client.chat.completions.create(
  model="DeepSeek-R1", # Replace with your model deployment name.
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "How many languages are in the world?"}
  ]
)

#print(response.choices[0].message)
print(response.model_dump_json(indent=2))

Tavsiye

Kodu çalıştırdıktan sonra, modelin yanıtını içeren choices[0].message.content bir JSON yanıtı görmeniz gerekir. Model mantık oluşturuyorsa, yanıt <think>...</think> etiketleriyle çevrelenmiş içeriği ve ardından nihai yanıtı içerir.

API Başvurusu:

Mantık yürütme daha uzun yanıtlar oluşturabilir ve daha fazla sayıda belirteç kullanabilir. DeepSeek-R1 dakikada en fazla 5.000 isteği ve dakikada 5.000.000 belirteci destekler. DeepSeek-R1 modellerine uygulanan hız sınırlarına bakın. Hız sınırlarını işlemek için bir yeniden deneme stratejisine sahip olmayı göz önünde bulundurun. Ayrıca , varsayılan sınırlara artış isteyebilirsiniz.

Mantıp modelleri hakkında

Mantık modelleri matematik, kodlama, bilim, strateji ve lojistik gibi alanlarda daha yüksek performans düzeylerine ulaşabilir. Bu modellerin çıkış oluşturma yolu, bir yanıt oluşturmadan önce tüm olası yolları keşfetmek için açıkça düşünce zincirini kullanmaktır. Bunları üretirken yanıtlarını doğrularlar ve bu da daha doğru sonuçlar elde etmeye yardımcı olur. Sonuç olarak, akıl yürütme modelleri etkili sonuçlar elde etmek için daha az bağlam istemleri gerektirebilir.

Akıl yürütme modelleri çıkış olarak iki tür içerik üretir:

  • Akıl yürütme sonuçları
  • Çıktı Tamamlamaları

Bu tamamlanmaların her ikisi de modelden oluşturulan içeriğe göre sayılır. Bu nedenle, modelle ilişkili belirteç sınırlarına ve maliyetlerine katkıda bulunur. gibi DeepSeek-R1bazı modeller, mantık içeriğiyle yanıt verebilir. o1 gibi diğerleri yalnızca tamamlamaları çıktı olarak verir.

Akıl yürütme içeriği

DeepSeek-R1 gibi bazı mantık modelleri tamamlamalar oluşturur ve bunların arkasındaki mantığı içerir. Tamamlanma ile ilgili gerekçe, yanıtın içeriğinde <think> ve </think> etiketleri içinde yer alır. Model, akıl yürütme içeriğinin oluşturulacağı senaryoları seçebilir. Aşağıdaki örnekte, Python kullanarak mantık içeriğinin nasıl oluşturulacağı gösterilmektedir:

import re

match = re.match(r"<think>(.*?)</think>(.*)", response.choices[0].message.content, re.DOTALL)

print("Response:")
if match:
    print("\tThinking:", match.group(1))
    print("\tAnswer:", match.group(2))
else:
    print("\tAnswer:", 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)
Thinking: Okay, the user is asking how many languages exist in the world. I need to provide a clear and accurate answer. Let's start by recalling the general consensus from linguistic sources. I remember that the number often cited is around 7,000, but maybe I should check some reputable organizations.\n\nEthnologue is a well-known resource for language data, and I think they list about 7,000 languages. But wait, do they update their numbers? It might be around 7,100 or so. Also, the exact count can vary because some sources might categorize dialects differently or have more recent data. \n\nAnother thing to consider is language endangerment. Many languages are endangered, with some having only a few speakers left. Organizations like UNESCO track endangered languages, so mentioning that adds context. Also, the distribution isn't even. Some countries or regions have hundreds of languages, like Papua New Guinea with over 800, while others have just a few. \n\nA user might also wonder why the exact number is hard to pin down. It's because the distinction between a language and a dialect can be political or cultural. For example, Mandarin and Cantonese are considered dialects of Chinese by some, but they're mutually unintelligible, so others classify them as separate languages. Also, some regions are under-researched, making it hard to document all languages. \n\nI should also touch on language families. The 7,000 languages are grouped into families like Indo-European, Sino-Tibetan, Niger-Congo, etc. Maybe mention a few of the largest families. But wait, the question is just about the count, not the families. Still, it's good to provide a bit more context. \n\nI need to make sure the information is up-to-date. Let me think – recent estimates still hover around 7,000. However, languages are dying out rapidly, so the number decreases over time. Including that note about endangerment and language extinction rates could be helpful. For instance, it's often stated that a language dies every few weeks. \n\nAnother point is sign languages. Does the count include them? Ethnologue includes some, but not all sources might. If the user is including sign languages, that adds more to the count, but I think the 7,000 figure typically refers to spoken languages. For thoroughness, maybe mention that there are also over 300 sign languages. \n\nSummarizing, the answer should state around 7,000, mention Ethnologue's figure, explain why the exact number varies, touch on endangerment, and possibly note sign languages as a separate category. Also, a brief mention of Papua New Guinea as the most linguistically diverse country/region. \n\nWait, let me verify Ethnologue's current number. As of their latest edition (25th, 2022), they list 7,168 living languages. But I should check if that's the case. Some sources might round to 7,000. Also, SIL International publishes Ethnologue, so citing them as reference makes sense. \n\nOther sources, like Glottolog, might have a different count because they use different criteria. Glottolog might list around 7,000 as well, but exact numbers vary. It's important to highlight that the count isn't exact because of differing definitions and ongoing research. \n\nIn conclusion, the approximate number is 7,000, with Ethnologue being a key source, considerations of endangerment, and the challenges in counting due to dialect vs. language distinctions. I should make sure the answer is clear, acknowledges the variability, and provides key points succinctly.

Answer: The exact number of languages in the world is challenging to determine due to differences in definitions (e.g., distinguishing languages from dialects) and ongoing documentation efforts. However, widely cited estimates suggest there are approximately **7,000 languages** globally.
Model: DeepSeek-R1
Usage: 
  Prompt tokens: 11
  Total tokens: 897
  Completion tokens: 886

API Başvurusu:

Başlatıcı akıl yürütme modelleri

Mantık modelleri oluştururken aşağıdakileri göz önünde bulundurun:

  • Basit yönergeleri kullanın ve düşünce zinciri tekniklerini kullanmaktan kaçının.
  • Yerleşik akıl yürütme özellikleri, basit sıfır çekim istemlerini daha karmaşık yöntemler kadar etkili hale getirir.
  • RAG senaryolarında olduğu gibi ek bağlam veya belgeler sağlarken, yalnızca en ilgili bilgiler dahil olmak üzere modelin yanıtını aşırı karmaşık hale getirmesini önlemeye yardımcı olabilir.
  • Akıl yürütme modelleri sistem iletilerinin kullanımını destekleyebilebilir. Ancak, bunları diğer mantık dışı modeller kadar katı bir şekilde takip etmeyebilirler.
  • Çok aşamalı uygulamalar oluştururken, Muhakeme içeriği bölümünde açıklandığı gibi, modelin yalnızca son yanıtını, mantık içeriği olmadan eklemeyi göz önünde bulundurun.

Muhakeme modellerinin yanıt oluşturmasının daha uzun sürebileceğine dikkat edin. Daha derin ve daha yapılandırılmış sorun çözmeyi sağlayan uzun düşünce zincirleri kullanırlar. Ayrıca yanıtlarını çapraz kontrol etmek ve hatalarını düzeltmek için kendi kendine doğrulama gerçekleştirir ve böylece gelişen kendini yansıtıcı davranışları gösterir.

Parametreler

Akıl yürütme modelleri, akıl yürütme işlemlerinin bütünlüğünü korumak için standart sohbet tamamlama parametrelerinin bir alt kümesini destekler.

Desteklenen parametreler:

  • max_tokens - Yanıtta oluşturulacak en fazla belirteç sayısı
  • stop - API'nin belirteç oluşturma işlemini durdurduğu sıralar
  • stream - Akış yanıtlarını etkinleştirme
  • n - Oluşturulacak tamamlanma sayısı

Desteklenmeyen parametreler (akıl yürütme modelleri bunları desteklemez):

  • temperature - Akıl yürütme kalitesini iyileştirmek için düzeltildi
  • top_p - Akıl yürütme modelleri için yapılandırılamaz
  • presence_penalty - Kullanılamıyor
  • repetition_penalty - Mantıp modelleri için kullanılamaz

max_tokens kullanan örnek:

response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=[
        {"role": "user", "content": "Explain quantum computing"}
    ],
    max_tokens=1000  # Limit response length
)

Desteklenen parametrelerin tam listesi için Sohbet tamamlamaları API başvurusuna bakın.

Oyun alanında modeli kullanma

Modelin özellikleri hakkında fikir edinmek için oyun alanında modeli kullanın.

Dağıtım tamamlandıktan hemen sonra modelin oyun alanına gelirsiniz ve burada dağıtımla etkileşim kurmaya başlayabilirsiniz. Örneğin, oyun alanına "Dünyada kaç dil var?" gibi istemlerinizi girebilirsiniz.

Sorun giderme

Bu öğreticiyi takip ederken sorunlarla karşılaşırsanız, yaygın sorunları çözmek için aşağıdaki kılavuzu kullanın.

Kimlik doğrulama hataları (401/403)

  • Azure CLI oturum açtığınızdan emin olun. Yerel geliştirme için kodunuzu yürütmeden önce komutunu çalıştırın az login . DefaultAzureCredential, kullanılabilir başka kimlik bilgisi olmadığında geri dönüş olarak Azure CLI kimlik bilgilerinizi kullanır.
  • Rol atamalarını doğrulayın. Azure hesabınızın, Microsoft Entra ID ile çıkarım istekleri yapmak için Dökümhane kaynağında Cognitive Services User rolüne (veya üstü) ihtiyacı vardır. Bu rolü henüz atamadıysanız Önkoşullar bölümüne bakın.
  • Uç nokta biçimini denetleyin. Uç nokta URL'si biçiminde https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/olmalıdır. Kaynak adının Foundry kaynağınızla eşleştiğinden emin olun.

Dağıtım sorunları

  • Dağıtım adı ve model adı karşılaştırması. model API çağrılarındaki parametre, model adını değil dağıtım adınızı ifade eder. Oluşturma sırasında dağıtım adını özelleştirdiyseniz, yerine DeepSeek-R1bu adı kullanın.
  • Dağıtım hazır değil. 404 hatası alırsanız API çağrıları yapmadan önce dağıtım durumunun Foundry portalında Başarılı olarak gösterildiğini doğrulayın.

Hız sınırlama (429 hatalar)

  • Yeniden deneme mantığını uygulayın. Akıl yürütme modelleri, daha fazla belirteç kullanan daha uzun yanıtlar oluşturur. 429 (Çok Fazla İstek) hatasını işlemek için üstel geri alma kullanın.
  • Belirteç kullanımını izleme. DeepSeek-R1 akıl yürütme içeriği (etiketler içinde <think>) belirteç limitinize doğru sayılır. Geçerli hız sınırları için bkz. kotalar ve sınırlar .
  • Kota artışlarını isteme. Sürekli hız sınırlarına ulaşıyorsanız, varsayılan sınırları artırmak için talepte bulunun.

Paket yükleme sorunları

  • Python. Her iki gerekli paketi de yükleyin: pip install openai azure-identity. azure-identity paketi için DefaultAzureCredentialgereklidir.
  • JavaScript. Her iki gerekli paketi de yükleyin: npm install openai @azure/identity.
  • .NET. Azure Identity paketini yükleyin: dotnet add package Azure.Identity.

Öğrendikleriniz

Bu öğreticide aşağıdakileri başardınız:

  • Yapay zeka modellerini barındırmak için Foundry kaynakları oluşturuldu
  • DeepSeek-R1 akıl yürütme modeli dağıtıldı
  • Microsoft Entra ID kullanarak kimliği doğrulanmış API çağrıları yapıldı
  • Gönderilen çıkarım istekleri ve alınan akıl yürütme çıkışları
  • Modelin düşünce sürecini anlamak için model yanıtlarından ayrıştırılmış mantık içeriği