Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Inferência em lote

Última atualização: Jul 09, 2026

Para cenários de inferência que não exigem respostas em tempo real, a inferência em lote processa grandes volumes de solicitações de dados de forma assíncrona com 50% do custo da inferência em tempo real. Sua API compatível com OpenAI é ideal para trabalhos em lote, como avaliação de modelos e rotulagem de dados.

Como funciona

  1. Envie uma tarefa: faça upload de um arquivo JSONL contendo várias solicitações para criar uma tarefa de inferência em lote.

  2. Processamento assíncrono: o sistema processa as tarefas em uma fila em segundo plano. Monitore o progresso e o status da tarefa no console ou pela API.

  3. Baixe os resultados: após a conclusão da tarefa, o sistema gera um arquivo de resultados para as respostas bem-sucedidas e um arquivo de erros com detalhes sobre quaisquer falhas.

Escopo

China (Beijing)

Modelos suportados:

Importante
  • No cenário de processamento em lote, o limite de tokens de contexto por solicitação é de 256 K para qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen3.5-flash e qwen3.5-omni-plus. O modelo qwen3.5-omni-plus não suporta saída de voz.

  • Alguns modelos suportam o modo de pensamento. Ativar esse modo gera tokens de pensamento e aumenta os custos.

  • Os modelos das séries qwen3.7, qwen3.6 e qwen3.5 têm o modo de pensamento ativado por padrão. Se você usar um modelo de pensamento híbrido, defina explicitamente o parâmetro enable_thinking. Defina este parâmetro como true para ativar o modo ou false para desativá-lo.

  • No corpo da solicitação JSONL, enable_thinking é um parâmetro de nível superior de body e deve estar no mesmo nível de model. Não o coloque dentro de extra_body.

Singapore

Modelos suportados: qwen-max, qwen-plus, qwen-turbo.

Singapore

Modelos suportados: qwen-max, qwen-plus, qwen-flash, qwen-turbo.

China (Beijing)

Modelos suportados:

Importante
  • No cenário de processamento em lote, o limite de tokens de contexto por solicitação é de 256 K para qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen3.5-flash e qwen3.5-omni-plus. O modelo qwen3.5-omni-plus não suporta saída de voz.

  • Alguns modelos suportam o modo de pensamento. Ativar esse modo gera tokens de pensamento e aumenta os custos.

  • Os modelos das séries qwen3.7, qwen3.6 e qwen3.5 têm o modo de pensamento ativado por padrão. Se você usar um modelo de pensamento híbrido, defina explicitamente o parâmetro enable_thinking. Defina este parâmetro como true para ativar o modo ou false para desativá-lo.

  • No corpo da solicitação JSONL, enable_thinking é um parâmetro de nível superior de body e deve estar no mesmo nível de model. Não o coloque dentro de extra_body.

Usar inferência em lote

Etapa 1: Preparar o arquivo de entrada

Antes de criar uma tarefa, prepare um arquivo JSONL que atenda aos seguintes requisitos:

  • Formato: JSONL codificado em UTF-8 (um objeto JSON por linha).

  • Limites de escala: até 50.000 solicitações por arquivo e tamanho máximo de 500 MB.

    Se seu conjunto de dados exceder esses limites, divida-o em vários arquivos e envie-os como tarefas separadas.
  • Limite por linha: cada objeto JSON pode ter até 6 MB e não deve exceder a janela de contexto do modelo.

  • Consistência: todas as solicitações no mesmo arquivo devem usar o mesmo modelo .

  • Identificador exclusivo: cada solicitação deve incluir um campo custom_id exclusivo no arquivo para correspondência de resultados. O custom_id suporta no máximo 256 caracteres. Se esse limite for excedido, a validação da tarefa falhará. Para retornar um identificador mais longo, use um campo personalizado no parâmetro metadata ao criar a tarefa. Para obter mais informações, consulte Usar metadados para retornar identificadores personalizados.

Cada objeto JSON deve seguir o seguinte esquema:

Parâmetro

Tipo

Obrigatório

Descrição

custom_id

string

Sim

Identificador exclusivo da solicitação no arquivo.

method

string

Sim

O método HTTP suportado é POST.

url

string

Sim

Apenas o endpoint de solicitação /v1/chat/completions é suportado.

body

object

Sim

O corpo da solicitação segue o mesmo formato da API /v1/chat/completions.

Arquivo de exemplo

Baixe o arquivo de exemplo test_model.jsonl. O conteúdo é o seguinte:

{"custom_id":"1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"Hello!"}]}}
{"custom_id":"2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is 2+2?"}]}}

Configure o modo de pensamento na inferência em lote

Alguns modelos, como qwen3.7-plus, qwen3.7-max e as séries qwen3.6 e qwen3.5, têm o modo de pensamento ativado por padrão, o que gera tokens de pensamento adicionais. Para configurar o modo de pensamento na inferência em lote, defina o parâmetro enable_thinking no mesmo nível do parâmetro model dentro do body de cada solicitação. Use o parâmetro opcional thinking_budget para definir um limite superior no número de tokens de pensamento.

Importante

Os parâmetros enable_thinking e thinking_budget devem estar diretamente no nível superior do body, no mesmo nível de model. Não os coloque em extra_body. O parâmetro extra_body é um mecanismo para passar parâmetros não padrão com o SDK Python da OpenAI; ele é válido apenas para chamadas de inferência em tempo real e não se aplica a arquivos de inferência em lote.

Exemplo: Desativar o modo de pensamento

{"custom_id":"request-1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":false,"messages":[{"role":"user","content":"Hello"}]}}

Exemplo: Ative o modo de pensamento e limitar o orçamento de tokens de pensamento

{"custom_id":"request-2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":true,"thinking_budget":50,"messages":[{"role":"user","content":"Please analyze the following question"}]}}

Etapa 2: Crie uma tarefa de inferência em lote

  1. Acesse a página Batch Inference, clique em Create Batch.

  2. Na caixa de diálogo exibida, insira um Task Name e uma Description, defina o Maximum Waiting Time (de 1 a 14 dias) e faça upload do arquivo JSONL.

    Clique em Download Sample File para obter o modelo.

    image

  3. Ao terminar, clique em Confirm.

Etapa 3: Monitorar e gerencie tarefas

  • Visualize:

    • Na página de lista de tarefas, visualize o progresso da tarefa (solicitações processadas/total de solicitações) e o Status.

    • Pesquise pelo nome ou ID da tarefa ou filtre por workspace para localizar rapidamente uma tarefa específica.image

  • Gerencie:

    • Cancelar: cancele tarefas no estado Executing na coluna Actions.

    • Solucionar problemas: para uma tarefa com falha, passe o mouse sobre o status para visualizar um resumo do erro ou baixe o arquivo de erros para obter detalhes.image

Etapa 4: Baixe resultados

Importante

As tarefas são excluídas automaticamente 30 dias após a conclusão. Baixe seus resultados prontamente.

Quando a tarefa for concluída, clique em View Results para baixar o arquivo de saída: image

  • Arquivo de resultados: registra todas as solicitações bem-sucedidas e seus resultados de response.

  • Arquivo de erros (se houver): registra todas as solicitações com falha e seus detalhes de error.

Ambos os arquivos contêm um campo custom_id, usado para corresponder aos dados de entrada originais, associar resultados ou localizar erros.

Etapa 5: Visualize estatísticas de uso (opcional)

Acesse a página Model Monitoring, filtre e visualize as estatísticas de uso para inferência em lote.

  • Visualize visão geral dos dados: selecione um Time Range (até 30 dias), defina o Inference Type como Batches e visualize o seguinte:

    • Dados de monitoramento: estatísticas resumidas para todos os modelos no período selecionado, como total de chamadas e falhas.

    • Lista de modelos: dados detalhados de cada modelo, como total de chamadas, taxa de falha e duração média da chamada.

    image

    Para visualizar dados de inferência com mais de 30 dias, acesse a página Bills.
  • Visualize detalhes do modelo: em Models, clique em Monitor na coluna Actions do modelo desejado para visualizar as Call Statistics, como número e volume de chamadas.image

Importante
  • Os dados de chamadas para inferência em lote são registrados com base no horário de conclusão da tarefa. Para tarefas em execução, as informações de chamada só podem ser consultadas após a conclusão da tarefa.

  • Os dados de monitoramento podem ter um atraso de uma a duas horas.

Usar metadados para retornar identificadores personalizados

O campo custom_id suporta até 256 caracteres. Se você precisar retornar um identificador mais longo no arquivo de resultados, use um campo personalizado em metadata.

Campos de metadados

O parâmetro metadata é opcional na criação de uma tarefa em lote. Ele suporta os seguintes campos:

  • ds_name: nome da tarefa. Este nome aparece na coluna Task Name no console.

  • ds_description: descrição da tarefa. Esta descrição aparece na coluna Task Description no console.

  • Campos personalizados: além dos campos oficiais, o objeto metadata também aceita quaisquer campos personalizados, e seus valores não estão limitados a 256 caracteres. Ao consultar os detalhes da tarefa, todos os campos personalizados são retornados integralmente.

Exemplo de código

O exemplo a seguir mostra como usar um campo personalizado em metadata para retornar um identificador com mais de 256 caracteres:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

batch = client.batches.create(
    input_file_id="file-batch-xxxxxxxxxxxxxxxxxxxx",
    endpoint="/v1/chat/completions",
    completion_window="24h",
    metadata={
        "ds_name": "my_batch_task",
        "ds_description": "A description for my batch inference task",
        "my_custom_field": "The value of this field can exceed 256 characters and is used to pass back longer identifier information..."
    }
)
print(batch)

Após criar uma tarefa com êxito, chame a operação GET /v1/batches/{batch_id} para recuperar as informações completas de metadata, que incluem todos os campos personalizados e seu conteúdo completo.

Referência da API

Em ambiente de produção, use a API compatível com OpenAI para automatizar a criação e o gerenciamento de tarefas em lote. O fluxo de trabalho principal é o seguinte:

  1. Fazer upload de um arquivo

    Chame POST /v1/files para fazer upload de um arquivo. Registre o ID do arquivo retornado.

  2. Para criar uma tarefa, informe o ID do arquivo , chame POST /v1/batches e registre o batch_id retornado.

  3. Consultar status usando o batch_id para consultar GET /v1/batches/{batch_id}. Quando o status mudar para completed, registre o output_file_id e interrompa a consulta.

  4. Para baixar o arquivo de resultados, use o output_file_id para chamar GET /v1/files/{output_file_id}/content.

Para definições completas da API Batch e exemplos de código, consulte Compatível com OpenAI - Batch (entrada de arquivo).

Ciclo de vida da tarefa

Status

Descrição

validating

O sistema está validando o formato do arquivo (especificação JSONL) e o formato da API de cada solicitação.

in_progress

O sistema validou o arquivo e começou a processar as solicitações de inferência.

finalizing

Todas as solicitações foram processadas e o sistema está gravando os resultados nos arquivos de saída.

completed

Os arquivos de resultados e de erros foram gerados e estão disponíveis para download.

failed

A tarefa falhou durante o estágio validating, geralmente devido a erros no nível do arquivo, como formato JSONL incorreto ou arquivo muito grande. Nesse estado, nenhuma solicitação de inferência é executada e nenhum arquivo de resultado é gerado.

expired

O tempo de execução da tarefa excedeu o tempo máximo de espera definido na criação e o sistema a encerrou. Ao criar uma nova tarefa, considere definir um tempo de espera maior.

cancelled

O usuário cancelou a tarefa. Quaisquer solicitações não processadas são encerradas.

Faturamento

  • Preços: para todas as solicitações bem-sucedidas, os tokens de entrada e saída custam 50% do preço de inferência em tempo real do modelo correspondente. Para obter detalhes, consulte Modelos e preços.

  • Escopo de faturamento:

    • A cobrança ocorre apenas para solicitações executadas com êxito em uma tarefa.

    • Falhas na análise de arquivos, na execução de tarefas ou erros de solicitação no nível da linha não geram cobranças.

    • Para tarefas canceladas, quaisquer solicitações concluídas com êxito antes do cancelamento são cobradas normalmente.

Nota

Perguntas frequentes

  1. Preciso comprar ou ativar algo extra para usar a inferência em lote?

    Não. O recurso fica disponível após a ativação do Model Studio. As cobranças ocorrem com base no pagamento conforme o uso e são deduzidas do saldo da sua conta.

  2. Por que minha tarefa falhou imediatamente após o envio (o status mudou para failed)?

    Isso geralmente indica um erro no nível do arquivo, e nenhuma solicitação de inferência foi executada. Verifique os itens a seguir nesta ordem:

    • Formato do arquivo: verifique se o arquivo usa o formato JSONL estrito, com um objeto JSON completo por linha.

    • Escala do arquivo: garanta que o tamanho do arquivo e o número de linhas não excedam os limites. Para obter detalhes, consulte Etapa 1: Preparar o arquivo de entrada.

    • Consistência do modelo: verifique se o campo body.model é idêntico em todas as solicitações do arquivo e se o modelo usado é suportado na região atual.

  3. Quanto tempo leva para processar uma tarefa?

    O tempo de processamento depende da carga do sistema no momento do envio da tarefa. Durante períodos de pico, as tarefas podem entrar em fila. No entanto, um resultado (sucesso ou falha) é sempre retornado dentro do tempo máximo de espera especificado.

Códigos de erro

Se uma chamada falhar e retornar uma mensagem de erro, consulte Códigos de erro.