Glossário

Tamanho do lote

Descobre o impacto do tamanho do lote na aprendizagem profunda. Otimiza a velocidade de treino, a utilização da memória e o desempenho do modelo de forma eficiente.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Na aprendizagem automática, especialmente ao treinar modelos de aprendizagem profunda, o tamanho do lote refere-se ao número de exemplos de treino processados numa única iteração. O treino de grandes modelos em conjuntos de dados maciços, comum em áreas como a visão computacional, torna muitas vezes o processamento de todo o conjunto de dados de uma só vez computacionalmente inviável devido a limitações de memória. Em vez disso, os dados são divididos em grupos mais pequenos e geríveis ou "lotes". Os parâmetros internos do modelo são actualizados após o processamento de cada lote, tornando o processo de formação mais eficiente e escalável.

Importância do tamanho do lote

O tamanho do lote é um hiperparâmetro crítico que influencia significativamente a dinâmica do treino, a utilização de recursos e, em última análise, o desempenho do modelo final. Os seus efeitos incluem:

  • Velocidade de treinamento: Lotes maiores podem utilizar as capacidades de processamento paralelo de hardware como GPUs de forma mais eficaz, reduzindo potencialmente o tempo necessário para completar uma época (uma passagem completa sobre os dados de treinamento). Isto deve-se a uma melhor utilização do hardware e a menos actualizações de parâmetros por época. Saiba mais sobre os conceitos de computação paralela.
  • Uso de memória: O tamanho do lote afeta diretamente a quantidade de memóriaCPU RAM ou GPU VRAM) necessária. Os lotes maiores precisam de mais memória para armazenar os dados, as ativações e os gradientes durante o treinamento. As técnicas para otimizar a utilização da memória são cruciais quando se trabalha com tamanhos de lote grandes ou hardware limitado.
  • Generalização do modelo: A escolha do tamanho do lote afecta o processo de otimização e a generalização do modelo. Lotes menores introduzem mais ruído na estimativa do gradiente usada em algoritmos como o Stochastic Gradient Descent (SGD). Este ruído pode por vezes atuar como uma forma de regularização, ajudando o modelo a escapar a mínimos locais acentuados e melhorando potencialmente a sua capacidade de generalização para dados não vistos, reduzindo assim o sobreajuste. Por outro lado, lotes maiores fornecem uma estimativa mais precisa do gradiente geral do conjunto de dados, mas podem convergir para mínimos mais acentuados, o que às vezes pode prejudicar a generalização, conforme discutido em pesquisas como"On Large-Batch Training for Deep Learning".
  • Interação com a taxa de aprendizagem: O tamanho do lote interage frequentemente com a taxa de aprendizagem. Geralmente, tamanhos de lote maiores permitem e muitas vezes se beneficiam de taxas de aprendizagem mais altas. Optimizadores como o Adam podem ajudar a gerir estas interações.

Escolher o tamanho certo do lote

A seleção de um tamanho de lote ótimo envolve o equilíbrio entre a eficiência computacional, as restrições de memória e a generalização do modelo. Não existe um "melhor" tamanho de lote universal; ele depende muito do conjunto de dados específico (por exemplo, COCO Dataset), da arquitetura do modelo (como os usados em Ultralytics YOLO) e dos recursos de hardware disponíveis. As escolhas mais comuns são muitas vezes potências de 2 (por exemplo, 16, 32, 64, 128) devido às optimizações de alinhamento da memória do hardware. Normalmente, é necessária experimentação e técnicas como a afinação de hiperparâmetros. Estruturas como PyTorch e TensorFlow oferecem flexibilidade na definição de tamanhos de lote.

Tamanho do lote vs. outros termos relacionados

É importante distinguir a dimensão do lote de conceitos relacionados:

  • Iteração/etapa: Uma única atualização dos parâmetros do modelo com base no processamento de um lote de dados. Envolve uma passagem para a frente, cálculo de perdas e passagem para trás (retropropagação).
  • Época: Uma passagem completa por todo o conjunto de dados de treino. Se um conjunto de dados tiver 1000 amostras e o tamanho do lote for 100, uma época consiste em 10 iterações (1000 / 100 = 10).
  • Descida de gradiente em mini-lotes: A abordagem de treinamento mais comum, em que o tamanho do lote é maior que 1, mas menor que o tamanho total do conjunto de dados. Isto contrasta com a Descida de Gradiente em Lote (utilizando todo o conjunto de dados, tamanho do lote = N) e a Descida de Gradiente Estocástica (utilizando uma única amostra, tamanho do lote = 1). O termo "tamanho do lote" normalmente se refere ao tamanho usado na descida gradiente em minilote. Saiba mais sobre as variantes de descida de gradiente.

Aplicações no mundo real

  • Deteção de objectos: Ao treinar um Ultralytics YOLO do Ultralytics para a tarefa de deteção de objectos, o tamanho do lote determina quantas imagens são processadas em simultâneo. O treinamento YOLO11 em um conjunto de dados grande como o ImageNet pode exigir o ajuste do tamanho do lote com base na memória GPU . Um tamanho de lote maior (por exemplo, 64) pode acelerar o treinamento por época em GPUs de ponta, enquanto tamanhos menores (por exemplo, 16) podem ser necessários em dispositivos com menos memória ou podem potencialmente melhorar a generalização. Plataformas como o Ultralytics HUB podem ajudar a gerir e acompanhar estas experiências de treino.
  • Processamento de linguagem natural (NLP): Treinar grandes modelos de linguagem como o BERT envolve o processamento de sequências de texto. O tamanho do lote afecta o número de sequências que são processadas em conjunto. Dado que as sequências podem variar em comprimento e os modelos são grandes, a utilização de memória é uma preocupação significativa. Técnicas como a acumulação de gradiente (processamento sequencial de mini-lotes mais pequenos antes de atualizar os parâmetros) são frequentemente utilizadas para simular lotes maiores quando a memória é limitada. Explora conceitos em cursos de PNL.

Compreender e selecionar cuidadosamente o tamanho do lote é fundamental para treinar eficazmente modelos de aprendizagem profunda. Para um estudo mais aprofundado, considera recursos como a Especialização em aprendizagem profunda ou a exploração de técnicas como a Normalização de lote, que pode, por vezes, reduzir a sensibilidade ao tamanho do lote.

Lê tudo