머신러닝에서 FLOPs를 이해하세요! 모델 복잡성을 측정하고, 효율성에 영향을 미치며, 하드웨어 선택을 지원하는 방법을 알아보세요.
FLOPs(Floating-Point Operations)는 머신 러닝(ML)에서 모델의 계산 복잡도를 측정하는 데 사용되는 기본적인 지표입니다. 부동 소수점 연산은 신경망에서 표준으로 사용되는 소수점이 있는 숫자를 포함하는 덧셈, 뺄셈, 곱셈 또는 나눗셈과 같은 모든 수학적 계산입니다. 이 용어는 초당 연산 수를 기술적으로 지칭할 수 있지만, 딥 러닝의 맥락에서 FLOPs는 일반적으로 모델의 단일 순방향 패스에 필요한 이러한 연산의 총 횟수를 정량화합니다. 이 지표는 추론 중에 모델이 얼마나 많은 계산을 필요로 하는지 추정할 수 있는 하드웨어에 구애받지 않는 방법을 제공합니다. 이 숫자는 종종 매우 커서 수십억 번의 연산인 GigaFLOPs(GFLOPs) 또는 수조 번의 연산인 TeraFLOPs(TFLOPs)로 표현됩니다.
FLOPs는 모델 효율성의 중요한 지표입니다. 일반적으로 FLOPs 수가 적을수록 모델 실행 속도가 빠르고 필요한 컴퓨팅 성능이 적다는 것을 의미합니다. 이는 엣지 AI 및 모바일 장치와 같이 리소스가 제한된 애플리케이션에서 특히 중요합니다. FLOPs를 분석함으로써 개발자는 다음을 수행할 수 있습니다.
FLOPs는 AI 솔루션 개발 및 배포에 매일 사용되는 실용적인 지표입니다.
모바일 비전 애플리케이션: 스마트폰 앱을 위한 실시간 객체 감지 기능을 개발하는 개발자는 배터리 소모 없이 빠르게 실행할 수 있는 모델을 선택해야 합니다. 소형 Ultralytics YOLO11 변형과 같은 경량 모델의 FLOP를 다른 모델과 비교하여 장치의 CPU 또는 GPU에 적합한 속도와 정확도의 균형을 제공하는 모델을 선택할 수 있습니다.
자율 주행 차량: 자율 주행에서 인식 모델은 매우 낮은 지연 시간으로 카메라 피드를 처리해야 합니다. 이러한 시스템을 설계하는 엔지니어는 선택한 아키텍처가 차량의 특수 하드웨어에서 실행될 수 있도록 다양한 모델의 FLOP를 분석합니다. YOLO11과 같은 모델은 더 복잡한 모델보다 FLOP가 낮아 안전한 작동을 위한 엄격한 타이밍 요구 사항을 충족할 수 있는 경우 선택될 수 있습니다.
FLOPs를 다른 일반적인 지표와 구별하는 것이 중요합니다.
유용하지만 FLOP에는 다음과 같은 제한 사항이 있습니다.
따라서 FLOP는 모델 효율성에 대한 완전한 그림을 위해 다른 성능 지표, 매개변수 및 실제 벤치마크와 함께 고려해야 합니다. Ultralytics HUB와 같은 도구는 개발 및 배포 중에 모델을 관리하고 다양한 성능 측면을 추적하는 데 도움이 될 수 있습니다.