Saiba como os FLOPs medem a complexidade computacional dos modelos de IA. Descubra como calcular os FLOPs para Ultralytics e otimizar o desempenho para a IA de ponta.
FLOPs, ou Operações de Ponto Flutuante, é uma métrica padrão usada para medir a complexidade computacional de um modelo de aprendizagem automática. Especificamente, conta o número de cálculos matemáticos — principalmente adições e multiplicações envolvendo números decimais — que uma rede neural deve realizar para processar uma única entrada, como uma imagem ou uma frase. No mundo do aprendizado profundo, FLOPs serve como um padrão teórico para estimar o quão "pesado" ou computacionalmente dispendioso um modelo é. Uma contagem mais alta de FLOPs geralmente sugere 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 eficiência.
Ao desenvolver aplicações de inteligência artificial, os engenheiros frequentemente enfrentam um compromisso entre precisão e velocidade. O FLOPs atua como um proxy independente de hardware para latência de inferência, permitindo que os programadores comparem diferentes arquiteturas sem precisar 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 investigador que realiza experiências em poderosos servidores de computação em nuvem pode priorizar a precisão em detrimento da eficiência, utilizando modelos com FLOPs elevados. Por outro lado, um engenheiro que desenvolve dispositivos de IA de ponta deve priorizar FLOPs baixos para garantir que a aplicação funcione perfeitamente dentro de limites rigorosos de energia e temperatura.
As implicações práticas dos FLOPs são evidentes em vários setores onde os recursos computacionais são um fator crítico .
É importante distinguir entre «FLOPs» (plural de FLOP) e «FLOPS» (tudo em maiúsculas). Embora pareçam quase idênticos, medem coisas diferentes. FLOPs (com «s» minúsculo) refere-se à quantidade total de operações exigidas por um modelo — é uma medida estática de complexidade. FLOPS (letra «S» maiúscula) significa Operações de ponto flutuante por segundo e mede a velocidade ou capacidade de desempenho do hardware, como um GPU. 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 para fazer o trabalho).
É possível calcular facilmente o custo computacional de um Ultralytics usando Python. Isso é particularmente útil durante a fase de otimização do modelo para garantir que a sua rede neural se encaixe no seu orçamento de hardware. O exemplo a seguir 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")
Para tornar os modelos mais implementáveis, os investigadores utilizam várias técnicas para reduzir os FLOPs sem sacrificar significativamente a precisão. A poda do modelo envolve a remoção de ligações menos importantes na rede neural, efetivamente afinando-a. Outra técnica é a quantização, 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). As ferramentas disponíveis na Ultralytics ajudam a otimizar esses processos, facilitando a implementação de modelos eficientes em destinos como o TensorRT ou OpenVINO. Ao compreender e otimizar os FLOPs, os programadores podem construir sistemas de IA que são poderosos e sustentáveis.