FLOPs
Aprende como os FLOPs medem a complexidade computacional dos modelos de IA. Descobre como calcular os FLOPs do Ultralytics YOLO26 e otimizar o desempenho para Edge AI.
FLOPs, ou operações de ponto flutuante, é uma métrica padrão utilizada para medir a complexidade computacional de um modelo de machine learning. Ela contabiliza especificamente o número de cálculos matemáticos — principalmente adições e multiplicações envolvendo números decimais — que uma rede neural precisa realizar para processar uma única entrada, como uma imagem ou uma frase. No mundo do deep learning, FLOPs serve como uma referência teórica para estimar o quão "pesado" ou computacionalmente dispendioso é um modelo. Uma contagem mais alta de FLOPs geralmente indica que um modelo é mais complexo e exigirá mais poder de processamento e energia para ser executado, enquanto uma contagem mais baixa indica uma arquitetura leve projetada para obter eficiência.
O papel dos FLOPs na seleção de modelos#
Ao desenvolver aplicações de inteligência artificial, os engenheiros frequentemente enfrentam um compromisso entre precisão e velocidade. FLOPs funciona como um indicador independente do hardware para a latência de inferência, permitindo que os desenvolvedores comparem diferentes arquiteturas sem precisar avaliá-las em todos os dispositivos possíveis. Essa métrica é essencial para escolher o modelo certo para cenários específicos de implementação. Por exemplo, um investigador que realiza experiências em servidores avançados de computação em nuvem pode dar prioridade à precisão em detrimento da eficiência, utilizando modelos com FLOPs elevados. Por outro lado, um engenheiro que desenvolve para dispositivos de edge AI deve dar prioridade a FLOPs baixos para garantir que a aplicação funcione sem problemas dentro de limites rigorosos de energia e temperatura.
Aplicações no mundo real#
As implicações práticas dos FLOPs são evidentes em vários setores nos quais os recursos computacionais são um fator crítico.
- Drones autónomos: Em áreas como a robótica agrícola, os drones equipados com câmaras analisam a saúde das culturas em tempo real. Como as baterias dos drones são limitadas, cada parcela do consumo de energia é importante. Os engenheiros selecionam especificamente modelos com FLOPs baixos, como as variantes Nano do YOLO26, para minimizar o consumo do processador integrado e, assim, maximizar o tempo de voo e o alcance operacional.
- Realidade aumentada móvel: As aplicações para smartphones que utilizam reconhecimento facial para segurança ou aplicam filtros de RA dependem fortemente de um processamento eficiente. Estas aplicações têm de funcionar sem causar o sobreaquecimento ou atrasos do dispositivo. Os desenvolvedores utilizam estimativas de FLOPs para selecionar modelos leves que se enquadrem confortavelmente nas capacidades de chipsets móveis, como a série Snapdragon ou os chips da série A da Apple.
FLOPs vs. FLOPS (operações de ponto flutuante por segundo)#
É importante distinguir entre "FLOPs" (plural de FLOP) e "FLOPS" (tudo em maiúsculas). Embora sejam quase idênticos visualmente, medem coisas diferentes. FLOPs (com 's' minúsculo) refere-se à quantidade total de operações exigidas por um modelo — é uma medida estática da complexidade. FLOPS (com 'S' maiúsculo) significa operações de ponto flutuante por segundo e mede a velocidade ou a capacidade de desempenho do hardware, como uma GPU. Podes pensar nos FLOPs como a distância que um carro precisa de percorrer (o trabalho a realizar), enquanto FLOPS é a velocidade máxima do carro (a capacidade do hardware de realizar o trabalho).
Medir FLOPs com Python#
Podes calcular facilmente o custo computacional de um modelo da Ultralytics utilizando Python. Isto é particularmente útil durante a fase de otimização do modelo, para garantir que a tua rede neural se enquadra no orçamento de hardware. O exemplo seguinte demonstra como carregar um modelo YOLO26 e determinar os 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")Reduzir os FLOPs para obter eficiência#
Para tornar os modelos mais fáceis de implementar, os investigadores utilizam várias técnicas para reduzir os FLOPs sem sacrificar significativamente a precisão. A poda de modelos consiste em remover ligações menos importantes da rede neural, tornando-a efetivamente mais compacta. Outra técnica é a quantização, que reduz a precisão dos números utilizados nos cálculos (por exemplo, de ponto flutuante de 32 bits para inteiros de 8 bits). As ferramentas disponíveis na Ultralytics Platform ajudam a simplificar estes processos de otimização, facilitando a implementação de modelos eficientes em destinos como TensorRT ou OpenVINO. Ao compreender e otimizar os FLOPs, os desenvolvedores podem criar sistemas de IA que sejam simultaneamente poderosos e sustentáveis.









