FLOPs
Aprenda como FLOPs medem a complexidade computacional de modelos de IA. Descubra como calcular FLOPs para o Ultralytics YOLO26 e otimizar o desempenho para Edge AI.
FLOPs, ou Operações de Ponto Flutuante, é uma métrica padrão usada para medir a complexidade computacional de um modelo de machine learning. Ela conta especificamente o número de cálculos matemáticos — principalmente adições e multiplicações envolvendo números decimais — que uma neural network deve realizar para processar uma única entrada, como uma imagem ou uma frase. No mundo do deep learning, os FLOPs servem como uma referência teórica para estimar o quão "pesado" ou computacionalmente custoso um modelo é. Uma contagem de FLOPs mais alta geralmente sugere que um modelo é mais complexo e exigirá mais poder de processamento e energia para ser executado, enquanto uma contagem menor indica uma arquitetura leve projetada para eficiência.
Link to this sectionO papel dos FLOPs na seleção de modelos#
Ao desenvolver aplicações de artificial intelligence, os engenheiros frequentemente enfrentam um equilíbrio entre precisão e velocidade. Os FLOPs atuam como um proxy independente de hardware para a inference latency, permitindo que os desenvolvedores comparem diferentes arquiteturas sem a necessidade de testá-las em todos os dispositivos possíveis. Essa métrica é essencial para escolher o modelo certo para cenários de implementação específicos. Por exemplo, um pesquisador que executa experimentos em servidores poderosos de cloud computing pode priorizar a precisão em vez da eficiência, utilizando modelos com altos FLOPs. Por outro lado, um engenheiro que desenvolve para dispositivos de edge AI deve priorizar FLOPs baixos para garantir que a aplicação seja executada sem problemas dentro de limites rígidos de energia e temperatura.
Link to this sectionAplicações no Mundo Real#
As implicações práticas dos FLOPs são evidentes em diversos setores onde os recursos computacionais são um fator crítico.
- Drones autônomos: Em áreas como agricultural robotics, drones equipados com câmeras analisam a saúde das plantações em tempo real. Como as baterias dos drones são limitadas, cada bit de consumo de energia é importante. Os engenheiros selecionam especificamente modelos com baixos FLOPs, como as variantes Nano do YOLO26, para minimizar o consumo no processador de bordo, maximizando assim o tempo de voo e o alcance operacional.
- Realidade aumentada móvel: Aplicações de smartphone que usam facial recognition para segurança ou aplicam filtros de AR dependem fortemente de um processamento eficiente. Esses aplicativos devem funcionar sem causar superaquecimento ou travamentos no dispositivo. Os desenvolvedores usam estimativas de FLOPs para selecionar modelos leves que se encaixam confortavelmente dentro das capacidades de chipsets móveis como a série Snapdragon ou os A-series chips da Apple.
Link to this sectionFLOPs vs. FLOPS (Operações de Ponto Flutuante Por Segundo)#
É importante distinguir entre "FLOPs" (plural de FLOP) e "FLOPS" (todas as letras maiúsculas). Embora pareçam quase idênticos, eles medem coisas diferentes. FLOPs (s minúsculo) refere-se à quantidade total de operações necessárias por um modelo — é uma medida estática de complexidade. FLOPS (S maiúsculo) significa Operações de Ponto Flutuante Por Segundo e mede a velocidade ou capacidade de desempenho do hardware, como uma GPU. Você pode pensar nos FLOPs como a distância que um carro precisa percorrer (o trabalho a ser feito), enquanto FLOPS é a velocidade máxima do carro (a capacidade do hardware de realizar o trabalho).
Link to this sectionMedindo FLOPs com Python#
Você pode calcular facilmente o custo computacional de um modelo Ultralytics usando Python. Isso é particularmente útil durante a fase de model optimization para garantir que sua neural network caiba dentro do seu orçamento de hardware. O exemplo a seguir demonstra como carregar um modelo YOLO26 e determinar seus FLOPs.
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")Link to this sectionReduzindo FLOPs para eficiência#
Para tornar os modelos mais implementáveis, os pesquisadores usam várias técnicas para reduzir os FLOPs sem sacrificar significativamente a precisão. O model pruning envolve a remoção de conexões menos importantes na neural network, reduzindo-a efetivamente. Outra técnica é a quantization, que reduz a precisão dos números usados nos cálculos (por exemplo, de ponto flutuante de 32 bits para inteiros de 8 bits). Ferramentas disponíveis na Ultralytics Platform ajudam a agilizar esses processos de otimização, tornando mais fácil implantar modelos eficientes em destinos como TensorRT ou OpenVINO. Ao compreender e otimizar os FLOPs, os desenvolvedores podem criar sistemas de IA que são poderosos e sustentáveis.






