Todos os produtos
Search
Central de documentação

Platform For AI:Deploy DeepSeek-V4 and DeepSeek-R1

Última atualização: Oct 13, 2026

A implantação de modelos DeepSeek exige a configuração do ambiente de computação, o carregamento do modelo e a otimização da inferência. O PAI Model Gallery oferece suporte à implantação com um clique. Em apenas algumas etapas, você obtém um service de modelo compatível com a API OpenAI e o integra rapidamente às suas aplicações.

Arquitetura da solução

Componentes principais

A solução é construída na plataforma PAI e consiste nos seguintes componentes principais:

  • Model Gallery: ponto de entrada para distribuição e implantação de modelos, que fornece modelos DeepSeek predefinidos e configurações de implantação.

  • Elastic Algorithm Service (EAS): o service principal que hospeda a implantação e a inferência de modelos. Ele gerencia automaticamente os recursos de computação subjacentes, como GPUs, e inicia instâncias de service de modelo.

  • Mecanismos de aceleração de inferência (SGLang/vLLM/BladeLLM): otimizam o desempenho da inferência do modelo.

    • SGLang/vLLM: fornece interfaces totalmente compatíveis com a API OpenAI para migrar aplicações existentes.

    • BladeLLM: framework de inferência de alto desempenho desenvolvido internamente, que oferece melhor desempenho em cenários específicos.

  • API gateway: fornece um canal seguro para acessar os services de modelo. Você pode chamar os services usando o endpoint e o token do service.

Método de implantação

Para modelos de grande escala, além da implantação em nó único, o Model Gallery também oferece soluções de implantação com um clique, como {{XREF_0}} e {{XREF_1}}.

Por exemplo, tanto o DeepSeek-V4-Pro-FP8 quanto o DeepSeek-V4-Flash-FP8 podem ser implantados usando o método de separação EP+PD.

Implantação e validação rápidas

Etapa 1: Implantar o service de modelo

  1. Faça logon no PAI console e selecione a região de destino no canto superior esquerdo. No painel de navegação à esquerda, acesse Workspaces e selecione o workspace de destino.

  2. No workspace, acesse QuickStart > Model Gallery.

  3. Pesquise e selecione o modelo de destino na lista de modelos, como DeepSeek-R1-Distill-Qwen-7B, e clique em no cartão do modelo para acessar a página de detalhes.

  4. Clique em Deploy no canto superior direito da página e configure os seguintes parâmetros.

    • Deployment Template: Por padrão, o tipo de placa é A10, o mecanismo de inferência é o SGLang, o método de implantação é em nó único e o cenário de implantação é balanceado.

    • Deployment Resource: Selecione recursos públicos ou recursos dedicados e selecione uma especificação de GPU adequada com base nos requisitos do modelo.

      • Por padrão, os recursos públicos são usados e uma especificação recomendada é fornecida. Se não houver especificações disponíveis, tente mudar para outra região.

        Importante

        Ao implantar usando recursos públicos, o faturamento começa assim que a instância é provisionada, e as cobranças são baseadas na duração do uso, mesmo que não haja chamadas. Interrompa o service prontamente após os testes.

      • Se você selecionar Resource Quota, certifique-se de escolher um mecanismo de inferência e um modelo de implantação correspondentes com base no tipo de instância. Por exemplo, se você usar o Zhenwu PPU, poderá selecionar SGLang como mecanismo de inferência e PPU-810E como tipo de placa no modelo de implantação.

      Um exemplo de especificação de GPU recomendada é ecs.gn7i-c16g1.4xlarge (16 vCPUs, 60 GiB, 1 × NVIDIA A10), que custa aproximadamente CNY 11,1 por hora.

  5. Após confirmar que todas as configurações estão corretas, clique em Deploy. O sistema começa a criar o service.

    Nota

    Para um modelo grande, como o DeepSeek-R1 na versão completa, o processo de carregamento do modelo pode levar de 20 a 30 minutos.

  6. Você pode visualizar o status do job de implantação na página Model Gallery > Job Management > Deployment Jobs. Clique em no nome de um service para acessar a página de detalhes do service. Você também pode clicar em More > More Information no canto superior direito para acessar a página de detalhes do service de modelo no PAI-EAS e obter mais informações.

    Na página de detalhes do service, você pode clicar em View Deployment Events ao lado do campo Status para obter mais detalhes, e clicar em View Call Information no campo Call Information para obter o endpoint e o token do service. Você também pode escolher Elastic Algorithm Service (EAS) no painel de navegação à esquerda para acessar a página de gerenciamento de services do EAS.

Etapa 2: Depuração online

Na página Model Gallery > Job Management > Deployment Jobs, clique em no nome do service implantado e mude para a aba Online Debugging, que oferece suporte tanto à Conversation Debugging quanto à API Debugging.

Nota

As recomendações oficiais de uso para a série de modelos DeepSeek-R1 são as seguintes:

  • Defina a temperatura para um valor entre 0,5 e 0,7. O valor recomendado é 0,6 para evitar saídas repetitivas ou incoerentes.

  • Não adicione um prompt do sistema. Coloque todas as instruções no prompt do usuário.

  • Para perguntas relacionadas à matemática, inclua "Please reason step by step and put the final answer in a \boxed{}." no prompt.

Se apenas a página de depuração de API estiver disponível, o exemplo a seguir mostra como depurar a API de chat de um service de modelo de linguagem grande (LLM):

  1. Defina o método e o caminho da requisição: Na aba de depuração, selecione POST como método HTTP e anexe /v1/chat/completions ao endereço para formar a URL completa da requisição <EAS_ENDPOINT>/v1/chat/completions. Na URL, <EAS_ENDPOINT> é o endpoint do service, que geralmente é pré-preenchido. O formato padrão é http://<uid>.<region-id>.pai-eas.aliyuncs.com/api/predict/<service-name>.

    Para services implantados com SGLang/vLLM, você pode encontrar mais APIs compatíveis em <EAS_ENDPOINT>/openapi.json .
  2. Construa o corpo da requisição.

    Se o prompt for "What is 3 + 5?", o corpo da requisição é formatado da seguinte maneira.

    O valor do parâmetro do modelo é o nome do modelo obtido na API de lista de modelos <EAS_ENDPOINT>/v1/models. Este exemplo usa o DeepSeek-R1-Distill-Qwen-7B.

    Na seção Body, selecione raw e insira o seguinte corpo de requisição JSON:

  3. Envie a requisição.

    Clique em Send Request. A seção Response à direita mostra o código de status 200, e a seção Body exibe a resposta do modelo no formato JSON.

Clique para ver um exemplo de dados de requisição para a API de chat do BladeLLM

Importante

Ao usar o método de implantação acelerada do BladeLLM, se você não especificar o parâmetro max_tokens, a saída será truncada em 16 tokens por padrão. Ajuste o parâmetro de requisição max_tokens de acordo com suas necessidades reais.

Chamada de API

  1. Obtenha o endpoint e o token do service.

    1. Na página Model Gallery > Job Management > Deployment Jobs, clique em no nome do service implantado para acessar a página de detalhes do service.

    2. Clique em View Call Information para obter o endpoint e o token usados para chamar o service.

  2. A seguir, um exemplo de chamada da API de chat.

    Substitua <EAS_ENDPOINT> pelo endpoint do service e <EAS_TOKEN> pelo token do service.

    OpenAI SDK

    Notas:

    • Você deve anexar /v1 ao endpoint.

    • A implantação acelerada do BladeLLM atualmente não é compatível com o uso de client.models.list() para obter a lista de modelos. Para garantir a compatibilidade, defina o valor do modelo como "".

    Implantação acelerada com SGLang/vLLM

    Implantação acelerada com BladeLLM

    HTTP

    Implantação acelerada com SGLang/vLLM

    Substitua <model_name> pelo nome do modelo obtido na API de lista de modelos &lt;EAS_ENDPOINT&gt;/v1/models.

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "model": "<model_name>",
            "messages": [
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    
    import json
    import requests
    # Replace <EAS_ENDPOINT> with the access address of the deployed service, and <EAS_TOKEN> with the Token of the deployed service.
    EAS_ENDPOINT = "<EAS_ENDPOINT>"
    EAS_TOKEN = "<EAS_TOKEN>"
    url = f"{EAS_ENDPOINT}/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": EAS_TOKEN,
    }
    # Replace <model_name> with the model name obtained from the model list API <EAS_ENDPOINT>/v1/models.
    model = "<model_name>"
    stream = True
    messages = [
        {"role": "user", "content": "Hello, please introduce yourself."},
    ]
    req = {
        "messages": messages,
        "stream": stream,
        "temperature": 0.6,
        "top_p": 0.5,
        "top_k": 10,
        "max_tokens": 300,
        "model": model,
    }
    response = requests.post(
        url,
        json=req,
        headers=headers,
        stream=stream,
    )
    if stream:
        for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
            msg = chunk.decode("utf-8")
            if msg.startswith("data"):
                info = msg[6:]
                if info == "[DONE]":
                    break
                else:
                    resp = json.loads(info)
                    print(resp["choices"][0]["delta"]["content"], end="", flush=True)
    else:
        resp = json.loads(response.text)
        print(resp["choices"][0]["message"]["content"])

    Implantação acelerada com BladeLLM

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "messages": [
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    
    import json
    import requests
    # Replace <EAS_ENDPOINT> with the access address of the deployed service, and <EAS_TOKEN> with the Token of the deployed service.
    EAS_ENDPOINT = "<EAS_ENDPOINT>"
    EAS_TOKEN = "<EAS_TOKEN>"
    url = f"{EAS_ENDPOINT}/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": EAS_TOKEN,
    }
    stream = True
    messages = [
        {"role": "user", "content": "Hello, please introduce yourself."},
    ]
    # With BladeLLM accelerated deployment, if the max_tokens parameter is not specified, the output is truncated at max_tokens=16 by default. We recommend that you adjust the max_tokens request parameter based on your actual needs.
    req = {
        "messages": messages,
        "stream": stream,
        "temperature": 0.6,
        "top_p": 0.5,
        "top_k": 10,
        "max_tokens": 300,
    }
    response = requests.post(
        url,
        json=req,
        headers=headers,
        stream=stream,
    )
    if stream:
        for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
            msg = chunk.decode("utf-8")
            if msg.startswith("data"):
                info = msg[6:]
                if info == "[DONE]":
                    break
                else:
                    resp = json.loads(info)
                    if resp["choices"][0]["delta"].get("content") is not None:
                          print(resp["choices"][0]["delta"]["content"], end="", flush=True)
    else:
        resp = json.loads(response.text)
        print(resp["choices"][0]["message"]["content"])
  3. O método de chamada varia dependendo do modelo e do framework de implantação. Para mais informações, consulte a página de introdução do modelo no Model Gallery.

    Por exemplo, a página de introdução do modelo para o DeepSeek-R1-Distill-Qwen-7B no Model Gallery especifica os requisitos de recursos para a implantação acelerada do BladeLLM (são necessários 24 GB de memória de GPU, e apenas as famílias de instâncias ecs.gn7 e posteriores são compatíveis), afirma que o modelo é compatível com as APIs v1/completions e v1/chat/completions da OpenAI, e fornece exemplos de chamada usando comandos curl e scripts Python.

Integração com terceiros

Para se conectar ao Chatbox, Dify ou Cherry Studio, consulte {{XREF_2}}.

Web UI local

Consulte {{XREF_3}}.

Limpeza de recursos

Ao implantar usando recursos públicos, o faturamento começa assim que a instância é provisionada e é baseado na duração do uso, com horas parciais rateadas por minuto. Interrompa ou exclua a instância prontamente após terminar de usá-la.

  1. Volte para a página Task Management > Deployment Tasks.

  2. Encontre o service que você deseja interromper e clique em Stop ou Delete na coluna Actions.

    • Stop: A instância do service é liberada e o faturamento é interrompido, mas a configuração do service é mantida e ele pode ser iniciado novamente mais tarde.

    • Delete: Tanto a configuração do service quanto a instância são excluídas permanentemente.

Seleção de modelo e recursos

O modelo que você seleciona determina os recursos de computação necessários e os custos de implantação. Os modelos DeepSeek são divididos em modelos de versão completa e modelos de versão destilada, que diferem significativamente nos requisitos de recursos.

  • Desenvolvimento e testes: Recomendamos o uso de um modelo de versão destilada, como DeepSeek-R1-Distill-Qwen-7B. Esses modelos têm baixos requisitos de recursos (geralmente uma única GPU com 24 GB de memória de GPU), podem ser implantados rapidamente e com baixo custo, sendo ideais para validação rápida de recursos.

  • Ambientes de produção: Avalie tanto o desempenho quanto o custo do modelo. O DeepSeek-R1-Distill-Qwen-32B oferece um bom equilíbrio entre desempenho e custo. Se você precisar de um desempenho de modelo superior, poderá escolher um modelo de versão completa, mas esses modelos exigem várias GPUs de alto desempenho (como 8 GPUs com 96 GB de memória de GPU cada) e aumentam significativamente os custos.

A tabela a seguir lista as configurações mínimas necessárias para diferentes versões de modelos e o número máximo de tokens suportado ao usar diferentes tipos de instância e mecanismos de inferência.

Modelos de versão completa

Modelo

Método de implantação

Número máximo de tokens (entrada + saída)

Configuração mínima

SGLang (recomendado)

vLLM

DeepSeek-V4-Pro

Nó único/Distribuído

1M

1M

Nó único com 8 × H20-3e (8 × 141 GB de memória de GPU)

DeepSeek-V4-Flash

Nó único

1M

1M

Nó único com 8 × H20-3e (8 × 141 GB de memória de GPU)

DeepSeek-V4-Pro-FP8

Nó único/Separação PD

1M

/

Nó único com 8 × H20-3e (8 × 141 GB de memória de GPU)

DeepSeek-V4-Flash-FP8

Nó único/Separação PD

1M

/

Nó único com 4 × H20-3e (4 × 141 GB de memória de GPU)

DeepSeek-V3

Nó único - NVIDIA GPU

56.000

65.536

Nó único 8 × GU120 (8 × 96 GB de memória de GPU)

Nó único - Zhenwu PPU

56.000

16.384

Distribuído - PAI Lingjun Intelligent Computing Service

163.840

163.840

DeepSeek-R1

Nó único - NVIDIA GPU

56.000

65.536

Nó único 8 × GU120 (8 × 96 GB de memória de GPU)

Nó único - Zhenwu PPU

56.000

16.384

Distribuído - PAI Lingjun Intelligent Computing Service

163.840

163.840

Notas sobre o tipo de instância para implantação em nó único:

  • NVIDIA GPU:

    • ml.gu8v.c192m1024.8-gu120 e ecs.gn8v-8x.48xlarge: disponíveis como recursos públicos, mas seu inventário pode ser limitado.

    • ecs.ebmgn8v.48xlarge: não pode ser usado como recurso público. Você deve comprar recursos dedicados do EAS.

  • Zhenwu PPU: ml.gp7vf.16.40xlarge é um recurso público e só pode ser usado de forma preemptível. Se os recursos de NVIDIA GPU estiverem escassos, você pode mudar para a região China (Ulanqab) para encontrar recursos Zhenwu PPU. Você deve configurar uma VPC ao implantar.

Notas sobre o tipo de instância para implantação distribuída (recomendado quando é necessário alto desempenho):

A implantação distribuída depende de rede de alta velocidade. Portanto, você deve usar {{XREF_4}}, que fornece poder de computação heterogêneo elástico e de alto desempenho, e configurar uma VPC durante a implantação. Para usar o PAI Lingjun Intelligent Computing Service, mude a região para China (Ulanqab).

  • Recursos públicos do Lingjun:

    • ml.gu7xf.8xlarge-gu108: requer quatro máquinas para uma implantação de instância única e só pode ser usado de forma preemptível.

    • Zhenwu PPU: requer duas máquinas para uma implantação de instância única.

  • Recursos pré-pagos do Lingjun: Você deve ser adicionado a uma lista de permissões para usar esses recursos. Entre em contato com seu gerente de vendas ou envie um ticket para consulta.

Modelos de versão destilada

Modelo

Número máximo de tokens (entrada + saída)

Configuração mínima

SGLang (recomendado)

vLLM

BladeLLM

DeepSeek-R1-Distill-Qwen-1.5B

131.072

131.072

131.072

1 × GPU A10 (24 GB de memória de GPU)

DeepSeek-R1-Distill-Qwen-7B

131.072

32.768

131.072

1 × GPU A10 (24 GB de memória de GPU)

DeepSeek-R1-Distill-Llama-8B

131.072

32.768

131.072

1 × GPU A10 (24 GB de memória de GPU)

DeepSeek-R1-Distill-Qwen-14B

131.072

32.768

131.072

1 × GPU L (48 GB de memória de GPU)

DeepSeek-R1-Distill-Qwen-32B

131.072

32.768

131.072

2 × GPU L (2 × 48 GB de memória de GPU)

DeepSeek-R1-Distill-Llama-70B

131.072

32.768

131.072

2 × GU120 (2 × 96 GB de memória de GPU)

DeepSeek-R1-0528-Qwen3-8B: um modelo destilado do DeepSeek-R1 para o Qwen3-8B com 8 bilhões de parâmetros. Ele oferece suporte apenas à implantação e não é compatível com ajuste fino ou treinamento.

Modelos otimizados pelo PAI

O Model Gallery fornece implantação com um clique para os seguintes modelos DeepSeek otimizados pelo PAI:

  • DeepSeek-R1-PAI-optimized

  • DeepSeek-R1-0528-PAI-optimized

  • DeepSeek-V3-0324-PAI-optimized

Custos e riscos

Detalhamento de custos

Para services que usam recursos públicos, o faturamento é calculado por minuto, começando quando a instância é provisionada até que seja interrompida ou excluída. As faturas são liquidadas por hora. As cobranças acumulam mesmo quando o service está ocioso. Interromper o service pausa o faturamento.

Para mais informações, consulte {{XREF_5}}.

Controle de custos

  • Limpeza imediata: Após o desenvolvimento e os testes, interrompa ou exclua imediatamente o service para controlar os custos.

  • Seleção de modelo adequado: Em ambientes de não produção, priorize modelos de versão destilada de menor custo.

  • Uso de recursos preemptíveis: Para tarefas de não produção, você pode ativar o modo {{XREF_6}} durante a implantação. Note que certas condições devem ser atendidas para um lance bem-sucedido, e há risco de instabilidade de recursos.

  • Descontos para uso de longo prazo: Para services de produção de longa duração, você pode reduzir custos comprando um plano de economia ou recursos pré-pagos.

Principais riscos

  • Custos inesperados: Esquecer de interromper o service resulta em faturamento contínuo. Sempre limpe os recursos imediatamente após o uso.

  • Truncamento de saída do BladeLLM: Ao usar o mecanismo BladeLLM, se max_tokens não for especificado na requisição da API, a saída será truncada em 16 tokens, o que pode fazer com que o recurso não funcione conforme o esperado.

  • Uso incorreto da API:

    • Ao chamar um modelo da série DeepSeek-R1, incluir um prompt system em messages pode causar comportamentos inesperados.

    • A URL da requisição da API deve terminar com um caminho como /v1/chat/completions. Caso contrário, um erro 404 é retornado.

  • Inventário de recursos: Ao implantar modelos grandes (especialmente modelos de versão completa), o inventário de recursos de GPU de alto desempenho em regiões específicas pode estar restrito, causando falhas na implantação ou longos tempos de espera. Tente mudar para outra região.

Perguntas frequentes sobre implantação de modelos

Escolha do mecanismo de inferência

  • Recomendado SGLang: Oferece alto desempenho, é totalmente compatível com o padrão da API OpenAI, adapta-se aos ecossistemas de aplicações principais e suporta um comprimento máximo de contexto maior que o vLLM na maioria dos cenários.

  • Alternativa vLLM: Como um framework popular na indústria, também fornece boa compatibilidade com a API.

  • Para cenários específicos {{XREF_7}}: Escolha o BladeLLM, o framework de inferência de alto desempenho desenvolvido independentemente pelo Alibaba Cloud PAI, apenas se você exigir maior desempenho de inferência e puder aceitar diferenças entre suas APIs e o padrão OpenAI (por exemplo, client.models.list() não é suportado, e o parâmetro max_tokens tem comportamento de truncamento padrão).

Service travado em espera

Possíveis causas:

  • Recursos de máquina insuficientes na região atual.

  • O carregamento do modelo demora muito devido ao seu grande tamanho (20 a 30 minutos para modelos como DeepSeek-R1 e DeepSeek-V3).

Aguarde pacientemente por um tempo. Se o service ainda não iniciar conforme o esperado, recomendamos que você tente as seguintes etapas:

  1. Acesse Job Management - Deployment Jobs para abrir a página de detalhes do job de implantação. Clique em More > More Information no canto superior direito da página para acessar a página de detalhes do service de modelo no PAI-EAS e visualizar o status da instância do service.

    Se a coluna Instance Status mostrar Insufficient Inventory, a instância não poderá ser agendada devido à insuficiência de recursos.

  2. Interrompa o service atual, mude para outra região no canto superior esquerdo do console e implante o service novamente.

    Nota

    Modelos com um número extremamente grande de parâmetros, como DeepSeek-R1 e DeepSeek-V3, exigem 8 GPUs para iniciar o service (o inventário de recursos é restrito). Você pode escolher implantar modelos destilados menores, como o DeepSeek-R1-Distill-Qwen-7B (o inventário de recursos é abundante).

Perguntas frequentes sobre chamadas de modelo

A chamada da API retorna 404

Verifique se um sufixo da API OpenAI, como v1/chat/completions, foi adicionado à URL. Para mais informações, consulte as instruções de chamada da API na página de introdução do modelo.

Se você usar uma implantação acelerada com vLLM, verifique se o parâmetro do modelo no corpo da requisição da API de chat está definido com o nome correto do modelo. Você pode obter o nome do modelo em v1/models.

Tempo limite da requisição

O tempo limite padrão da requisição do gateway para implantações é de 180 segundos. Para estendê-lo, você pode configurar um gateway dedicado e enviar um ticket para ajustar o tempo limite da requisição do gateway dedicado. O tempo limite pode ser estendido para até 600 segundos.

Sem o recurso de "pesquisa na web"

O recurso de "pesquisa na web" não é ativado apenas com a implantação do service de modelo; ele exige a construção de uma aplicação de IA (agente) separada sobre o service.

O modelo pula o pensamento

Se o modelo DeepSeek-R1 às vezes pular o processo de pensamento, use o modelo de chat atualizado do DeepSeek que força o pensamento:

  1. Modifique o comando de inicialização.

    Na configuração do service, edite a configuração JSON e modifique o campo containers-script para adicionar "--chat-template /model_dir/template_force_thinking.jinja" (você pode adicioná-lo após "--served-model-name DeepSeek-R1").

    Para um service já implantado, acesse Model Gallery > Job Management > Deployment Jobs, clique em no nome do service implantado e, em seguida, clique em Update service no canto superior direito da página de detalhes para acessar a página de configuração.

  2. Modifique o corpo da requisição. Em cada requisição, adicione {"role": "assistant", "content": "<think>\n"} no final da mensagem.

Desativação do modo de pensamento

Os modelos da série DeepSeek-R1 atualmente não oferecem suporte à desativação do processo de pensamento.

Conversas de múltiplas rodadas

O service de modelo não salva o histórico de conversas. O cliente deve armazenar o histórico de conversas e adicioná-lo às requisições enviadas ao modelo. O exemplo a seguir mostra um service implantado com SGLang.

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{
        "model": "<model_name>",
        "messages": [
         {
            "role": "user", 
            "content": "Hello"
        },
        {
            "role": "assistant",
            "content": "Hello! Nice to meet you. How can I help you?"
        },
        {
            "role": "user",
            "content": "What was my previous question?"
        }
        ]
    }' \
    <EAS_ENDPOINT>/v1/chat/completions

Documentação relacionada