Todos os produtos
Search
Central de documentação

Platform For AI:Deploy large language models on PAI-EAS

Última atualização: Sep 22, 2026

O PAI-EAS oferece uma solução completa para implantar modelos de linguagem grandes (LLMs) populares, como DeepSeek e Qwen, com um único clique. Isso simplifica tarefas complexas como configuração de ambiente, ajuste de desempenho e gerenciamento de custos.

Início rápido: Implante um modelo open source

Este exemplo mostra como implantar o modelo open source Qwen3-8B. O mesmo processo se aplica a outros modelos suportados.

Etapa 1: Crie um serviço

  1. Faça login no PAI console. Selecione uma região na parte superior da página. Em seguida, selecione o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).

  2. Clique em Deploy Service. Na área Scenario-based Model Deployment, clique em LLM Deployment.

  3. Configure os seguintes parâmetros principais:

    Parâmetro

    Valor

    Model Settings

    Selecione Public Model, pesquise Qwen3-8B e selecione-o.

    Inference Engine

    Selecione vLLM (Recomendado, compatível com a API OpenAI).

    Deployment Template

    Selecione Single-Node. O sistema preenche automaticamente os parâmetros recomendados, como tipo de instância e imagem, com base no modelo.

  4. Clique em Deploy. A implantação do serviço leva cerca de 5 minutos. Quando o status do serviço mudar para Running, a implantação estará concluída.

    Nota

    Se a implantação do serviço falhar, consulte Service deployment and status issues para solução de problemas.

Etapa 2: Verifique o serviço

Após a implantação, use a depuração online para verificar se o serviço está sendo executado corretamente.

  1. Clique no nome do serviço para abrir a página de detalhes e, em seguida, mude para a aba Online Debugging.

  2. Configure os seguintes parâmetros de solicitação:

    Parâmetro

    Valor

    Método de solicitação

    POST

    Caminho da URL

    Insira o caminho completo da URL no formato /api/predict/{service_name}/v1/chat/completions, em que {service_name} é o nome do seu serviço implantado. Exemplo: /api/predict/llm_qwen3_8b_test/v1/chat/completions.

    Body

    {
      "model": "Qwen3-8B",
      "messages": [
        {"role": "user", "content": "Hello!"}
      ],
      "max_tokens": 1024
    }

    Headers

    Certifique-se de que a solicitação inclua Content-Type: application/json.

  3. Clique em Send Request. Você deve receber uma resposta que contenha a saída do modelo.

Se a solicitação retornar um código de status 200 e uma resposta JSON do tipo chat.completion, o serviço estará implantado e sendo executado corretamente. O corpo da resposta contém a saída do modelo no campo content.

Chame a API

Antes de chamar o serviço, acesse a aba View Endpoint Information na página de detalhes do serviço e visualize o endpoint e o token.

Os exemplos a seguir mostram como chamar a API do serviço:

cURL

curl -X POST <EAS_ENDPOINT>/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{
        "model": "<model_name>",
        "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "hello"
        }
        ],
        "max_tokens":1024,
        "temperature": 0.7,
        "top_p": 0.8,
        "stream":true
    }'

No código anterior, substitua os seguintes parâmetros:

  • Substitua <EAS_ENDPOINT> e <EAS_TOKEN> pelo endpoint e pelo token do seu serviço implantado.

  • Substitua <model_name> pelo nome do modelo. Para vLLM ou SGLang, obtenha o nome do modelo na API de lista de modelos em <EAS_ENDPOINT>/v1/models.

    curl -X GET <EAS_ENDPOINT>/v1/models -H "Authorization: <EAS_TOKEN>"

OpenAI SDK

Recomendamos o uso do SDK oficial para Python para interagir com o serviço. Certifique-se de ter instalado o OpenAI SDK: pip install openai.

from openai import OpenAI

# 1. Configure the client.
# Replace <EAS_TOKEN> with the token of your deployed service.
openai_api_key = "<EAS_TOKEN>"
# Replace <EAS_ENDPOINT> with the endpoint of your deployed service.
openai_api_base = "<EAS_ENDPOINT>/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

# 2. Get the model name.
# For BladeLLM, set model = "". BladeLLM does not require a model parameter
# and does not support getting the model name by using client.models.list().
# Set it to an empty string to meet the mandatory parameter requirement of the OpenAI SDK.
models = client.models.list()
model = models.data[0].id
print(model)

# 3. Send a chat request.
# Both streaming (stream=True) and non-streaming (stream=False) outputs are supported.
stream = True
chat_completion = client.chat.completions.create(
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "hello"},          
    ],
    model=model,
    top_p=0.8,
    temperature=0.7,
    max_tokens=1024,
    stream=stream,
)

if stream:
    for chunk in chat_completion:
        print(chunk.choices[0].delta.content, end="")
else:
    result = chat_completion.choices[0].message.content
    print(result)

Python requests

Se não quiser adicionar uma dependência do OpenAI SDK, use a biblioteca requests.

import json
import requests

# Replace <EAS_ENDPOINT> with the endpoint of your deployed service.
EAS_ENDPOINT = "<EAS_ENDPOINT>"
# Replace <EAS_TOKEN> with the token of your deployed service.
EAS_TOKEN = "<EAS_TOKEN>"
# Replace <model_name> with the model name. You can get it from the <EAS_ENDPOINT>/v1/models API.
# For BladeLLM, this API is not supported. You can omit the "model" field or set it to "".
model = "<model_name>"

url = f"{EAS_ENDPOINT}/v1/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": EAS_TOKEN,
}

stream = True
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "hello"},
]

req = {
    "messages": messages,
    "stream": stream,
    "temperature": 0.7,
    "top_p": 0.8,
    "max_tokens": 1024,
    "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")
        # The following code processes Server-Sent Events (SSE) formatted streaming responses.
        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"])

Crie uma interface web local

O Gradio é uma biblioteca de UI para Python que ajuda a criar rapidamente interfaces interativas para modelos. Siga estas etapas para executar uma interface web do Gradio localmente.

  1. Baixe o código

    GitHub link | OSS link

  2. Prepare o ambiente

    É necessário o Python 3.10 ou posterior. Instale as dependências executando pip install openai gradio.

  3. Inicie o aplicativo web

    No terminal, execute o seguinte comando. Substitua <EAS_ENDPOINT> e <EAS_TOKEN> pelo endpoint e pelo token do serviço implantado.

    python webui_client.py --eas_endpoint "<EAS_ENDPOINT>" --eas_token "<EAS_TOKEN>"
  4. Após a inicialização bem-sucedida, uma URL local será exibida (geralmente http://127.0.0.1:7860). Abra essa URL em um navegador para acessá-la.

Integração com aplicativos de terceiros

Integre um serviço do PAI-EAS com vários clientes e ferramentas de desenvolvimento compatíveis com a API OpenAI. As principais definições de configuração são o endpoint e o token do serviço e o nome do modelo.

Dify

  1. Instale o provedor de modelo compatível com a API OpenAI

    Clique no seu avatar no canto superior direito e selecione Settings. No painel à esquerda, selecione Model Providers. Se OpenAI-API-compatible não estiver na Model List, encontre-o na lista abaixo e clique em Install.

  2. Adicione um modelo

    Clique em Add Model no canto inferior direito do cartão OpenAI-API-compatible e configure os seguintes parâmetros:

    • Model type: Selecione LLM.

    • Model name: Para uma implantação vLLM, envie uma solicitação GET para o endpoint /v1/models a fim de obter o nome. Para este exemplo, insira Qwen3-8B.

    • API key: Insira o token do seu serviço PAI-EAS.

    • API endpoint URL: Insira o endpoint público do seu serviço PAI-EAS e adicione /v1 ao final.

  3. Teste a integração

    1. Na página principal do Dify, clique em Create Blank App, selecione o tipo Chatflow, insira um nome para o aplicativo e outras informações e, em seguida, clique em Create.

    2. Clique no nó LLM, selecione o modelo adicionado e defina o contexto e os prompts. Selecione Qwen3-8B CHAT na categoria OpenAI-API-compatible. No prompt SYSTEM, insira uma descrição de função e referencie a variável de contexto sys.query. Na área USER, adicione as variáveis sys.query e sys.files. Ajuste os parâmetros do modelo, como Max Tokens (o padrão é 512), Presence Penalty e Thinking Mode, conforme necessário.

    3. Clique em Preview no canto superior direito e insira uma pergunta.

      O bot processa a pergunta por meio do workflow e retorna uma resposta. A parte superior da área de conversa exibe o status de Deep thinking e o tempo decorrido.

Chatbox

  1. Acesse o Chatbox, baixe e instale o cliente para o seu dispositivo ou clique em Launch Web App para a versão web. Este exemplo usa o macOS M3.

  2. Adicione um provedor de modelo. Clique em Settings, adicione um provedor de modelo, insira um nome como pai e selecione OpenAI API Compatible como o modo de API.

  3. Selecione o provedor pai e configure os seguintes parâmetros:

    • API key: Insira o token do seu serviço PAI-EAS.

    • API host: Insira o endpoint público do seu serviço PAI-EAS e adicione /v1 ao final.

    • API path: Deixe este campo vazio.

    • Model: Clique em Get para adicionar o modelo. O mecanismo de inferência BladeLLM não oferece suporte à recuperação de modelo baseada em API. Se estiver usando o BladeLLM, adicione o modelo manualmente clicando em New.

  4. Teste o chat. Clique em New Chat e selecione o serviço de modelo no canto inferior direito da caixa de entrada de texto.

    A parte superior da interface de chat exibe o prompt do sistema, como You are a helpful assistant.. Insira uma pergunta como "Who are you?" na caixa de texto e envie-a. A área de resposta do assistente mostra uma seção recolhida de Deep thinking com o tempo de pensamento, seguida pela resposta do modelo.

Cherry Studio

LangChain

O LangChain é um framework Python comum para criar aplicativos de LLM. Como um serviço do PAI-EAS é compatível com a API OpenAI, chame o serviço diretamente com langchain_openai.ChatOpenAI, por exemplo, para compor um template de prompt em uma cadeia.

  1. Instale as dependências

    pip install langchain langchain-openai
  2. Configure o modelo. Configure o ChatOpenAI com os seguintes parâmetros:

    • base_url: Insira o endpoint público do seu serviço PAI-EAS e adicione /v1 ao final.

    • api_key: Insira o token do seu serviço PAI-EAS.

    • model: Insira o nome do modelo. Para uma implantação vLLM, envie uma solicitação GET para o endpoint /v1/models para obter o nome. Para este exemplo, insira Qwen3-8B.

    from langchain_openai import ChatOpenAI
    
    llm = ChatOpenAI(
        base_url="<EAS_ENDPOINT>/v1",
        api_key="<EAS_TOKEN>",
        model="<model_name>"
    )
    Importante

    Você deve adicionar /v1 ao base_url. Se inserir o endpoint público do seu serviço PAI-EAS sem /v1, a chamada retornará 404.

  3. Invocação de cadeia. Componha o modelo com ChatPromptTemplate usando o operador |:

    from langchain_core.prompts import ChatPromptTemplate
    
    prompt = ChatPromptTemplate.from_messages([
        ("system", "You are a helpful assistant."),
        ("user", "{input}")
    ])
    
    chain = prompt | llm
    response = chain.invoke({"input": "Who are you?"})
    print(response.content)

Faturamento

Os custos incluem, mas não se limitam, ao seguinte. Para mais informações, consulte Billing of PAI-EAS.

  • Taxas de computação: Este é o custo principal. Ao criar um serviço do PAI-EAS, escolha recursos de pagamento conforme o uso ou assinatura de acordo com suas necessidades.

  • Taxas de armazenamento: Se usar um modelo personalizado, os arquivos do modelo serão armazenados no Object Storage Service (OSS), o que gera taxas de armazenamento.

Uso em produção

Escolha o modelo certo

  1. Defina o cenário do seu aplicativo:

    • Conversa geral: Escolha sempre um modelo ajustado por instruções, e não um modelo de base, para garantir que o modelo entenda e siga suas instruções.

    • Geração de código: Escolha modelos de código especializados, como a série Qwen3-Coder, pois geralmente apresentam desempenho muito superior ao de modelos de uso geral em tarefas relacionadas a código.

    • Tarefas específicas de domínio: Se a sua tarefa for altamente especializada, como em finanças ou direito, considere encontrar um modelo ajustado para esse domínio ou ajuste você mesmo um modelo de uso geral.

  2. Equilibre desempenho e custo: Modelos maiores geralmente são mais capazes, mas exigem mais recursos de computação e têm custos de inferência mais altos. Comece com um modelo menor, como um de 7B, para validação. Se o desempenho não atender às suas necessidades, teste um modelo maior.

  3. Consulte benchmarks de autoridade: Consulte classificações como OpenCompass e LMSys Chatbot Arena. Essas classificações avaliam os modelos em várias dimensões, incluindo raciocínio, codificação e matemática, e podem fornecer orientações valiosas para a seleção do modelo.

Escolha o mecanismo de inferência certo

  • vLLM/SGLang: Por serem as escolhas principais na comunidade open source, oferecem amplo suporte a modelos, além de documentação e exemplos extensos da comunidade, o que facilita a integração e a solução de problemas.

  • BladeLLM: Mecanismo de inferência desenvolvido pela equipe do Alibaba Cloud PAI. É profundamente otimizado para modelos específicos, especialmente a série Qwen, e pode alcançar maior desempenho e menor uso de memória GPU.

Otimização de inferência

  • Deploy an LLM with intelligent routing: Distribui dinamicamente as solicitações com base em métricas em tempo real, como throughput de tokens e uso de memória GPU. Essa abordagem equilibra o poder de computação e a alocação de memória entre as instâncias de inferência, sendo adequada para implantações com várias instâncias de inferência e cargas de solicitação distribuídas de forma desigual. Isso melhora a utilização dos recursos do cluster e a estabilidade do sistema.

  • Deploy Mixture of Experts (MoE) models by using expert parallelism and PD separation: Para modelos Mixture of Experts (MoE), essa abordagem usa técnicas como paralelismo de especialistas (EP) e separação de Prefill-Decode (PD) para melhorar o throughput de inferência e reduzir os custos de implantação.

FAQ

P: O serviço está travado no estado Pending

Siga estas etapas para solucionar o problema:

  1. Verifique o status da instância: Na página de lista de serviços, clique no nome do serviço para acessar a página de detalhes. Na seção Service Instance, verifique o status da instância. Se mostrar insufficient resources, o grupo de recursos públicos atual não tem capacidade suficiente.

  2. Soluções (em ordem de prioridade):

    1. Opção 1: Altere o tipo de instância. Retorne à página de implantação e selecione um modelo de GPU diferente.

    2. Solução 2: Use recursos dedicados. Para Resource Type, selecione um grupo de recursos do EAS para usar recursos dedicados (o grupo de recursos deve ser criado com antecedência).

  3. Medidas preventivas:

    1. Para evitar as limitações dos recursos públicos, crie um grupo de recursos dedicados.

    2. Durante os horários de pico, teste em várias regiões.

P: Erros de chamada

  1. A chamada de API retorna o seguinte erro: Unsupported Media Type: Only 'application/json' is allowed**

    Certifique-se de que os cabeçalhos da solicitação contenham Content-Type: application/json.

  2. A chamada de API retorna o seguinte erro: The model '<model_name>' does not exist.**

    O mecanismo de inferência vLLM exige que o campo do modelo seja especificado corretamente. Obtenha o nome do modelo chamando o endpoint /v1/models com uma solicitação GET.

Para mais dúvidas, consulte EAS FAQ.