Partager via


Tutoriel : Commencer avec le modèle de raisonnement DeepSeek-R1 dans les modèles de Microsoft Foundry

Note

Ce document fait référence au portail Microsoft Foundry (classique).

🔄 Accédez à la documentation Microsoft Foundry (nouveau) si vous utilisez le nouveau portail.

Note

Ce document fait référence au portail Microsoft Foundry (nouveau).

Dans ce tutoriel, vous allez apprendre à déployer et utiliser un modèle de raisonnement DeepSeek dans Microsoft Foundry. Ce tutoriel utilise DeepSeek-R1 pour l’illustration. Toutefois, le contenu s’applique également au modèle de raisonnement DeepSeek-R1-0528 plus récent.

Les étapes que vous effectuez dans ce tutoriel sont les suivantes :

  • Créez et configurez les ressources Azure pour utiliser DeepSeek-R1 dans les modèles Foundry.
  • Configurez le déploiement du modèle.
  • Utilisez DeepSeek-R1 avec les API Azure OpenAI de nouvelle génération pour consommer le modèle dans le code

Conditions préalables

Pour effectuer ce qui est décrit dans cet article, vous avez besoin des éléments suivants :

Modèles de raisonnement

Les modèles de raisonnement peuvent atteindre des niveaux de performances plus élevés dans des domaines tels que les mathématiques, le codage, la science, la stratégie et la logistique. La façon dont ces modèles produisent des sorties consiste explicitement à utiliser la chaîne de pensée pour explorer tous les chemins possibles avant de générer une réponse. Ils vérifient leurs réponses à mesure qu’ils les produisent, ce qui permet d’arriver à des conclusions plus précises. Par conséquent, les modèles de raisonnement peuvent nécessiter moins de contexte pour produire des résultats efficaces.

Cette façon de mettre à l’échelle les performances d’un modèle est appelée temps de calcul d’inférence , car elle échange les performances par rapport à une latence et un coût plus élevés. Cela contraste avec d’autres approches qui favorisent le temps de calcul d’entraînement.

Les modèles de raisonnement produisent deux types de contenu en tant que sorties :

  • Complétions de raisonnement
  • Complétions de sortie

Ces deux complétions comptent pour le contenu généré par le modèle. Par conséquent, ils contribuent aux limites et coûts des jetons associés au modèle. Certains modèles, comme DeepSeek-R1, peuvent répondre avec le contenu du raisonnement. D’autres, comme o1, ne génèrent que les achèvements.

Créer les ressources

Pour créer un projet Foundry qui prend en charge le déploiement pour DeepSeek-R1, procédez comme suit. Vous pouvez également créer les ressources à l’aide d’Azure CLI ou d’une infrastructure en tant que code, avec Bicep.

Conseil / Astuce

Étant donné que vous pouvez personnaliser le volet gauche dans le portail Microsoft Foundry, vous pouvez voir différents éléments que ceux indiqués dans ces étapes. Si vous ne voyez pas ce que vous recherchez, sélectionnez ... Plus en bas du volet gauche.

  1. Connectez-vous à Microsoft Foundry. Assurez-vous que le bouton bascule New Foundry est désactivé. Ces étapes font référence à Foundry (classique).

    Connectez-vous à Microsoft Foundry. Assurez-vous que l'interrupteur New Foundry est activé. Ces étapes font référence à Foundry (nouveau).

  2. Dans la page d’accueil, accédez à la section « Explorer les modèles et les fonctionnalités », puis sélectionnez Accéder au catalogue de modèles complet pour ouvrir le catalogue de modèles. Capture d’écran de la page d’accueil du portail Foundry montrant la section catalogue de modèles.

  3. Recherchez le modèle DeepSeek-R1 et ouvrez sa carte de modèle.

  4. Sélectionnez Utiliser ce modèle. Cette action ouvre un assistant pour créer un projet Foundry et les ressources que vous allez utiliser. Vous pouvez conserver le nom par défaut du projet ou le modifier.

    Conseil / Astuce

    Utilisez-vous Azure OpenAI dans les modèles Foundry ? Lorsque vous êtes connecté au portail Foundry à l’aide d’une ressource Azure OpenAI, seuls les modèles Azure OpenAI apparaissent dans le catalogue. Pour afficher la liste complète des modèles, notamment DeepSeek-R1, utilisez la section Annonces supérieure et recherchez la carte avec l’option Explorer d’autres modèles.

    Capture d’écran montrant la carte avec l’option permettant d’explorer tous les modèles du catalogue.

    Une nouvelle fenêtre s’affiche avec la liste complète des modèles. Sélectionnez DeepSeek-R1 dans la liste, puis sélectionnez Déployer. L’Assistant demande de créer un projet.

  5. Sélectionnez la liste déroulante dans la section « Options avancées » de l’Assistant pour afficher des détails sur les paramètres et les autres valeurs par défaut créées en même temps que le projet. Ces valeurs par défaut sont sélectionnées pour des fonctionnalités optimales et incluent :

    Propriété Descriptif
    groupe de ressources Conteneur principal pour toutes les ressources dans Azure. Ce conteneur vous aide à organiser les ressources qui fonctionnent ensemble. Il est également utile d’avoir une vue d’ensemble des coûts associés à l’ensemble du projet.
    Région Région des ressources que vous créez.
    Ressource Foundry Ressource permettant d’accéder aux modèles phares dans le catalogue de modèles Foundry. Dans ce tutoriel, un nouveau compte est créé, mais les ressources Foundry (anciennement appelées ressources Azure AI Services) peuvent être partagées entre plusieurs hubs et projets. Les hubs utilisent une connexion à la ressource pour avoir accès aux modèles de déploiements disponibles. Pour savoir comment créer des connexions aux ressources Foundry pour consommer des modèles, consultez Connecter votre projet IA.
  6. Sélectionnez Créer pour créer le projet Foundry en même temps que les autres valeurs par défaut. Attendez que la création du projet soit terminée. Ce processus prend quelques minutes.

  1. Connectez-vous à Microsoft Foundry. Assurez-vous que le bouton bascule New Foundry est désactivé. Ces étapes font référence à Foundry (classique).
    Connectez-vous à Microsoft Foundry. Assurez-vous que l'interrupteur New Foundry est activé. Ces étapes font référence à Foundry (nouveau).
  2. Le projet sur lequel vous travaillez apparaît dans le coin supérieur gauche.
  3. Pour créer un projet, sélectionnez le nom du projet, puis créez un projet.
  4. Donnez un nom à votre projet, puis sélectionnez Créer un projet.

Déployer le modèle

  1. Lorsque vous créez le projet et les ressources, un assistant de déploiement s’affiche. DeepSeek-R1 est disponible en tant que modèle Foundry vendu directement par Azure. Vous pouvez consulter les détails tarifaires du modèle en sélectionnant l’onglet DeepSeek dans la page de tarification de Foundry Models.

  2. Configurez les paramètres de déploiement. Par défaut, le déploiement reçoit le nom du modèle que vous déployez. Le nom du déploiement est utilisé dans le paramètre model des demandes pour router vers ce déploiement de modèle particulier. Cette configuration vous permet de configurer des noms spécifiques pour vos modèles lorsque vous attachez des configurations spécifiques.

  3. Foundry sélectionne automatiquement la ressource Foundry que vous avez créée précédemment avec votre projet. Utilisez l’option Personnaliser pour modifier la connexion en fonction de vos besoins. DeepSeek-R1 est actuellement proposé sous le type de déploiement Global Standard , qui offre un débit et des performances plus élevés.

    Capture d’écran montrant comment déployer le modèle.

  4. Sélectionnez Déployer.

  5. Une fois le déploiement terminé, la page Détails du déploiement s’ouvre. Maintenant, le nouveau modèle est prêt à être utilisé.

  1. Ajoutez un modèle à votre projet. Sélectionnez Générer au milieu de la page, puis Model.
  2. Sélectionnez Déployer le modèle de base pour ouvrir le catalogue de modèles.
  3. Recherchez et sélectionnez la tuile DeepSeek-R1 pour ouvrir sa fiche de modèle, puis sélectionnez Déployer. Vous pouvez sélectionner Déploiement rapide pour utiliser les valeurs par défaut ou sélectionner Personnaliser le déploiement pour afficher et modifier les paramètres de déploiement.

Une fois le déploiement terminé, vous atterrissez sur son terrain de jeu, où vous pouvez commencer à interagir avec le déploiement.

Utiliser le modèle dans le terrain de jeu

Vous pouvez commencer à utiliser le modèle dans le terrain de jeu pour avoir une idée des fonctionnalités du modèle.

  1. Dans la page détails du déploiement, sélectionnez Ouvrir dans le terrain de jeu dans la barre supérieure. Cette action ouvre le terrain de jeu de conversation.

  2. Dans la liste déroulante Déploiement du terrain de jeu de conversation, le déploiement que vous avez créé est déjà sélectionné automatiquement.

  3. Configurez l’invite du système selon vos besoins. En général, les modèles de raisonnement n’utilisent pas les messages système de la même façon que d’autres types de modèles.

    Capture d’écran montrant comment sélectionner un déploiement de modèle à utiliser dans le terrain de jeu, configurer le message système et le tester.

  4. Tapez votre requête et consultez les sorties.

  5. Utilisez l’affichage du code pour afficher des détails sur la façon d’accéder au déploiement du modèle par programmation.

  1. Insérez vos requêtes, telles que « Combien de langues sont dans le monde ? » dans le terrain de jeux.

Modèles de raisonnement rapide

Lorsque vous élaborez des consignes pour des modèles de raisonnement, tenez compte des éléments suivants :

  • Utilisez des instructions simples et évitez d’utiliser des techniques de chaîne de réflexion.
  • Les fonctionnalités de raisonnement intégrées rendent les invites zéro coup simples aussi efficace que les méthodes plus complexes.
  • Lorsque vous fournissez un contexte ou des documents supplémentaires, comme dans les scénarios RAG, y compris uniquement les informations les plus pertinentes peuvent aider à empêcher le modèle de sur-compliquer sa réponse.
  • Les modèles de raisonnement peuvent prendre en charge l’utilisation des messages système. Toutefois, ils peuvent ne pas les suivre aussi strictement que d’autres modèles de non-raisonnement.
  • Lors de la création d’applications à plusieurs tour, envisagez d’ajouter uniquement la réponse finale du modèle, sans contenu de raisonnement, comme expliqué dans la section Contenu de raisonnement .

Notez que les modèles de raisonnement peuvent prendre plus de temps pour générer des réponses. Ils utilisent de longues chaînes de raisonnement qui permettent une résolution de problèmes plus profonde et plus structurée. Ils effectuent également une auto-vérification pour vérifier leurs réponses et corriger leurs erreurs, présentant ainsi des comportements autoréflexifs émergents.

Utiliser le modèle dans le code

Utilisez le point de terminaison et les informations d’identification des modèles Foundry pour vous connecter au modèle :

Capture d’écran montrant comment obtenir l’URL et la clé associées au déploiement.

  1. Sélectionnez le volet Détails dans le volet supérieur des terrains de jeux pour afficher les détails du déploiement. Ici, vous trouverez l’URI et la clé API du déploiement.
  2. Obtenez le nom de votre ressource à partir de l’URI du déploiement à utiliser pour inférer le modèle via du code.

Utilisez les API Azure OpenAI de nouvelle génération v1 pour consommer le modèle dans votre code. Ces exemples de code utilisent une approche d’authentification sécurisée sans clé, Microsoft Entra ID, via la bibliothèque Azure Identity.

Installez le package openai à l’aide de votre gestionnaire de package, par exemple pip :

pip install --upgrade openai

L’exemple suivant montre comment créer un client pour traiter des complétions de chat, puis générer et afficher la réponse.


from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.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))

Le raisonnement peut générer des réponses plus longues et consommer un plus grand nombre de jetons. Vous pouvez voir les limites de débit qui s’appliquent aux modèles DeepSeek-R1. Envisagez d’avoir une stratégie de réessai pour gérer les limites de débit. Vous pouvez également demander des augmentations aux limites par défaut.

Contenu de raisonnement

Certains modèles de raisonnement, comme DeepSeek-R1, génèrent des complétions et incluent le raisonnement qui les sous-tend. Le raisonnement associé à l’achèvement est inclus dans le contenu de la réponse dans les balises <think> et </think>. Le modèle peut sélectionner les scénarios pour lesquels générer du contenu de raisonnement. L’exemple suivant montre comment générer le contenu de raisonnement à l’aide de Python :

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 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. \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

Paramètres

En général, les modèles de raisonnement ne prennent pas en charge les paramètres suivants que vous pouvez trouver dans les modèles d’achèvement de conversation :

  • Température
  • Pénalité de présence
  • Pénalité de répétition
  • Paramètre top_p