Todos os produtos
Search
Central de documentação

Platform For AI:Usar um job preemptível

Última atualização: Sep 01, 2026

Se você não tiver poder de computação suficiente, utilize o recurso de jobs preemptíveis do Platform for AI (PAI), que aloca recursos de computação por meio de um sistema de lances. Na maioria dos casos, os recursos preemptíveis oferecem vantagem de preço em relação aos recursos públicos com pagamento conforme o uso. Isso permite acesso econômico ao poder de computação de IA e reduz o custo total dos jobs. Este tópico descreve como usar recursos preemptíveis ao criar um job do Deep Learning Containers (DLC).

Limites

Os recursos preemptíveis apresentam os seguintes limites:

Tipo

Recursos Lingjun

Recursos de computação de uso geral

Regiões suportadas

  • China (Ulanqab)

  • Singapore

  • China (Beijing)

  • China (Shanghai)

  • China (Hangzhou)

  • China (Shenzhen)

  • China (Ulanqab)

  • China (Guangzhou)

Tipo de framework

  • PyTorch

  • MPIJob

PyTorch

Tolerância a falhas automática baseada em AIMaster

Suportado

Não suportado

Limites de recursos

  • Não é possível converter instâncias preemptíveis em instâncias por assinatura.

  • Não é possível modificar especificações de instância e largura de banda.

  • O serviço de registro ICP não é suportado.

  • Não há descontos para grandes clientes.

Recursos

  • Uso de recursos preemptíveis

    Use recursos de computação de uso geral ou recursos Lingjun para criar jobs do DLC. Os preços de mercado dos recursos preemptíveis variam conforme a oferta e a demanda. Instâncias preemptíveis podem custar até 90% menos que instâncias com pagamento conforme o uso. Como todos os usuários da Alibaba Cloud podem preemptar esses recursos, eles são liberados quando seus períodos de proteção terminam. Ao enviar jobs do DLC com recursos preemptíveis, observe as seguintes considerações:

    • Quando o DLC não consegue obter instâncias preemptíveis devido à insuficiência de recursos, os jobs preemptíveis entram em estado de espera e o DLC continua solicitando recursos preemptíveis.

    • Após o sistema solicitar recursos preemptíveis, os jobs do DLC são criados e executados.

    • Depois que os recursos preemptíveis são liberados, os jobs do DLC falham e param de executar.

  • Solicitação de recursos preemptíveis

    Ao usar recursos preemptíveis para criar jobs do DLC, o sistema começa a disputar recursos de instância após o envio dos jobs. Para criar instâncias preemptíveis, atenda aos seguintes requisitos:

    • O preço máximo de lance configurado para recursos preemptíveis deve ser maior ou igual ao preço de mercado.

    • Deve haver estoque suficiente de recursos preemptíveis.

  • Liberação de recursos preemptíveis

    Recursos preemptíveis podem ser interrompidos e liberados com base no preço de mercado, no estoque de recursos, no preço máximo de lance configurado para uma instância durante a criação do job e na duração do uso. Nos cenários a seguir, os recursos preemptíveis podem ser liberados sem notificação prévia:

    • Recursos Lingjun: se o preço máximo de lance de um recurso preemptível for inferior ao preço médio ou se o estoque do recurso for insuficiente, o recurso será liberado.

    • Recursos de computação de uso geral: se o preço máximo de lance de um recurso preemptível for inferior ao preço de mercado atual ou se o estoque do recurso preemptível for insuficiente, o recurso será liberado.

    Para garantir que seus jobs preemptíveis executem de forma contínua e estável, realize as seguintes operações:

    • Ative a Tolerância a Falhas Automática ao criar um job usando recursos Lingjun. Após ativar essa opção, seu job entra automaticamente na fila para disputar recursos preemptíveis. Para mais informações, consulte AIMaster: An elastic and automatic fault tolerance engine.

    • Ao usar recursos de computação de uso geral ou Lingjun para criar um job, utilize o framework EasyCkpt para treinar um modelo de linguagem grande (LLM) PyTorch. O job pode realizar e salvar checkpoints frequentemente, permitindo interrupções. Para mais informações, consulte EasyCkpt.

Faturamento

  • Preços

    O modo de lance de jobs preemptíveis configura o preço máximo de lance especificado pelo parâmetro SpotWithPriceLimit. Em cenários onde jobs do DLC são criados com recursos preemptíveis, os preços de mercado flutuam conforme a oferta e a demanda. Se você usar os mesmos recursos preemptíveis para enviar vários jobs do DLC, as taxas dos jobs em um período fixo podem ser iguais. Os seguintes tipos de lance são suportados.

    Nota

    Recursos Lingjun suportam apenas o tipo de lance com desconto spot.

    • Preço de lance baseado no tipo de desconto spot: o preço máximo de lance baseia-se no preço de mercado do tipo de instância e varia de 10% a 90% do preço de mercado, com intervalos de 10%.

    • Preço de lance baseado no tipo de preço spot: o preço máximo de lance está dentro da faixa de preço de mercado.

    Na seção Resource Information da página Create Job no DLC, defina Source como Preemptible Resources e visualize os recursos preemptíveis e as faixas de preço de mercado na seção Job Resource.

    Nota

    Para preços específicos das especificações de recursos, consulte o console.

    • Recursos de computação de uso geral

      Para usar recursos de computação de uso geral, na seção Resource Information, defina Resource Type como General Computing e Source como Preemptible Resources, e selecione PyTorch para Framework. Na tabela Job Resource, configure os seguintes parâmetros para nós Worker: contagem de nós, Resource Specification, faixa de preço de mercado e Bid Price (Discount).

    • Recursos Lingjun

      Na seção Resource Information da página Create Job, configure as seguintes definições:

      • Resource Type: Selecione Lingjun AI Computing Service.

      • Source: Selecione Preemptible Resources.

      • Framework: Selecione PyTorch.

      • Job Resource: Configure a contagem de nós, Resource Specification, faixa de preço de mercado e Bid Price (Discount) para nós Worker.

  • Modo de faturamento

    A cobrança de recursos preemptíveis segue o método de pagamento conforme o uso, baseada no preço de mercado vigente.

  • Visualização de faturas

    Após executar um job, acesse a página Billing Details em Expenses and Costs no dia seguinte para visualizar os detalhes de faturamento do job que utilizou recursos preemptíveis. As taxas de pagamento conforme o uso são geradas pelo DLC. A tag da instância é key:acs:pai:dlc:payType value:spot. Para mais informações sobre como visualizar detalhes de faturamento, consulte View PAI billing details.

  • Cenários

    • Cenários suportados

      Para reduzir custos, recomendamos o uso de recursos preemptíveis nos seguintes cenários:

      • Jobs de computação de curta duração.

      • Jobs de computação em fase de depuração.

      • Jobs de computação tolerantes a falhas.

      • Jobs de computação que permitem interrupção. Por exemplo, em cenários onde o framework EasyCkpt é usado para treinar um LLM PyTorch, é possível salvar checkpoints frequentemente e restaurar dados a partir deles. Para mais informações, consulte EasyCkpt.

    • Cenários não suportados

      Serviços que exigem alta estabilidade.

    Procedimento

    Envie um job preemptível usando um dos métodos a seguir.

    Usar o PAI console

    1. Acesse a página Create Job.

      1. Faça login no PAI console. Selecione uma região e um workspace. Em seguida, clique em Enter Deep Learning Containers (DLC).

      2. Na página Deep Learning Containers (DLC), clique em Create Job.

    2. Na página Create Job, configure os parâmetros descritos na tabela a seguir. Para informações sobre outros parâmetros, consulte Create a training job.

      Parâmetro

      Descrição

      Resource Information

      Resource Type

      Selecione Lingjun AI Computing Service ou General Computing.

      Nota

      Este parâmetro está disponível apenas se o workspace permitir o uso de recursos Lingjun e recursos de computação de uso geral.

      Source

      Selecione Preemptible Resources.

      Job Resource

      Na coluna Resource Type, clique no ícone image para selecionar um recurso preemptível e configurar o parâmetro Bid Price (Discount). O preço do lance é o preço máximo baseado no preço original do tipo de instância e varia de 10% a 90% do preço de mercado, com intervalos de 10%. Você obtém o recurso preemptível se o seu lance atender ou exceder o preço de mercado e houver estoque suficiente.

      VPC

      VPC

      Configure uma virtual private cloud (VPC) se usar recursos Lingjun para enviar jobs do DLC. Selecione uma VPC, um vSwitch e um grupo de segurança nas listas suspensas.

      Security Group

      vSwitch

      Fault Tolerance and Diagnosis

      Automatic Fault Tolerance

      Se você usar recursos Lingjun para enviar jobs do DLC, recomendamos ativar a Automatic Fault Tolerance. Esse recurso permite que jobs preemptíveis reentrem automaticamente na fila de lances após a revogação de recursos. Os jobs podem ser retomados quando o preço médio de mercado cair abaixo do seu preço máximo de lance. Para mais informações sobre o AIMaster, consulte AIMaster: An elastic and automatic fault tolerance engine.

      Recursos Lingjun

      Nota

      Para preços específicos das especificações de recursos, consulte o console.

      Os principais itens de configuração para uma tarefa de treinamento com recursos preemptíveis usando Lingjun Intelligent Computing incluem:

      • Source: Selecione Preemptible Resources.

      • Job Resource: Configure a contagem de nós e a especificação de recursos para nós Worker, e verifique o preço máximo de lance e a faixa de preço de mercado. Clique em History Price para visualizar preços históricos.

      • VPC: Selecione uma VPC, um vSwitch e um grupo de segurança.

      • Automatic Fault Tolerance: Após ativar este recurso, recursos adicionais de computação são consumidos. Clique em Modify Configuration para ajustar as configurações de tolerância a falhas.

      Recursos de computação de uso geral

      Nota

      Para preços específicos das especificações de recursos, consulte o console.

      Na página de configuração de recursos, execute as seguintes etapas:

      1. Defina Source como Preemptible Resources.

      2. Selecione o framework desejado, como PyTorch, para Framework.

      3. Na tabela Job Resource, configure os nós Worker: defina a contagem de nós, Resource Specification e Bid Price (Discount). A faixa de preço de mercado depende da exibição real no console.

      4. Na seção Fault Tolerance and Diagnosis, ative a Automatic Fault Tolerance. A ativação deste recurso consome recursos adicionais de computação.

    3. Após configurar os parâmetros, clique em Confirm.

      Depois de enviar o job, o DLC solicita recursos preemptíveis para criar e executar o job. Caso nenhum recurso preemptível seja solicitado, o job entra em estado de espera.

    Usar o SDK

    Etapa 1: Instalar o SDK para Python.

    • Instale o SDK do workspace.

      pip install alibabacloud_aiworkspace20210204==3.0.1
    • Instale o SDK do DLC.

      pip install alibabacloud_pai_dlc20201203==1.4.17

    Etapa 2: Enviar um job preemptível

    SpotDiscountLimit

    #!/usr/bin/env python3
    
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_credentials.client import Client as CredClient
    
    from alibabacloud_pai_dlc20201203.client import Client as DLCClient
    from alibabacloud_pai_dlc20201203.models import CreateJobRequest
    
    region_id = '<region-id>'  # The ID of the region in which the DLC job resides, such as cn-hangzhou. 
    cred = CredClient()
    workspace_id = '12****'  # The ID of the workspace to which the DLC job belongs. 
    
    dlc_client = DLCClient(
        Config(credential=cred,
               region_id=region_id,
               endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
               protocol='http'))
    
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'sample-spot-job',
        'JobType': 'PyTorchJob',
        'JobSpecs': [
            {
                "Type": "Worker",
                "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04",
                "PodCount": 1,
                "EcsSpec": 'ecs.g7.xlarge',
                "SpotSpec": {
                    "SpotStrategy": "SpotWithPriceLimit",
                    "SpotDiscountLimit": 0.4,
                }
            },
        ],
        'UserVpc': {
            "VpcId": "vpc-0jlq8l7qech3m2ta2****",
            "SwitchId": "vsw-0jlc46eg4k3pivwpz8****",
            "SecurityGroupId": "sg-0jl4bd9wwh5auei9****",
        },
        "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'",
    }))
    job_id = create_job_resp.body.job_id
    print(f'jobId is {job_id}')
    

    SpotPriceLimit

    #!/usr/bin/env python3
    
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_credentials.client import Client as CredClient
    
    from alibabacloud_pai_dlc20201203.client import Client as DLCClient
    from alibabacloud_pai_dlc20201203.models import CreateJobRequest
    
    region_id = '<region-id>'
    cred = CredClient()
    workspace_id = '12****'
    
    dlc_client = DLCClient(
        Config(credential=cred,
               region_id=region_id,
               endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
               protocol='http'))
    
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'sample-spot-job',
        'JobType': 'PyTorchJob',
        'JobSpecs': [
            {
                "Type": "Worker",
                "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04",
                "PodCount": 1,
                "EcsSpec": 'ecs.g7.xlarge',
                "SpotSpec": {
                    "SpotStrategy": "SpotWithPriceLimit",
                    "SpotPriceLimit": 0.011,
                }
            },
        ],
        'UserVpc': {
            "VpcId": "vpc-0jlq8l7qech3m2ta2****",
            "SwitchId": "vsw-0jlc46eg4k3pivwpz8****",
            "SecurityGroupId": "sg-0jl4bd9wwh5auei9****",
        },
        "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'",
    }))
    job_id = create_job_resp.body.job_id
    print(f'jobId is {job_id}')
    

    A tabela a seguir descreve os principais parâmetros. Para informações sobre outros parâmetros, consulte Use SDK for Python.

    Parâmetro

    Descrição

    SpotStrategy

    A política de lances. Os parâmetros de tipo de lance só entram em vigor se você definir este parâmetro como SpotWithPriceLimit.

    SpotDiscountLimit

    O tipo de lance com desconto spot.

    Nota
    • Não é possível especificar os parâmetros SpotDiscountLimit e SpotPriceLimit simultaneamente.

    • O parâmetro SpotDiscountLimit é válido apenas para recursos Lingjun.

    SpotPriceLimit

    O tipo de lance com preço spot.

    UserVpc

    Este parâmetro é obrigatório ao usar recursos Lingjun para enviar jobs. Configure a VPC, o vSwitch e o ID do grupo de segurança para a região onde o job reside.