Escala dos motores de IA: quantas réplicas cada motor mantém
Os motores de IA que rodam dentro da plataforma — Embedding, Rerank, Chat em CPU e Chat com GPU — podem ter mais de uma réplica. Em , seção Escala dos motores, o administrador define, para cada um, se ele fica ligado e entre quantas réplicas ele pode variar. Dentro dessa faixa a plataforma sobe e desce réplicas sozinha, pela fila de pedidos do motor, e só quando a réplica nova cabe num servidor. Numa instalação com mais CPU e memória, a plataforma usa o que tem, sem ninguém editar configuração de instalação.
Permissão necessária: CONFIG_EDIT para gravar a escala; MODELS_MANAGE para ver o estado atual dos motores (réplicas, fila, última mudança). Sem MODELS_MANAGE, a seção mostra só a escala gravada e diz qual permissão falta.
O que cada cartão mostra
Cada motor tem um cartão. À esquerda, o que está acontecendo agora (atualizado sozinho a cada 15 segundos); à direita, a escala gravada.
| No cartão | O que significa |
|---|---|
| Selo | estável (nada a fazer), escalando (acabou de mudar), réplica subindo (uma réplica nova está iniciando), aguardando nó novo (a réplica espera o servidor que a nuvem cria), no máximo, sem espaço, sem nó novo (a nuvem não criou o servidor a tempo), fica como está, erro ao escalar, desligado ou não instalado |
| Réplicas e prontas | Quantas réplicas o motor tem e quantas já atendem. "Alvo" aparece quando a plataforma está indo para outro número |
| Fila por réplica | Para cada réplica, quantos pedidos esperam e quantos estão sendo atendidos. Uma réplica que ainda está iniciando aparece como "subindo (ainda não pronta)" |
| Janela correndo | "Pedidos esperando há 40 s (sobe após 60 s…)" ou "Ociosa há 6 min (desce após 15 min…)" — quanto falta para a próxima mudança |
| Última escala | De quantas para quantas réplicas, por quê (fila, ociosa, mínimo, máximo, ligado, desligado) e quando |
| Motivo | Quando o motor não pôde escalar, a razão em português — veja a tabela abaixo |
| Tamanho da réplica | Só no Chat em CPU: o tamanho aplicado, o calculado para o servidor e o ajuste (seção própria abaixo) |
Os campos da escala
| Campo | O que faz | Padrão |
|---|---|---|
| Ligado | Desligado = nenhuma réplica, e vence tudo o mais | conforme a instalação |
| Mínimo de réplicas | Quantas réplicas ficam de pé enquanto o motor está ligado. Nunca abaixo de 1: não existe "escala a zero", porque a primeira resposta esperaria o motor iniciar | 1 |
| Máximo de réplicas | O teto da escala pela fila. Igual ao mínimo = número fixo | 1 |
| Janela de subida (s) | Por quanto tempo seguido precisa haver pedido esperando para subir uma réplica | 60 s |
| Janela de descida (min) | Por quanto tempo seguido o motor precisa ficar sem pedido (nem esperando, nem em atendimento) para descer uma réplica | 15 min |
Salvar escala grava o motor daquele cartão. A escolha vale para a plataforma inteira, é aplicada em até um minuto e sobrevive a atualizações da plataforma: atualizar não liga, não desliga e não muda o número de réplicas de motor nenhum.
Como a plataforma decide
- Pela fila, nunca pela CPU. Um motor de IA ocupa a CPU inteira com um pedido só; medir CPU faria subir réplica sem ninguém esperando.
- Uma mudança por vez. Depois de subir ou descer, a contagem recomeça; enquanto uma réplica nova inicia, nada é reavaliado. O Chat em CPU leva cerca de 10 minutos para iniciar: a janela de descida padrão (15 min) é maior que isso de propósito.
- Só onde cabe. Antes de subir, a plataforma confere se algum servidor tem CPU, memória (e GPU, no Chat com GPU) livres para mais uma réplica. Se não tem, não sobe — nenhuma réplica fica "esperando vaga" — e o motivo aparece no cartão.
- Cada réplica tem a própria cópia do modelo, e as réplicas do Chat em CPU no mesmo servidor usam núcleos separados.
O que a gravação recusa
A recusa aparece em vermelho no cartão, com a frase do motivo, e nada é gravado:
- mínimo abaixo de 1 com o motor ligado (para zerar, desligue);
- máximo menor que o mínimo;
- janela de subida ou de descida menor que 1;
- campo vazio ou com número não inteiro (a tela pede o número antes de enviar).
Quando o motor não escala
| Motivo no cartão | O que fazer |
|---|---|
| "fila acima de zero há N s, mas o motor já está no máximo" | Suba o máximo, se o servidor tiver espaço |
| "sem memória/CPU/GPU livre para outra réplica … faltam X no nó Y" | Não há espaço num servidor para mais uma réplica. Libere recursos ou aceite o teto atual |
| "sem núcleos próprios para outra réplica do vllm-cpu" | O servidor já tem as réplicas do Chat em CPU que cabem nele com núcleos separados |
| "nenhum nó elegível …" | Nenhum servidor atende às restrições do motor (por exemplo, GPU) |
| "o espaço livre nos nós não pôde ser medido agora" | A plataforma não conseguiu medir os servidores; nenhuma réplica além da primeira sobe sem essa medida. Acione a equipe de operação |
| "a fila das réplicas não pôde ser lida agora" | Sem leitura da fila, a plataforma não sobe nem desce pela fila. Normalmente passa sozinho |
| "aguardando a réplica nova ficar pronta" | Normal durante o início de uma réplica (minutos no Chat em CPU) |
| "aguardando nó novo do autoscaler: … sem nó há N min" | Só em instalação em nuvem com crescimento automático de servidores: a réplica não coube nos servidores de hoje e espera o servidor novo que a nuvem cria (alguns minutos). Nada a fazer |
| "nenhum nó novo em N min: … desceu" | A nuvem não criou o servidor no prazo (limite do grupo de servidores ou cota do provedor): a réplica desceu, e por 1 hora o motor só sobe o que cabe nos servidores de hoje. Acione a equipe de operação para rever o limite ou a cota |
Aviso no topo da seção. Se o serviço que aplica a escala estiver parado ou sem ciclo há mais de 3 minutos, a seção avisa. Nesse intervalo as réplicas ficam como estão — nunca caem a zero por falha — e a escala gravada é aplicada quando ele voltar.
Tamanho da réplica (Chat em CPU)
O Chat em CPU tem o tamanho de cada réplica — threads, núcleos, memória para o contexto (KV), pedidos simultâneos e memória reservada — calculado para o servidor onde roda.
- Automático (padrão): o cartão mostra o tamanho aplicado e o calculado para o maior servidor disponível. Com o motor atendendo, um calculado diferente não é aplicado sozinho (seria reiniciar o chat por minutos): o cartão marca difere do calculado, e o novo tamanho entra no próximo Ligar ou por Ajustar tamanho.
- Ajustar tamanho: grava valores próprios; a réplica reinicia com eles. Valores fora da regra (por exemplo, memória de contexto maior que o limite de memória) são recusados com o motivo.
- Voltar ao automático: apaga o ajuste; a plataforma volta a calcular pelo servidor.
Núcleos do Embedding e do Rerank
O Embedding, o Rerank e o Chat em CPU que rodam no mesmo servidor dividem os núcleos dele por uma regra só, para um não disputar o núcleo do outro. Quando o servidor não comporta os três com núcleos próprios, a regra reparte, e o cartão avisa quem divide núcleos com quem.
- Aplicada e calculada: o cartão do Embedding e o do Rerank mostram os núcleos em uso, os calculados para o servidor e a partição inteira. Com o motor atendendo, uma calculada diferente não é aplicada sozinha: o cartão marca difere do calculado, e ela entra no próximo Ligar do motor.
- Ajustar núcleos: grava threads, núcleo inicial (-1 = o vLLM escolhe) e réplicas por servidor; o motor reinicia com eles (1 a 3 minutos).
- Voltar à semente: volta aos núcleos que o motor usava antes da partição — o motor reinicia com eles.
- Voltar ao automático: apaga o ajuste; com o motor atendendo, nada reinicia agora.
Meça o envio de documentos antes e depois de mexer nos núcleos do Embedding.
Boas práticas
- Deixe mínimo = máximo = 1 onde o servidor só comporta uma réplica — é o padrão.
- Suba o máximo só depois de conferir, no próprio cartão, que o motor não mostra "sem espaço".
- Não encurte a janela de descida abaixo do tempo de início do motor: o motor desceria e subiria de novo em sequência.
- A conferência completa depois de uma atualização da plataforma (provocar fila, ver a subida e a descida) é feita pela equipe de operação.
Referências
- Modelos de IA da plataforma: onde escolher e como conferir