O PAI-EAS Spot é uma solução econômica para implantar service de inferência online usando instâncias Spot. É ideal para aplicações sensíveis a custos que toleram atrasos ocasionais nas respostas. Este tópico apresenta as melhores práticas para o uso do PAI-EAS Spot e ajuda a reduzir custos mantendo a estabilidade do service.
Cenários
Cargas de trabalho não críticas: Aplicações em que interrupções ocasionais do service causam impacto mínimo.
Processamento tolerante a falhas: Aplicações que lidam com indisponibilidades breves do service por meio de mecanismos de repetição ou outras estratégias de tolerância a falhas.
Alta necessidade de otimização de custos: Projetos ou empresas que buscam reduzir custos operacionais com recursos de computação flexíveis e de baixo custo.
Método de configuração do service Spot
Acesse o PAI console. selecione uma região no topo da página. Depois, escolha o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).
clique em Deploy Service. Em seguida, na seção Inference Service, clique em Custom Deployment dentro da seção Custom Model Deployment.
-
Na seção de implantação de recursos, defina o tipo de recurso como Public Resources. escolha uma especificação de recurso (recomendamos instâncias das séries L ou H), ative o modo Spot e insira o preço de lance. clique em a curva de preço histórico para visualize os preços de mercado das últimas 48 horas e usá-los como referência.
Na seção Deployment Resources, adicione várias especificações de recursos. Para cada uma, ative a opção Spot e defina o preço de lance. defina Spot Instance Retention Duration como No Guaranteed Protection Period.
ImportanteO preço de lance difere do valor efetivamente pago, pois o preço de mercado determina a cobrança. Seu lance representa o valor máximo que você aceita pagar. Enquanto o preço de mercado permanecer abaixo do seu lance, a instância continuará ativa. Durante esse período, você paga o preço de mercado atual, e não o valor do lance.
É altamente recomendável definir o lance como 20% do preço de tabela. Por exemplo, o preço de tabela no modelo de pagamento conforme o uso para uma instância L20 de 8 núcleos e uma GPU é de CNY 14,4/hora. Os preços Spot atuais nunca excedem 20% do preço de tabela (CNY 2,88/hora neste caso). Essa estratégia garante acesso estável aos recursos com um desconto significativo. Para mais informações, consulte Spot instance selection.
configure instâncias regulares (sob demanda) além das instâncias Spot para evitar falhas de implantação caso a capacidade Spot esteja indisponível.
Após implantar o service com sucesso, revise as flutuações de preço das últimas 48 horas na página de detalhes do service EAS para entender melhor as variações de custo. Na seção Service Instances, visualize o status das suas instâncias Spot. clique em uma instância para abrir o painel à direita, o qual exibe um gráfico de linhas intitulado Instance Specification Price (CNY/hour). A linha contínua azul indica o preço de tabela original, enquanto a linha tracejada roxa indica o preço de mercado Spot na zona.
Recolhimento de instâncias Spot e tolerância a falhas
Mecanismo de recolhimento da plataforma EAS
Quando o sistema está prestes a recolher uma instância Spot, o EAS geralmente recebe um aviso com aproximadamente 5 minutos de antecedência. Nesse momento, a instância inicia um desligamento controlado para drenar o tráfego de forma suave e evitar falhas nas requisições. Ao mesmo tempo, o EAS inicia automaticamente uma nova instância e tenta implantá-la na ordem que você especifique na sua configuração de recursos. Esse processo minimiza interrupções e garante a continuidade dos negócios.
configure instâncias regulares de pagamento conforme o uso para evitar a interrupção total do service caso o sistema recolha todas as instâncias Spot. Isso garante a continuidade e a estabilidade do service.
Retorno para instâncias Spot após o recolhimento
Se o seu service passar para instâncias regulares após um recolhimento Spot e você quiser voltar para instâncias Spot assim que houver capacidade disponível, use o recurso Instance Recreation.
O recurso Instance Recreation libera a instância atual e crie uma nova com configurações idênticas:
Na seção Service Instances, clique no menu suspenso na coluna Actions da instância de destino e selecione Instance Recreation.
Recomendações de configuração
Quando uma instância Spot está prestes a sofrer recolhimento, o EAS inicia automaticamente uma nova instância e aciona um desligamento controlado. Para melhorar a estabilidade, a confiabilidade e a velocidade de inicialização do service, siga estas recomendações de configuração.
Configure vários tipos de instância
Para garantir a estabilidade e a confiabilidade do service, adote uma estratégia diversificada de instâncias e selecione várias especificações de recursos. É fundamental incluir pelo menos um tipo de instância regular (não Spot) como opção de fallback. O EAS tentará implantar as instâncias na ordem especificada, o que maximiza a chance de inicialização bem-sucedida e operação contínua. Para mais informações sobre a seleção de instâncias com múltiplas especificações, consulte Multi-specification instance selection.
Na seção Deployment Resources, adicione até 10 especificações de recursos. defina um Bid Price (CNY/hora) para cada instância Spot. Para Spot Instance Retention Duration, escolha No Guaranteed Protection Period ou Guarantee 1 Hour of Usage.
Ative o cache de memória do diretório local
Para acelerar o carregamento de arquivos de modelo ao iniciar uma nova instância após um recolhimento Spot, configure o cache de memória do diretório local. Esse recurso utiliza a memória ociosa do nó para armazenar em cache os arquivos de modelo do diretório local. Assim, as novas instâncias podem carregar os modelos diretamente da memória em vez de lê-los do armazenamento de dados centralizado montado, o que reduz o tempo de inicialização e minimiza o tempo de inatividade do service durante o dimensionamento.
ative a aceleração de cache de memória durante a criação do service EAS para melhorar a eficiência do dimensionamento. Para mais informações, consulte Model cache acceleration.
Na seção Service Features, ative Memory Cache Acceleration. Após a ativação, clique em modifique Configuration para ajustar os parâmetros de cache.
A melhoria de desempenho ao ativar a aceleração de cache de memória (cachefs) está detalhada na tabela abaixo. Tomando a troca de modelos do Stable Diffusion como exemplo, comparado ao carregamento direto de um diretório montado no OSS, a ativação do cachefs permite às novas instâncias ler modelos da memória de outras instâncias em execução (remote cachefs hit), o que reduz significativamente o tempo de carregamento.
Modelo | Tamanho do modelo | Tempo de carregamento do modelo (s) | |
Montagem OSS | cachefs remote hit | ||
anything-v4.5.safetensors | 7,2G | 89,88 | 15,18 |
Anything-v5.0-PRT-RE.safetensors | 2,0G | 16,73 | 5,46 |
cetusMix_Coda2.safetensors | 3,6G | 24,76 | 7,13 |
chilloutmix_NiPrunedFp32Fix.safetensors | 4,0G | 48,79 | 8,47 |
CounterfeitV30_v30.safetensors | 4,0G | 64,99 | 7,94 |
deliberate_v2.safetensors | 2,0G | 16,33 | 5,55 |
DreamShaper_6_NoVae.safetensors | 5,6G | 71,78 | 10,17 |
pastelmix-fp32.ckpt | 4,0G | 43,88 | 9,23 |
revAnimated_v122.safetensors | 4,0G | 69,38 | 3,20 |
Use o ACR Enterprise Edition
Para acelerar o pull de imagens ao iniciar novas instâncias após um recolhimento Spot, use o ACR Enterprise Edition com a aceleração de imagem ativada. Implante service EAS usando imagens aceleradas ao adicionar _accelerated à url padrão da imagem. Durante a implantação, selecione a rede VPC associada à sua instância do ACR Enterprise Edition.
Use o ACR Enterprise Edition com um tipo de instância Standard Edition. ative a aceleração de imagem ao crie seu repositório de imagens para melhorar a eficiência do dimensionamento. Para mais informações, consulte Image acceleration.
Nas opções de aceleração de imagem, selecione Full Mode.
Combine com dimensionamento elástico
Quando sua carga de trabalho apresenta picos e vales significativos, ative o dimensionamento automático horizontal. Use uma combinação de grupos de recursos dedicados para capacidade de linha de base + recursos Spot para elasticidade + recursos regulares como fallback para garantir um dimensionamento suave e eficiência de custos ideal. Siga esta estratégia de configuração:
Adquira um conjunto de grupos de recursos dedicados do EAS por assinatura ou pagamento conforme o uso para garantir a capacidade mínima do service. No console, configure os requisitos de GPU, cpu e memória no seu grupo de recursos dedicados para garantir a inicialização confiável dos service.
-
ative o Elastic Resource Pool do EAS e configure várias especificações de recursos. Priorize os recursos Spot na sua ordem de prioridade, deixando os recursos regulares como último fallback. Isso garante que, durante os picos de tráfego, o dimensionamento use primeiro a capacidade Spot disponível e recorra aos recursos regulares apenas quando a capacidade Spot for insuficiente, equilibrando economia de custos e confiabilidade.
configure três tipos de recursos no pool de recursos elásticos: ECS.gn8v-8x.48xlarge (Spot ativado, lance de CNY 33/hora) e ecs.gn8is-8x.32xlarge (Spot ativado, lance de CNY 25/hora) como recursos Spot, e ml.gu7i.c8m30.1-gu30 (Spot desativado) como fallback. defina Spot Instance Retention Duration como Guarantee 1 Hour of Usage.
-
Após a implantação do service, ative o dimensionamento automático horizontal na página de detalhes do service com base em métricas de negócios. Dimensione automaticamente usando métricas como QPS, utilização de cpu, utilização de GPU ou tamanho da fila, ou defina métricas personalizadas.
Na caixa de diálogo Auto Scaling Settings, defina Minimum Instances e Maximum Instances (por exemplo, 2 e 10). selecione uma métrica de dimensionamento, defina um limiar (por exemplo, defina GPU Utilization Threshold como 60%) e, em seguida, clique em ative.
ative também o dimensionamento agendado para alinhar com padrões de tráfego previsíveis ao longo do tempo.
Na caixa de diálogo Scheduled Auto Scaling Settings, clique em Add e crie uma tarefa agendada. configure o Task Name, Target Instance Count e Scheduling Cycle (escolha entre Weekly, Daily ou cron expression). selecione o horário de execução, e o sistema gerará automaticamente a expressão cron correspondente (por exemplo,
0 0 9 * * *executa diariamente às 9h). Clique em OK quando terminar.
Ao criar instâncias, o EAS prioriza a capacidade do grupo de recursos dedicados e, em seguida, percorre os recursos disponíveis no pool de recursos elásticos na ordem especificada.
Por exemplo, se o seu grupo de recursos dedicados estiver totalmente utilizado e você precisar de instâncias adicionais do pool de recursos públicos, o sistema verifica primeiro quantas instâncias ECS.gn8v-8x.48xlarge é possível criar. Se a capacidade for insuficiente, verifica ECS.gn8is-8x.32xlarge. Se ambas estiverem indisponíveis, usa ml.gu7i.c8m30.1-gu30 para as instâncias restantes.
Como outro exemplo, para adicionar 8 instâncias além do seu grupo de recursos dedicados, o resultado pode ser 2 instâncias no grupo dedicado, 3 em ECS.gn8v-8x.48xlarge, 2 em ECS.gn8is-8x.32xlarge e 3 em ml.gu7i.c8m30.1-gu30.
Para instruções detalhadas sobre a configuração elástica do EAS, consulte os seguintes documentos: