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 para acelerar a computação e reduzir os requisitos de memória sem comprometer significativamente o desempenho do modelo. Consegue isso usando estrategicamente diferentes formatos de precisão numérica - principalmente ponto flutuante de 16 bits (FP16 ou meia precisão) e ponto flutuante de 32 bits (FP32 ou precisão única) - para diferentes partes do modelo durante o treinamento e a inferência. Esta abordagem equilibra a velocidade e a eficiência de memória da precisão mais baixa com a estabilidade numérica e a exatidão oferecidas pela precisão mais elevada.

Compreender a precisão numérica

Os modelos de aprendizagem profunda tradicionalmente dependem do formato de ponto flutuante de precisão única padrão IEEE 754 (FP32) para armazenar pesos, ativações e gradientes. O FP32 oferece uma ampla faixa dinâmica e precisão, tornando-o robusto para cálculos complexos. No entanto, as operações do FP32 requerem uma potência computacional e uma largura de banda de memória significativas. Formatos de menor precisão, como o FP16, usam apenas 16 bits, reduzindo pela metade o espaço de memória e muitas vezes permitindo cálculos muito mais rápidos em hardware compatível, como GPUs modernas equipadas com NVIDIA Tensor Cores.

Como funciona a precisão mista

O treino de precisão mista combina de forma inteligente FP16 e FP32. A ideia central é efetuar operações computacionalmente intensivas, como convoluções e multiplicações de matrizes dentro das camadas do modelo, utilizando o formato FP16 mais rápido. No entanto, certas operações são sensíveis ao intervalo e precisão reduzidos do FP16. Para manter a estabilidade e a precisão do modelo, as partes críticas do processo de treino, como o cálculo de perdas e as actualizações de gradientes, são frequentemente mantidas no formato FP32, mais robusto. Técnicas como o escalonamento dinâmico de perdas são utilizadas para evitar problemas de sub ou sobrefluxo numérico quando os gradientes se tornam demasiado pequenos ou demasiado grandes para a representação em FP16. Estruturas como PyTorch (via Automatic Mixed Precision - AMP) e TensorFlow (via tf.keras.mixed_precision API) fornecem suporte automatizado para a implementação de treinamento de precisão mista.

Vantagens da precisão mista

A implementação da precisão mista oferece várias vantagens importantes:

  • Treino mais rápido: As operações FP16 podem ser significativamente mais rápidas no hardware suportado, levando a tempos de treino reduzidos.
  • Reduz o uso de memória: O armazenamento de pesos e activações de modelos em FP16 reduz para metade o requisito de memória, permitindo modelos maiores ou tamanhos de lote maiores, o que pode melhorar a dinâmica do treino.
  • Eficiência energética: A computação mais rápida e o movimento reduzido de dados levam a um menor consumo de energia durante o treino e a inferência.
  • Mantém a exatidão: Quando implementado corretamente com técnicas como o escalonamento de perdas, a precisão mista atinge normalmente uma precisão comparável à do treino FP32 completo. Para obter mais detalhes sobre como otimizar o treinamento, consulte estas dicas de treinamento de modelos.

Aplicações no mundo real

A precisão mista é amplamente utilizada em vários domínios da IA:

  1. Visão computacional: Modelos de deteção de objectos de última geração, incluindo Ultralytics YOLO modelos como YOLOv8 e YOLO11utilizam frequentemente a precisão mista durante o treino. Isto permite-lhes treinar mais rapidamente e lidar com conjuntos de dados maiores, como o COCO ou o Objects365, permitindo, em última análise, uma implementação eficiente em plataformas que vão desde servidores em nuvem a dispositivos de ponta, como o NVIDIA Jetson.
  2. Processamento de linguagem natural (PNL): O treino de grandes modelos linguísticos (LLMs), como o GPT-3 e o BERT, é computacionalmente intensivo. O treino de precisão mista é crucial para gerir os requisitos de memória e computação, tornando viável o treino destes modelos para tarefas como a geração de texto, tradução automática e análise de sentimentos.

Considerações e conceitos relacionados

Embora altamente benéfica, uma implementação de precisão mista bem sucedida requer:

  • Suporte de hardware: Para obter um aumento de velocidade ideal, é necessário hardware especificamente concebido para computação FP16 acelerada (por exemplo, NVIDIA Volta, Turing, Ampere ou GPUs mais recentes).
  • Estabilidade numérica: É necessário um tratamento cuidadoso, muitas vezes através de ferramentas de enquadramento automatizadas e de escalonamento de perdas, para evitar problemas relacionados com a gama limitada do FP16.
  • Integração de estruturas: Aproveita o suporte incorporado em estruturas de aprendizagem profunda como PyTorch ou TensorFlow simplifica a implementação.

É importante distinguir o treinamento de precisão mista da quantização de modelos. Embora ambos envolvam o uso de menor precisão, a quantização normalmente converte modelos para formatos de bits ainda mais baixos (como INT8) principalmente para otimizar a velocidade de inferência e reduzir o tamanho do modelo para implantação em dispositivos com recursos limitados, geralmente após o treinamento inicial. A precisão mista centra-se na aceleração do próprio processo de formação, combinando FP16 e FP32.

A precisão mista tornou-se uma técnica padrão no conjunto de ferramentas de aprendizagem profunda, permitindo o desenvolvimento e o treino de modelos maiores e mais complexos de forma mais rápida e eficiente.

Lê tudo