Entenda FLOPs em machine learning! Aprenda como ele mede a complexidade do modelo, impacta a eficiência e auxilia na seleção de hardware.
Os FLOPs, ou Floating-Point Operations, são uma métrica fundamental para quantificar a complexidade computacional dos modelos de aprendizagem automática, especificamente no no domínio da aprendizagem profunda. Esta medida calcula o número total de operações matemáticas - como a adição, a subtração, a multiplicação e a divisão que envolvem a aprendizagem profunda, subtração, multiplicação e divisão envolvendo números decimais - necessárias para completar uma única passagem de uma rede neural. Ao determinar a contagem de FLOPs, engenheiros podem estimar o poder de processamento necessário para executar um modelo, tornando-o uma estatística vital para a seleção e otimização de hardware. Embora distintos do tamanho do ficheiro ou da contagem de parâmetros, os FLOPs fornecem uma base teórica para de um modelo, o que se correlaciona diretamente com o consumo de energia e a velocidade de execução em processadores como uma CPU ou GPU.
Compreender o custo computacional de um modelo é essencial para um desenvolvimento eficiente da desenvolvimento eficiente da IA. Uma contagem mais baixa de FLOPs geralmente indica que um modelo requer menos cálculos para produzir uma previsão, o que é crítico para ambientes ambientes com recursos limitados.
O impacto prático dos FLOPs é mais visível quando os modelos passam de ambientes de investigação para ambientes de produção onde a latência e a potência são limitadas.
Pode determinar a complexidade computacional de um modelo Ultralytics utilizando as ferramentas de criação de perfis incorporadas. O seguinte carrega um modelo e calcula os FLOPs necessários para um tamanho de entrada específico.
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)
Este método produz uma tabela de resumo que inclui o número de parâmetros, gradientes e os GFLOPs (GigaFLOPs, ou biliões de operações), ajudando-o a avaliar se o modelo se ajusta às suas restrições de implantação.
É importante distinguir os FLOPs de outras métricas que descrevem o tamanho e a velocidade do modelo, uma vez que medem diferentes aspectos do desempenho.
Embora os FLOPs forneçam uma linha de base útil, eles não contam toda a história do desempenho do modelo. Eles não levam em conta custos de acesso à memória (a energia e o tempo para mover os dados para o processador), que é muitas vezes o gargalo nos sistemas modernos de aprendizagem profunda. Além disso, operações como funções de ativação (por exemplo, ReLU) ou camadas de normalização têm baixas contagens de FLOP, mas ainda consomem tempo. Por conseguinte, os FLOPs devem ser utilizados em conjunto com a avaliação comparativa do mundo real em hardware alvo, como um Raspberry Pi, para obter uma imagem exacta do desempenho.