Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Exibição no momento:Versão do portal Foundry (clássico) - Alternar para a versão do novo portal Foundry
Neste tutorial, você aprenderá a implantar e usar um modelo de raciocínio DeepSeek no Microsoft Foundry. Este tutorial usa o DeepSeek-R1 para ilustração. No entanto, o conteúdo também se aplica ao modelo de raciocínio DeepSeek-R1-0528 mais recente.
O que você realiza:
Neste tutorial, você implanta o modelo de raciocínio DeepSeek-R1, envia solicitações de inferência programaticamente usando código e analisa a saída de raciocínio para entender como o modelo chega às suas respostas.
As etapas executadas neste tutorial são:
- Crie e configure os recursos Azure para usar DeepSeek-R1 em Foundry Models.
- Configure a implantação do modelo.
- Use DeepSeek-R1 com a próxima geração das APIs OpenAI do Azure v1 para consumir o modelo em código.
Pré-requisitos
Para concluir este artigo, você precisa:
Uma assinatura Azure com uma forma de pagamento válida. Se você não tiver uma assinatura Azure, crie uma conta de Azure paga para começar. Se você estiver usando modelos do GitHub, poderá atualizar de Modelos do GitHub para Modelos do Microsoft Foundry e criar uma assinatura do Azure durante o processo.
Acesso ao Microsoft Foundry com permissões apropriadas para criar e gerenciar recursos. Normalmente, requer a função Colaborador ou Proprietário no grupo de recursos para criar recursos e implantar modelos.
A função Cognitive Services User (ou superior) atribuída à sua conta Azure no recurso Foundry. Essa função é necessária para fazer chamadas de inferência com Microsoft Entra ID. Atribua-o no portal do Azure em Controle de Acesso (IAM) no recurso Foundry.
Instale o SDK do Azure OpenAI para sua linguagem de programação:
-
Python:
pip install openai azure-identity -
.NET:
dotnet add package OpenAI,dotnet add package Azure.Identity -
JavaScript:
npm install openai @azure/identity -
Java: adicionar os pacotes
com.openai:openai-javaecom.azure:azure-identity
-
Python:
DeepSeek-R1 é um modelo de raciocínio que gera explicações junto com respostas. Ele dá suporte a conclusões de chat baseadas em texto, mas não dá suporte a chamadas de ferramentas ou formatos de saída estruturados. Consulte sobre modelos de raciocínio para obter detalhes.
Criar os recursos
Para criar um projeto do Foundry que dê suporte à implantação do DeepSeek-R1, siga estas etapas. Você também pode criar os recursos usando CLI do Azure ou infraestrutura como código, com o Bicep.
Dica
Como você pode customize o painel esquerdo no portal do Microsoft Foundry, você pode ver itens diferentes dos mostrados nestas etapas. Se você não vir o que está procurando, selecione ... Mais na parte inferior do painel esquerdo.
-
Entre no Microsoft Foundry. Certifique-se de que o alternador New Foundry está desativado. Essas etapas se referem ao Foundry (clássico).
Na página inicial, vá para a seção "Explorar modelos e funcionalidades".
Use a caixa de pesquisa na tela para pesquisar o modelo DeepSeek-R1 e abrir seu cartão de modelo.
Selecione Usar este modelo. Esta ação abre um assistente para criar um projeto do Foundry e os recursos necessários para você trabalhar. Você pode manter o nome padrão do projeto ou alterá-lo.
Dica
Você está usando Azure OpenAI em Modelos de Fundiário? Quando você estiver conectado ao portal do Foundry usando um recurso Azure OpenAI, somente modelos Azure OpenAI aparecem no catálogo. Para exibir a lista completa de modelos, incluindo o DeepSeek-R1, use a seção Comunicados superior e localize o cartão com a opção Explorar mais modelos.
Uma nova janela é aberta com a lista completa de modelos. Selecione DeepSeek-R1 na lista e selecione Implantar. O assistente pede para criar um novo projeto.
Selecione o menu suspenso na seção "Opções avançadas" do assistente para ver detalhes sobre as configurações e outros padrões criados junto com o projeto. Esses padrões são selecionados para a funcionalidade ideal e incluem:
Propriedade Descrição Grupo de recursos O contêiner principal para todos os recursos em Azure. Esse contêiner ajuda você a organizar recursos que funcionam juntos. Ele também ajuda você a ter um escopo para os custos associados a todo o projeto. Região A região dos recursos que você está criando. Recurso de fundimento O recurso que habilita o acesso aos modelos principais no catálogo de modelos do Foundry. Neste tutorial, uma nova conta é criada, mas os recursos do Foundry (anteriormente conhecidos como Azure recurso dos Serviços de IA) podem ser compartilhados entre vários hubs e projetos. Os hubs usam uma conexão com o recurso para ter acesso às implantações de modelo disponíveis lá. Para saber como você pode criar conexões com recursos do Foundry para consumir modelos, confira Conectar seu projeto de IA. Selecione Criar para criar o projeto Foundry junto com os outros padrões. Aguarde até que a criação do projeto seja concluída. Esse processo leva alguns minutos.
Implantar o modelo
Quando você cria o projeto e os recursos, um assistente de implantação é aberto. DeepSeek-R1 está disponível como um Modelo de Foundry comercializado diretamente pela Azure. Você pode examinar os detalhes de preços do modelo selecionando a guia DeepSeek na página de preços de Modelos Foundry.
Defina as configurações de implantação. Por padrão, a implantação recebe o nome do modelo que você está implantando. O nome da implantação
modelé usado no parâmetro para rotear solicitações para essa implantação específica de modelo. Essa configuração permite que você configure nomes específicos para seus modelos ao anexar configurações específicas.- A Foundry seleciona automaticamente o recurso Foundry que você criou anteriormente com seu projeto. Use a opção Personalizar para alterar a conexão com base em suas necessidades. DeepSeek-R1 está disponível nos tipos de implantação Global Standard e Global Provisioned, os quais oferecem maior taxa de transferência e desempenho.
Selecione Implantar.
Quando a implantação for concluída, a página Detalhes da implantação será aberta. Agora o novo modelo está pronto para uso.
Se você preferir explorar o modelo interativamente primeiro, pule para Usar o modelo no playground.
Usar o modelo no código
Use o endpoint e as credenciais do Foundry Models para se conectar ao modelo.
Use a próxima geração v1 Azure APIs OpenAI para consumir o modelo em seu código. Esses exemplos de código usam uma abordagem de autenticação segura e sem chave, Microsoft Entra ID, por meio da biblioteca de identidades Azure.
Os exemplos de código a seguir demonstram como:
Autentique com Microsoft Entra ID usando
DefaultAzureCredential, que tenta automaticamente vários métodos de autenticação (variáveis de ambiente, identidade gerenciada, CLI do Azure e outros). A ordem exata depende da versão do SDK de Identidade Azure que você está usando.Dica
Para desenvolvimento local, verifique se você está autenticado com CLI do Azure executando
az login. Para implantações de produção em Azure, configure a identidade gerenciada para seu aplicativo.Crie um cliente de conclusão de chat conectado ao modelo implantado
Enviar um prompt básico para o modelo de DeepSeek-R1
Receber e exibir a resposta
Saída esperada: Uma resposta JSON que contém a resposta do modelo, o processo de raciocínio (dentro de tags <think>), as estatísticas de uso de tokens (tokens de prompt, tokens de conclusão, tokens totais) e informações do modelo.
Instale os pacotes openai e azure-identity use o gerenciador de pacotes, como pip:
pip install --upgrade openai azure-identity
O exemplo a seguir mostra como criar um cliente para consumir conclusões de chat e, em seguida, gerar e imprimir a resposta:
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))
Dica
Depois de executar o código, você deverá ver uma resposta JSON que inclua choices[0].message.content a resposta do modelo. Se o modelo gerar raciocínio, a resposta conterá conteúdo encapsulado em <think>...</think> marcas seguidas pela resposta final.
Referência de API:
- OpenAI Python cliente
- Cliente JavaScript OpenAI
- OpenAI .NET cliente
- Classe DefaultAzureCredential
- Referência da API de conclusões de chat
- Visão geral da biblioteca de identidades Azure
O raciocínio pode gerar respostas mais longas e consumir um número maior de tokens. DeepSeek-R1 dá suporte a até 5.000 solicitações por minuto e 5.000.000 tokens por minuto. Consulte os limites de taxa que se aplicam a modelos de DeepSeek-R1. Considere ter uma estratégia de repetição para lidar com os limites de taxa. Você também pode solicitar aumentos para os limites padrão.
Sobre modelos de raciocínio
Os modelos de raciocínio podem atingir níveis mais altos de desempenho em domínios como matemática, codificação, ciência, estratégia e logística. A maneira como esses modelos produzem saídas é usando explicitamente a cadeia de pensamento para explorar todos os caminhos possíveis antes de gerar uma resposta. Eles verificam suas respostas à medida que as produzem, o que ajuda a chegar a conclusões mais precisas. Como resultado, os modelos de raciocínio lógico podem exigir menos indicações de contexto para produzir resultados eficazes.
Os modelos de raciocínio produzem dois tipos de conteúdo como saídas:
- Conclusões de raciocínio
- Conclusões de saída
Ambas as conclusões contam para o conteúdo gerado a partir do modelo. Portanto, eles contribuem para os limites de token e os custos associados ao modelo. Alguns modelos, como DeepSeek-R1, podem responder com o conteúdo do raciocínio. Outros, como o1, geram apenas as conclusões.
Conteúdo de raciocínio
Alguns modelos de raciocínio, como o DeepSeek-R1, geram conclusões e incluem o raciocínio por trás deles. O raciocínio associado à conclusão é incluído no conteúdo da resposta dentro das marcas <think> e </think>. O modelo pode selecionar os cenários para os quais gerar conteúdo de raciocínio. O exemplo a seguir mostra como gerar o conteúdo de raciocínio usando 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 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
Referência de API:
Modelos de raciocínio de prompt
Ao criar solicitações para modelos de raciocínio, leve o seguinte em consideração:
- Use instruções simples e evite usar técnicas de cadeia de pensamento.
- Os recursos internos de raciocínio tornam os prompts de zero-shot simples tão eficazes quanto métodos mais complexos.
- Ao fornecer contexto ou documentos adicionais, como em cenários RAG, incluindo apenas as informações mais relevantes pode ajudar a impedir que o modelo complique excessivamente sua resposta.
- Modelos de raciocínio podem dar suporte ao uso de mensagens do sistema. No entanto, eles podem não segui-los tão estritamente quanto outros modelos não-racionais.
- Ao criar aplicativos de várias rodadas, considere acrescentar apenas a resposta final do modelo, sem o conteúdo de raciocínio, conforme explicado na seção de conteúdo de raciocínio.
Observe que os modelos de raciocínio podem levar mais tempo para gerar respostas. Eles usam cadeias de raciocínio longas de pensamento que permitem uma solução de problemas mais profunda e estruturada. Eles também executam a auto-verificação para verificar suas respostas e corrigir seus erros, mostrando assim comportamentos auto-reflexivos emergentes.
Parâmetros
Os modelos de raciocínio dão suporte a um subconjunto dos parâmetros de conclusão de chat padrão para manter a integridade de seu processo de raciocínio.
Parâmetros com suporte:
-
max_tokens- Número máximo de tokens a serem gerados na resposta -
stop- Sequências em que a API para de gerar tokens -
stream- Habilitar respostas de fluxo contínuo -
n- Número de finalizações a serem geradas
Parâmetros sem suporte (modelos de raciocínio não dão suporte a estes):
-
temperature- Corrigido para otimizar a qualidade do raciocínio -
top_p- Não configurável para modelos de raciocínio -
presence_penalty- Não disponível -
repetition_penalty- Não disponível para modelos de raciocínio
Exemplo usando max_tokens:
response = client.chat.completions.create(
model="DeepSeek-R1",
messages=[
{"role": "user", "content": "Explain quantum computing"}
],
max_tokens=1000 # Limit response length
)
Para obter a lista completa de parâmetros com suporte, consulte a referência da API de conclusões de chat.
Utilizar o modelo no ambiente de testes
Use o modelo no playground para ter uma ideia das funcionalidades do modelo.
Na página de detalhes da implantação, selecione Abrir no playground na barra superior. Essa ação abre o playground de chat.
No menu suspenso Implantação do playground de chat, a implantação que você criou já está selecionada automaticamente.
Configure o prompt do sistema conforme necessário.
Insira seu prompt e veja os resultados.
Selecione Exibir código para ver detalhes sobre como acessar a implantação do modelo programaticamente.
Solucionando problemas
Se você encontrar problemas ao seguir este tutorial, use as diretrizes a seguir para resolver problemas comuns.
Erros de autenticação (401/403)
- Verifique se você está conectado ao CLI do Azure. Para desenvolvimento local, execute
az loginantes de executar seu código.DefaultAzureCredentialusa suas credenciais de CLI do Azure como um fallback quando nenhuma outra credencial está disponível. - Verifique as atribuições de função. Sua conta de Azure precisa da função Cognitive Services User (ou superior) no recurso Foundry para fazer chamadas de inferência com Microsoft Entra ID. Se você ainda não atribuiu essa função, consulte a seção Pré-requisitos.
- Verifique o formato do endpoint. A URL do endpoint deve seguir o formato
https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/. Verifique se o nome do recurso corresponde ao recurso Foundry.
Problemas de implantação
- Nome da implantação versus nome do modelo. O
modelparâmetro em chamadas à API refere-se ao nome da implantação, não ao nome do modelo. Se você personalizou o nome da implantação durante a criação, use esse nome em vez deDeepSeek-R1. - A implantação não está pronta. Se você receber um erro 404, verifique se o status da implantação é exibido com êxito no portal do Foundry antes de fazer chamadas à API.
Limitação de taxa (429 erros)
- Implementar lógica de repetição. Os modelos de raciocínio geram respostas mais longas que consomem mais tokens. Use a retirada exponencial para lidar com erros de 429 (muitas solicitações).
- Monitorar o uso do token. DeepSeek-R1 conteúdo de raciocínio (dentro das tags
<think>) conta para o limite de token. Consulte cotas e limites para os limites de taxa atuais. - Solicitar aumento de cota. Se você atingir consistentemente os limites de taxa, a solicitação aumentará para os limites padrão.
Problemas de instalação do pacote
- Python. Instale os dois pacotes necessários:
pip install openai azure-identity. Oazure-identitypacote é necessário paraDefaultAzureCredential. - Javascript. Instale os dois pacotes necessários:
npm install openai @azure/identity. - .NET. Instale o pacote Azure Identity:
dotnet add package Azure.Identity.
O que você aprendeu
Neste tutorial, você realizou o seguinte:
- Recursos do Foundry criados para hospedar modelos de IA
- Implantado o modelo de raciocínio DeepSeek-R1
- Fez chamadas de API autenticadas usando Microsoft Entra ID
- Solicitações de inferência enviadas e saídas de raciocínio recebidas
- Analisou-se o conteúdo de raciocínio das respostas do modelo para entender o processo de pensamento do modelo