Glossário

Precisão mista

Aumenta a eficiência da aprendizagem profunda com formação de precisão mista! Obtém velocidades mais rápidas, menor utilização de memória e poupança de energia sem sacrificar a precisão.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

O treino de precisão mista é uma técnica utilizada na aprendizagem profunda (DL) para acelerar o treino do modelo e reduzir o consumo de memória sem afetar significativamente a precisão do modelo. Consegue isso usando estrategicamente uma combinação de diferentes formatos de precisão numérica para armazenar e computar valores dentro de uma rede neural (NN). Normalmente, isso envolve o uso do formato padrão de ponto flutuante de 32 bits (FP32 ou precisão única) para partes críticas, como o armazenamento de pesos do modelo, enquanto emprega os formatos de ponto flutuante de 16 bits mais rápidos e menos intensivos em memória (FP16 ou meia precisão e, às vezes, BF16 ou BFloat16) para cálculos durante as passagens para frente e para trás(retropropagação).

Como funciona a precisão mista

A ideia central por detrás da precisão mista é aproveitar os benefícios de velocidade e de memória dos formatos de precisão mais baixa e, ao mesmo tempo, mitigar potenciais problemas de estabilidade numérica. Uma abordagem comum envolve os seguintes passos:

  1. Mantém os pesos principais em FP32: Uma cópia primária dos pesos do modelo é mantida no formato FP32 padrão para garantir uma elevada precisão nas actualizações dos pesos.
  2. Utiliza FP16/BF16 para os cálculos: Durante o loop de treinamento, os pesos FP32 são convertidos em FP16 ou BF16 para as passagens para frente e para trás. Os cálculos que usam esses formatos de precisão mais baixa são significativamente mais rápidos em hardware moderno, como as GPUsNVIDIA equipadas com Tensor Cores, que são projetadas especificamente para acelerar multiplicações de matrizes em precisões mais baixas.
  3. Escala de perdas: Quando utiliza FP16, o intervalo de números representáveis é muito menor do que FP32. Isso pode fazer com que pequenos valores de gradiente calculados durante a retropropagação se tornem zero (underflow), dificultando o aprendizado. Para evitar isso, o valor da perda é escalonado antes da retropropagação, efetivamente escalonando os gradientes para um intervalo representável por FP16. Antes da atualização do peso, estes gradientes são reduzidos. O BF16, com a sua gama dinâmica mais alargada semelhante ao FP32, mas com uma precisão inferior, evita frequentemente a necessidade de escalonamento das perdas.
  4. Actualiza os pesos principais: Os gradientes calculados (reduzidos se tiver sido utilizado o escalonamento de perdas) são utilizados para atualizar a cópia principal dos pesos, que permanecem em FP32.

Este equilíbrio cuidadoso permite que os modelos sejam treinados mais rapidamente e utilizem menos GPU memória da GPU.

Vantagens da precisão mista

  • Treino mais rápido: Os cálculos de baixa precisão (FP16/BF16) são executados muito mais rapidamente em hardware compatível, reduzindo significativamente o tempo necessário para cada época de treino. Isto permite uma iteração e experimentação mais rápidas.
  • Consumo de memória reduzido: Os valores FP16/BF16 requerem metade da memória dos valores FP32. Esta redução aplica-se às activações armazenadas durante a passagem para a frente e aos gradientes calculados durante a passagem para trás. O menor uso de memória permite treinar modelos maiores ou usar tamanhos de lote maiores, o que pode melhorar o desempenho do modelo e a estabilidade do treinamento.
  • Eficiência melhorada: A combinação de computação mais rápida e requisitos de largura de banda de memória mais baixos leva a uma utilização mais eficiente dos recursos de hardware, reduzindo potencialmente os custos de formação para computação em nuvem ou clusters no local.

Precisão mista vs. conceitos relacionados

  • Precisão total (FP32): A formação tradicional utiliza FP32 para todo o armazenamento e computação. É geralmente mais estável em termos numéricos, mas é mais lento e consome mais memória do que a precisão mista.
  • Meia precisão (FP16/BF16): Utilizar apenas FP16 ou BF16 durante o treino pode levar a uma instabilidade numérica significativa (especialmente FP16 sem técnicas como o escalonamento de perdas) e a uma potencial perda de precisão. A precisão mista é uma abordagem mais robusta que combina FP32 e FP16/BF16.
  • Quantização do modelo: Normalmente, refere-se à conversão de pesos e/ou activações do modelo para formatos de precisão ainda mais baixos, como inteiros de 8 bits (INT8), principalmente para otimizar a velocidade e a eficiência da inferência, especialmente em dispositivos de ponta. Embora por vezes seja utilizada durante o treino(Quantization-Aware Training), é diferente da típica precisão mista FP32/FP16 utilizada durante as fases de treino padrão.

Aplicações e exemplos

A precisão mista é amplamente adoptada na formação de modelos de aprendizagem automática (ML) em grande escala.

  1. Treina grandes modelos de linguagem (LLMs): Modelos como GPT-3, BERT e T5 têm biliões de parâmetros. Treiná-los usando apenas FP32 exigiria quantidades proibitivas de memória e tempo de GPU . A precisão mista torna viável o treino destes modelos fundamentais, reduzindo significativamente as necessidades de memória e acelerando os cálculos. Estruturas como PyTorch e TensorFlow oferecem suporte integrado para treinamento de precisão mista.
  2. Aceleração de modelos de visão computacional: Na visão computacional (CV), a precisão mista acelera o treinamento de modelos complexos, como as redes neurais convolucionais (CNNs) e os transformadores de visão (ViTs) usados para tarefas como deteção de objetos, segmentação de imagens e classificação de imagens. Por exemplo, os modelos Ultralytics YOLO , incluindo o mais recente Ultralytics YOLO11podem tirar partido da precisão mista durante a formação para uma convergência mais rápida e uma utilização eficiente dos recursos, conforme referido nas nossas sugestões de formação de modelos e comparações de modelos. Isto permite aos utilizadores treinar modelos de elevado desempenho mais rapidamente em conjuntos de dados como o COCO. Os ciclos de treinamento mais rápidos facilitam o ajuste mais rápido dos hiperparâmetros e o desenvolvimento de modelos em plataformas como o Ultralytics HUB. A precisão mista também pode ser usada durante a inferência para acelerar a implantação, principalmente ao exportar modelos para formatos como TensorRT que optimizam fortemente para precisões mais baixas.
Lê tudo