Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Scalability

A escalabilidade é a capacidade de um sistema processar mais dados, utilizadores ou computação através da adição de recursos. Abrange escalabilidade vertical e horizontal, a lei de Amdahl e IA com várias GPUs.

Escalabilidade é a capacidade de um sistema lidar com uma quantidade crescente de trabalho — como mais dados, mais usuários, mais solicitações ou um modelo maior — adicionando recursos e mantendo aceitáveis o desempenho e o custo por unidade de trabalho. Um sistema escala bem quando dobrar o hardware quase dobra a quantidade de trabalho que ele pode realizar; escala mal quando as máquinas adicionais passam o tempo esperando umas pelas outras. Na inteligência artificial, a escalabilidade se aplica em três pontos: pipelines de dados que precisam ingerir big data e fazer seu pré-processamento, tarefas de treinamento distribuídas por muitos aceleradores e serviços de inferência que precisam responder a mais solicitações sem aumentar a latência de inferência.

Escalabilidade vertical e horizontal#

A escalabilidade vertical, ou expansão vertical, transfere uma carga de trabalho para uma máquina maior: mais núcleos de CPU, mais RAM ou uma GPU com mais memória. Não exige alterações no código, mas é limitada à maior máquina disponível e deixa um único ponto de falha. A escalabilidade horizontal, ou expansão horizontal, adiciona mais máquinas e divide o trabalho entre elas. Não tem um limite fixo, mas exige que o software divida o trabalho, equilibre a carga e coordene os resultados. Serviços Web e de inferência escalam horizontalmente com facilidade quando não têm estado, mantendo sessões e dados em armazenamentos compartilhados para que qualquer réplica possa responder a qualquer solicitação; bancos de dados escalam horizontalmente por fragmentação, dividindo os dados por chave entre máquinas.

As plataformas de nuvem automatizam a escalabilidade horizontal. No Kubernetes, o Horizontal Pod Autoscaler calcula o número de réplicas multiplicando as réplicas atuais pela razão entre a métrica observada e a meta, e arredondando para cima: 4 réplicas com média de 90% de CPU diante de uma meta de 60% passam a ser 6. Essa automação é o que a computação em nuvem chama de elasticidade, e a computação sem servidor estende essa capacidade até zero réplicas quando o tráfego para.

Limites da escalabilidade#

Todo trabalho paralelo contém tarefas que não podem ser divididas, como ler o próximo lote, sincronizar resultados ou gravar um checkpoint. Em 1967, Gene Amdahl mostrou que essa fração serial limita o ganho de velocidade, não importa quantos processadores sejam adicionados — um resultado hoje conhecido como lei de Amdahl:

# Amdahl's law: speedup on n workers when a fraction p of the work runs in parallel
p = 0.95  # parallel fraction; the other 5% runs on one worker

for n in (1, 8, 64, 512):
    speedup = 1 / ((1 - p) + p / n)
    efficiency = speedup / n  # share of the added hardware doing useful work
    print(f"{n:>4} workers: {speedup:5.1f}x speedup, {efficiency:4.0%} efficiency")

print(f"Limit with unlimited workers: {1 / (1 - p):.0f}x")

Com 95% do trabalho paralelizável, 8 trabalhadores proporcionam um ganho de velocidade de 5,9x com eficiência de 74%; 64 trabalhadores, 15,4x com eficiência de 24%; e 512 trabalhadores, 19,3x com eficiência de 4%. Nenhum número de trabalhadores pode ultrapassar 20x. Em 1988, John Gustafson observou que os usuários reais aumentam o problema junto com a máquina, fazendo crescer a parte paralela e diminuir a parcela serial. Medir o ganho de velocidade em um problema fixo é chamado de escalabilidade forte; aumentar o problema junto com o hardware é chamado de escalabilidade fraca, o regime em que operam grandes execuções de treinamento. A comunicação impõe outro limite: cada GPU adicionada ao treinamento paralelo de dados precisa trocar gradientes com as demais em cada etapa, por isso a largura de banda da rede muitas vezes determina até onde uma tarefa pode escalar.

Escalonamento de treinamento e inferência#

O treinamento distribuído escolhe uma estratégia de paralelismo com base em o modelo caber ou não em um único dispositivo. No paralelismo de dados, cada GPU mantém uma cópia completa do modelo, processa sua própria parte de cada lote e calcula a média dos gradientes com as demais por meio de uma operação all-reduce, como no DistributedDataParallel do PyTorch. Modelos grandes demais para uma única GPU são divididos com paralelismo de dados totalmente fragmentado, paralelismo de tensores ou paralelismo de pipeline; a acumulação de gradientes permite alcançar tamanhos efetivos de lote grandes em menos dispositivos.

O Ultralytics YOLO usa paralelismo de dados para o treinamento multi-GPU: passar device=[0, 1] inicia processos de trabalho DistributedDataParallel por meio de torch.distributed.run e divide o lote igualmente. Assim, batch=64 em duas GPUs fornece 32 imagens a cada GPU por etapa.

A inferência escala de outra forma, pois cada solicitação é pequena e independente. Agrupar solicitações em lotes aumenta a utilização da GPU e o rendimento com um pequeno custo de latência; o agrupamento contínuo faz o mesmo na geração de LLMs token a token; e os sistemas de serviço de modelos adicionam réplicas atrás de um balanceador de carga à medida que o tráfego aumenta. A quantização de modelos e a poda reduzem o custo de cada réplica, permitindo que o mesmo hardware processe mais solicitações; a IA de borda escala distribuindo a inferência por milhares de dispositivos em vez de concentrá-la em um único centro de dados.

  • Desempenho: A velocidade ou precisão de um sistema sob uma carga específica, medida pela latência, pelo rendimento ou pela precisão. A escalabilidade descreve como essas métricas se mantêm à medida que a carga e os recursos aumentam.
  • Elasticidade: Adição e remoção automáticas de recursos à medida que a demanda muda ao longo do dia, geralmente pela adição e remoção de réplicas de um serviço escalado horizontalmente.
  • Leis de escala: Relações empíricas entre a perda de um modelo, seus parâmetros, os dados de treinamento e a computação. Elas preveem a qualidade do modelo, e a escalabilidade do sistema determina se os recursos computacionais necessários podem ser usados com eficiência.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina