Glossário

FLOPs

Compreender os FLOPs na aprendizagem automática! Saiba como ele mede a complexidade do modelo, impacta a eficiência e ajuda na seleção de hardware.

Os FLOPs, ou operações de vírgula flutuante, são uma métrica fundamental utilizada na aprendizagem automática (ML) para medir a complexidade computacional de um modelo. Uma operação de vírgula flutuante é qualquer cálculo matemático - como a adição, a subtração, a multiplicação ou a divisão - que envolva números com pontos decimais, que são padrão nas redes neurais. Embora o termo possa se referir tecnicamente a operações por segundo, no contexto do aprendizado profundo, os FLOPs geralmente quantificam o número total dessas operações necessárias para uma única passagem direta de um modelo. Essa métrica fornece uma maneira independente de hardware para estimar o quão computacionalmente intensivo um modelo será durante a inferência. Os números são frequentemente tão grandes que são expressos em GigaFLOPs (GFLOPs), que são biliões de operações, ou TeraFLOPs (TFLOPs), triliões de operações.

Porque é que os FLOPs são importantes na aprendizagem automática?

Os FLOPs são um indicador crítico da eficiência de um modelo. Uma contagem de FLOP mais baixa sugere geralmente que um modelo será mais rápido e exigirá menos potência computacional para ser executado. Isto é especialmente importante para aplicações em que os recursos são limitados, como na IA de ponta e em dispositivos móveis. Ao analisar os FLOPs, os programadores podem:

  • Comparar arquitecturas de modelos: Ao escolher entre diferentes modelos, como os encontrados em nossas páginas de comparação de modelos, os FLOPs oferecem uma maneira padronizada de avaliar a eficiência computacional juntamente com a precisão.
  • Otimizar para implantação: Para a implementação de modelos em hardware como um Raspberry Pi ou NVIDIA Jetson, a seleção de um modelo com uma contagem de FLOP adequada é essencial para alcançar os níveis de desempenho desejados.
  • Orientar o design do modelo: Os investigadores que desenvolvem novas arquitecturas, como as da série Ultralytics YOLO, tratam frequentemente a minimização de FLOPs como uma restrição fundamental do design. As técnicas exploradas em modelos como o EfficientNet concentram-se na redução do custo computacional sem sacrificar o desempenho.

Aplicações no mundo real

Os FLOPs são uma métrica prática utilizada diariamente no desenvolvimento e implementação de soluções de IA.

  1. Aplicações de visão móvel: Um programador que cria uma funcionalidade de deteção de objectos em tempo real para uma aplicação de smartphone tem de escolher um modelo que possa ser executado rapidamente sem esgotar a bateria. Ao comparar os FLOPs de modelos leves, como uma pequena variante Ultralytics YOLO11, com outros, pode selecionar um modelo que proporcione um bom equilíbrio entre velocidade e precisão para a CPU ou GPU do dispositivo.

  2. Veículos autónomos: Na condução autónoma, os modelos de perceção devem processar as imagens da câmara com uma latência extremamente baixa. Os engenheiros que projetam esses sistemas analisam os FLOPs de vários modelos para garantir que a arquitetura escolhida possa ser executada no hardware especializado do veículo. Um modelo como o YOLO11 pode ser escolhido em vez de um mais complexo se os seus FLOPs mais baixos lhe permitirem cumprir os requisitos de tempo rigorosos para uma operação segura.

FLOPs vs. métricas relacionadas

É importante distinguir os FLOPs de outras métricas comuns:

  • Parâmetros vs. FLOPs: O número de pesos do modelo (parâmetros) indica o tamanho de um modelo em termos de armazenamento de memória. Os FLOPs, por outro lado, medem o trabalho computacional. Um modelo pode ter um pequeno número de parâmetros mas um elevado número de FLOP se esses parâmetros forem reutilizados muitas vezes em operações computacionalmente intensivas.
  • MACs vs. FLOPs: MACs, ou operações de multiplicação-acumulação, são uma operação comum em redes neurais. Um único MAC é frequentemente considerado equivalente a dois FLOPs (uma multiplicação e uma adição). Alguns trabalhos de investigação e estruturas podem indicar o custo computacional em MACs, que é cerca de metade do valor dos FLOPs. Pode ver esta distinção em recursos como Papers with Code.
  • Latência vs. FLOPs: A latência de inferência é o tempo real que um modelo leva para fazer uma previsão. Embora os FLOPs forneçam uma boa estimativa teórica, a latência no mundo real é influenciada por fatores que os FLOPs não capturam, como a largura de banda da memória, o paralelismo do hardware e a eficiência de bibliotecas de software como o PyTorch.

Limitações

Embora úteis, os FLOPs têm limitações:

  • Não têm em conta os custos de acesso à memória, que podem constituir um estrangulamento significativo.
  • Não captam o grau de paralelismo possível nas operações.
  • O desempenho real depende em grande medida das optimizações específicas do hardware e da eficiência das bibliotecas de software subjacentes(cuDNN, Intel MKL).
  • Certas operações (por exemplo, funções de ativação como ReLU) têm contagens baixas de FLOP, mas podem ter impacto na latência.

Portanto, os FLOPs devem ser considerados juntamente com outras métricas de desempenho, parâmetros e benchmarks do mundo real para obter uma imagem completa da eficiência do modelo. Ferramentas como o Ultralytics HUB podem ajudar a gerir modelos e acompanhar vários aspectos do desempenho durante o desenvolvimento e a implementação.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência