Batch Size
Aprende como o tamanho do batch impacta a velocidade e precisão do treinamento de aprendizado de máquina. Explora as restrições de hardware e otimiza o Ultralytics YOLO26 usando AutoBatch.
No domínio do machine learning e, particularmente, do deep learning, o Batch Size refere-se ao número de exemplos de treino utilizados numa iteração do treino do modelo. Em vez de introduzir a totalidade dos training data na rede neuronal de uma só vez — o que é frequentemente impossível do ponto de vista computacional devido a limitações de memória —, o conjunto de dados é dividido em subconjuntos mais pequenos chamados lotes. O modelo processa um lote, calcula o erro e atualiza os seus model weights internos através de backpropagation antes de passar para o lote seguinte. Este hiperparâmetro desempenha um papel fundamental na determinação da velocidade de treino e da estabilidade do processo de aprendizagem.
Link to this sectionA 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 do stochastic gradient descent, navega pelo panorama da função de perda.
- Tamanhos de Lote Pequenos: Usar um número pequeno (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 a mínimos locais, conduzindo potencialmente a uma melhor generalização. No entanto, lotes mais pequenos requerem mais atualizações por época, o que pode tornar o treino mais lento em termos de tempo de relógio 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 loss function. Permite uma paralelização massiva em hardware moderno, acelerando significativamente o cálculo. No entanto, se o lote for demasiado grande, o modelo pode estabilizar em mínimos acentuados e subótimos, conduzindo a overfitting e a uma menor capacidade de generalização para novos dados.
Link to this sectionImplicações de Hardware e Memória#
Os profissionais devem, muitas vezes, selecionar um tamanho de lote com base nas limitações de hardware em vez de uma preferência puramente teórica. Os modelos de deep learning, especialmente arquiteturas grandes como Transformers ou redes neuronais convolucionais avançadas, são armazenados na VRAM de uma GPU.
Ao utilizar NVIDIA CUDA para aceleração, a VRAM deve conter 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 "Out of Memory" (OOM). Técnicas como o treino de mixed precision são frequentemente utilizadas para reduzir a utilização de memória, permitindo tamanhos de lote maiores no mesmo hardware.
Link to this sectionDistinguindo Conceitos Relacionados#
Para configurar o treino de forma eficaz, é essencial distinguir o tamanho do lote de outros termos temporais no ciclo de treino.
- Batch Size vs. Epoch: Uma época representa uma passagem completa por todo o conjunto de dados de treino. O tamanho do lote determina em quantos pedaços 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 completar uma época.
- Batch Size vs. Iteration: Uma iteração (ou passo) é o ato de processar um lote e atualizar os pesos. O número total de iterações no treino é o número de lotes por época multiplicado pelo número total de épocas.
- Batch Size vs. Batch Normalization: Embora partilhem o nome, a Batch Normalization é um tipo de camada específico que normaliza as entradas da camada com base na média e 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, degradando potencialmente o desempenho.
Link to this sectionAplicações no Mundo Real#
Ajustar o tamanho do lote é uma necessidade rotineira ao implementar soluções de visão computacional em várias indústrias.
-
Imagiologia Médica de Alta Fidelidade: No campo da AI in healthcare, os profissionais trabalham frequentemente com dados volumétricos 3D, como ressonâncias magnéticas ou tomografias computorizadas. Estes ficheiros são incrivelmente densos e exigentes em termos de memória. Para realizar tarefas como medical image analysis ou image segmentation complexa sem bloquear o sistema, os engenheiros reduzem frequentemente o tamanho do lote para um número muito pequeno, por vezes até um lote de 1. Aqui, a prioridade é processar detalhes de alta resolução em vez da velocidade bruta de treino.
-
Controlo de Qualidade Industrial: Por outro lado, na AI in manufacturing, a velocidade é fundamental. Os sistemas automatizados que inspecionam produtos numa linha de montagem precisam de processar milhares de imagens por hora. Durante a inference, os engenheiros podem agregar os feeds de câmara recebidos em lotes maiores para maximizar a utilização de dispositivos edge AI, garantindo um elevado rendimento para a deteção de defeitos em tempo real.
Link to this sectionConfigurar o Tamanho do Lote em Python#
Ao usar o Ultralytics Python package, definir o tamanho do lote é simples. Podes especificar um número inteiro fixo ou usar a definição dinâmica batch=-1, que utiliza a funcionalidade AutoBatch para calcular automaticamente o tamanho máximo de lote que o teu hardware consegue processar com segurança.
The following example demonstrates how to train a YOLO26 model—the latest standard for speed and accuracy—using a specific batch setting.
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 em larga escala e visualizar como diferentes tamanhos de lote afetam as tuas métricas de treino, ferramentas como a Ultralytics Platform proporcionam um ambiente abrangente para registar e comparar execuções. O hyperparameter tuning adequado do tamanho do lote é, muitas vezes, o passo final para obter o melhor desempenho do teu modelo.






