Batch Size
Saiba como o tamanho do lote afeta a velocidade e a precisão do treino de aprendizagem automática. Explore as limitações do hardware e otimize o Ultralytics YOLO26 com o AutoBatch.
No âmbito do machine learning e, particularmente, do deep learning, tamanho do lote refere-se ao número de exemplos de treino utilizados numa iteração do treino do modelo. Em vez de alimentar a rede neural com todos os dados de treino de uma só vez — algo frequentemente impossível do ponto de vista computacional devido às limitações de memória —, o conjunto de dados é dividido em subconjuntos menores chamados lotes. O modelo processa um lote, calcula o erro e atualiza os seus pesos do modelo internos através da retropropagação antes de passar ao lote seguinte. Este hiperparâmetro desempenha um papel fundamental na determinação tanto da velocidade do treino como da estabilidade do processo de aprendizagem.
A dinâmica do treino com lotes#
A escolha do tamanho do lote altera fundamentalmente a forma como o algoritmo de otimização, normalmente uma variante da descida do gradiente estocástica, percorre a paisagem da função de perda.
- Tamanhos de lote pequenos: Utilizar um número reduzido (por exemplo, 8 ou 16) resulta em atualizações "ruidosas". Embora a estimativa do gradiente seja menos precisa para o conjunto de dados como um todo, este ruído pode, por vezes, ajudar o modelo a escapar de mínimos locais, conduzindo potencialmente a uma melhor generalização. No entanto, lotes mais pequenos exigem mais atualizações por época, o que pode tornar o treino mais lento em termos de tempo de execução devido à sobrecarga.
- Tamanhos de lote grandes: Um lote maior (por exemplo, 128 ou 256) fornece uma estimativa mais precisa do gradiente, conduzindo a uma convergência mais suave da função de perda. Permite uma paralelização massiva no hardware moderno, acelerando significativamente os cálculos. No entanto, se o lote for demasiado grande, o modelo pode convergir para mínimos acentuados e subótimos, conduzindo a overfitting e a uma menor capacidade de generalização para novos dados.
Implicações para o hardware e a memória#
Os profissionais têm frequentemente de selecionar um tamanho de lote com base nas limitações do hardware, em vez de se basearem apenas numa preferência teórica. Os modelos de deep learning, especialmente arquiteturas grandes como Transformers ou redes convolucionais avançadas, são armazenados na VRAM de uma GPU.
Ao utilizar NVIDIA CUDA para aceleração, a VRAM tem de armazenar os parâmetros do modelo, o lote de dados de entrada e as saídas de ativação intermédias necessárias para o cálculo do gradiente. Se o tamanho do lote exceder a memória disponível, o treino falhará com um erro de "Sem memória" (OOM). Técnicas como o treino de precisão mista são frequentemente utilizadas para reduzir o uso de memória, permitindo tamanhos de lote maiores no mesmo hardware.
Distinguir conceitos relacionados#
Para configurar o treino de forma eficaz, é essencial distinguir o tamanho do lote de outros termos temporais do ciclo de treino.
- Tamanho do lote vs. época: Uma época representa uma passagem completa por todo o conjunto de dados de treino. O tamanho do lote determina em quantos blocos os dados são divididos dentro dessa época. Por exemplo, se tiveres 1.000 imagens e um tamanho de lote de 100, serão necessárias 10 iterações para concluir uma época.
- Tamanho do lote vs. iteração: Uma iteração (ou passo) consiste em processar um lote e atualizar os pesos. O número total de iterações no treino corresponde ao número de lotes por época multiplicado pelo número total de épocas.
- Tamanho do lote vs. normalização de Batch: Embora partilhem um nome, a normalização de Batch é um tipo específico de camada que normaliza as entradas da camada com base na média e na variância do lote atual. Esta técnica depende fortemente do tamanho do lote; se o tamanho do lote for demasiado pequeno (por exemplo, 2), as estimativas estatísticas tornam-se pouco fiáveis, podendo degradar o desempenho.
Aplicações no mundo real#
Ajustar o tamanho do lote é uma necessidade habitual ao implementar soluções de visão computacional em vários setores.
-
Imagiologia médica de alta fidelidade: No campo da IA na saúde, os profissionais trabalham frequentemente com dados volumétricos 3D, como exames de MRI ou CT. Estes ficheiros são extremamente densos e exigem muita memória. Para executar tarefas como a análise de imagens médicas ou a segmentação de imagens complexa sem fazer o sistema falhar, os engenheiros reduzem frequentemente o tamanho do lote para um número muito pequeno, por vezes até para um lote de 1. Aqui, a prioridade é processar detalhes de alta resolução, e não maximizar a velocidade bruta do treino.
-
Controlo de qualidade industrial: Por outro lado, na IA na indústria, a velocidade é fundamental. Os sistemas automatizados que inspecionam produtos numa linha de produção têm de processar milhares de imagens por hora. Durante a inferência, os engenheiros podem agregar os fluxos de vídeo recebidos das câmaras em lotes maiores para maximizar a utilização de dispositivos de edge AI, assegurando um elevado débito para a deteção de defeitos em tempo real.
Configurar o tamanho do lote em Python#
Ao utilizar o pacote Python da Ultralytics, definir o tamanho do lote é simples. Podes especificar um número inteiro fixo ou utilizar a definição dinâmica batch=-1, que utiliza a funcionalidade AutoBatch para calcular automaticamente o tamanho máximo do lote que o teu hardware consegue suportar com segurança.
O exemplo seguinte demonstra como treinar um modelo YOLO26 — o padrão mais recente em termos de velocidade e precisão — utilizando uma definição de lote específica.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)Para gerir experiências de grande escala e visualizar como diferentes tamanhos de lote afetam as métricas do teu treino, ferramentas como a Ultralytics Platform fornecem um ambiente abrangente para registar e comparar execuções. Um ajuste de hiperparâmetros adequado do tamanho do lote é frequentemente o passo final para extrair o melhor desempenho possível do teu modelo.









