용어집

플롭

머신 러닝에서 플롭을 이해하세요! 모델 복잡성을 측정하고, 효율성에 영향을 미치며, 하드웨어 선택에 도움을 주는 방법을 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

부동 소수점 연산(FLOPs)은 머신 러닝(ML) 모델, 특히 딥 러닝에서 계산 복잡성을 나타내는 기본적인 척도입니다. 이는 일반적으로 추론 중에 모델의 단일 포워드 패스에 필요한 부동 소수점 계산(덧셈, 뺄셈, 곱셈, 나눗셈 등)의 총 수를 정량화합니다. 모델 효율성을 평가하고, 다양한 아키텍처를 비교하고, 강력한 클라우드 서버부터 리소스가 제한된 엣지 디바이스에 이르기까지 다양한 하드웨어 플랫폼에 대한 모델의 적합성을 결정하려면 FLOP을 이해하는 것이 중요합니다.

플롭이란 무엇인가요?

부동 소수점 연산은 소수점이 있는 숫자(부동 소수점 숫자)를 포함하는 모든 수학적 계산을 말합니다. 신경망(NN)에서 이러한 연산은 컨볼루션과 완전히 연결된 레이어와 같은 레이어에서 광범위하게 발생합니다. 플롭은 단일 입력(예: 이미지)을 처리하는 데 필요한 이러한 연산의 총 수를 측정합니다.

최신 딥 러닝 모델에는 수십억 개의 연산이 포함되기 때문에 FLOP은 종종 기가플롭스(GFLOPs, 수십억 FLOPs) 또는 테라플롭스(TFLOPs, 수조 FLOPs)로 표현됩니다. FLOP(총 연산 수, 계산 작업량의 척도)와 FLOPS(초당 부동 소수점 연산 수, GPU 성능과 같은 하드웨어 처리 속도의 척도)를 혼동하지 않는 것이 중요합니다. 모델 복잡성을 평가할 때 'FLOPs'는 거의 항상 총 연산 횟수를 의미합니다.

AI 및 머신 러닝의 관련성

FLOP은 AI 모델의 계산 비용을 추정하는 데 있어 하드웨어에 구애받지 않는 중요한 지표로 사용됩니다. 관련성의 주요 측면은 다음과 같습니다:

  • 효율성 비교: 연구자와 실무자는 FLOP을 통해 특정 하드웨어나 소프트웨어 최적화와 무관하게 다양한 모델 아키텍처의 계산 요구 사항을 비교할 수 있습니다. 예를 들어, Ultralytics YOLO11 YOLOv10과 같은 모델을 비교할 때 FLOP은 정확도 메트릭과 함께 상대적인 계산 효율성에 대한 인사이트를 제공합니다.
  • 하드웨어 적합성: 일반적으로 FLOPs가 낮은 모델은 연산 능력이 덜 필요하므로 스마트폰, Raspberry Pi 또는 엣지 컴퓨팅에서 흔히 사용되는 NVIDIA Jetson 플랫폼과 같이 리소스가 제한된 장치에 배포하는 데 더 적합합니다.
  • 추론 속도 추정: 속도를 직접적으로 측정하는 것은 아니지만, 낮은 FLOP은 종종 더 빠른 추론 지연 시간과 상관관계가 있습니다. 그러나 실제 속도는 메모리 액세스 패턴, 하드웨어 병렬 처리(CPU 대 GPU 대 TPU), 최적화된 소프트웨어 라이브러리( TensorRT 또는 OpenVINO.
  • 모델 설계 및 최적화: FLOP은 모델 설계, 신경망 아키텍처 검색(NAS), 모델 가지치기와 같은 최적화 기법에서 성능을 유지하면서 계산 비용을 줄이는 것을 목표로 하는 핵심 고려 사항입니다.

플롭과 관련 개념

FLOP을 다른 일반적인 메트릭과 구별하는 것이 도움이 됩니다:

  • 플롭과 매개변수 비교: 매개변수(또는 모델 가중치)의 수는 메모리 스토리지 측면에서 모델의 크기를 나타냅니다. FLOP은 모델을 실행하는 데 드는 계산 비용을 측정합니다. 모델은 매개변수가 많지만 FLOP이 낮거나(예: 가중치가 드물게 사용되는 경우), 매개변수는 적지만 FLOP이 높을 수 있습니다(예: 매개변수당 많은 연산이 포함되는 경우). 두 메트릭 모두 효율성을 평가하는 데 중요합니다. 예를 들어, YOLOv9는 이전 버전에 비해 상대적으로 적은 수의 파라미터와 FLOP으로 높은 정확도를 달성하는 기술을 도입했습니다.
  • FLOPs와 추론 속도 비교: FLOP은 이론적인 계산 작업을 나타내는 반면, 추론 속도(종종 추론당 초당 프레임 수(FPS) 또는 밀리초로 측정됨)는 특정 하드웨어에서 실제로 측정된 성능을 의미합니다. 메모리 대역폭, 소프트웨어 스택(PyTorch, TensorFlow), 양자화배치 크기와 같은 요인이 실제 속도에 큰 영향을 미칩니다. 지연 시간 대 처리량 최적화는 단순한 FLOP을 넘어 실질적인 성능을 어떻게 조정할 수 있는지 보여줍니다.
  • 플롭과 MAC/MACC 비교: 곱셈-누적 연산(MAC 또는 MACC)은 컨볼루션 신경망(CNN)에서 흔히 사용되는 융합 곱셈과 덧셈 연산 횟수를 계산합니다. 하나의 MAC에는 일반적으로 하나의 곱셈과 하나의 덧셈이 포함되므로, 보통 2 FLOP으로 근사화됩니다. 일부 연구 논문이나 모델 카드에서는 FLOP 대신 MAC을 보고하기도 합니다. 두 지표는 약 2배 정도 차이가 나기 때문에 어떤 지표를 사용하고 있는지 확인하는 것이 중요합니다. 보고된 계산 비용을 기반으로 모델을 비교할 때는 이 차이를 이해하는 것이 중요합니다.

애플리케이션 및 예시

플롭은 다양한 AI 및 ML 환경에서 널리 사용됩니다:

  1. 엣지 배포를 위한 모델 선택: 스마트 보안 카메라를 개발하는 회사는 처리 능력이 제한된 엣지 디바이스에서 효율적으로 실행할 수 있는 객체 감지 모델이 필요합니다. 이 회사는 다양한 크기의 Ultralytics YOLO (예: YOLO11n과 YOLO11s)를 포함한 여러 모델을 비교합니다. 각 모델에 대해 보고된 FLOPs(예: Ultralytics YOLO11 설명서에서 찾을 수 있음)를 검토하여 디바이스의 계산 예산(하드웨어 FLOPS로 측정)을 고려할 때 지연 시간 요구 사항을 충족하는 가장 큰 모델을 선택할 수 있습니다. YOLO11n과 같은 낮은 FLOPs 모델이 유력한 후보입니다.
  2. 새로운 아키텍처 벤치마킹: 새로운 컴퓨터 비전 아키텍처를 개발하는 연구자들은 그 효율성을 입증해야 합니다. 이들은 COCO와 같은 표준 벤치마크 데이터 세트에서 모델의 정확도 (예: mAP)를 GFLOPs와 비교합니다. 정확도 대 FLOPs 그래프에 기존 최신 모델(예: EfficientNet 또는 다양한 YOLO 버전)과 함께 모델을 표시하여 개선된 트레이드오프를 보여줍니다. YOLOv9 대 YOLOX와 같은 많은 모델 비교 페이지에서는 FLOP을 주요 비교 지점으로 사용합니다.

플롭 계산 및 예상하기

일반적으로 모델의 아키텍처를 계층별로 분석하고 입력/출력 차원과 계층 유형(컨볼루션, 완전 연결 등)에 따라 각 계층에 필요한 연산을 합산하여 FLOP을 계산합니다. fvcore 또는 딥 러닝 프레임워크에 내장된 프로파일러와 같은 다양한 도구와 라이브러리가 이 계산을 자동화하거나 추정치를 제공하는 데 도움이 될 수 있습니다. 입력 해상도는 많은 비전 모델의 FLOP 수에 큰 영향을 미칩니다.

제한 사항

유용하지만 FLOP에는 한계가 있습니다:

  • 이는 심각한 병목 현상이 될 수 있는 메모리 액세스 비용(MAC)을 고려하지 않습니다.
  • 이러한 방식은 작업에서 가능한 병렬 처리의 정도를 포착하지 못합니다.
  • 실제 성능은 하드웨어별 최적화와 기본 소프트웨어 라이브러리(cuDNN, Intel MKL)의 효율성에 따라 크게 달라집니다.
  • 특정 작업(예: ReLU와 같은 활성화 함수)은 FLOP 수가 적지만 여전히 지연 시간에 영향을 줄 수 있습니다.

따라서 모델 효율성을 전체적으로 파악하려면 다른 성능 메트릭, 매개변수 및 실제 벤치마크와 함께 FLOP을 고려해야 합니다. 개발 및 배포 중에 모델을 관리하고 다양한 성능 측면을 추적하는 데 도움이 되는 도구로는 Ultralytics HUB와 같은 도구가 있습니다.

모두 보기