용어집

모델 가지치기

모델 가지치기로 머신 러닝 모델을 최적화하세요. 리소스가 제한된 배포에서 더 빠른 추론, 메모리 사용량 감소 및 에너지 효율성을 달성하세요.

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

자세히 알아보기

모델 가지치기는 학습된 모델의 크기와 복잡성을 줄여 최적화하는 데 사용되는 머신 러닝(ML) 기법입니다. 여기에는 모델의 전체 성능에 최소한으로 기여하는 모델 가중치나 신경망(NN) 내의 연결과 같이 덜 중요한 매개변수를 식별하고 제거하는 작업이 포함됩니다. 주요 목표는 정확도를 크게 떨어뜨리지 않으면서도 더 적은 연산 능력과 메모리를 필요로 하는 더 작고 빠른 모델을 만드는 것입니다. 이 프로세스는 ML 모델에 직접 적용되는 광범위한 가지 치기 개념을 구체적으로 적용한 것으로, 배포 효율을 높여줍니다.

모델 가지치기를 사용하는 이유는 무엇인가요?

모델 가지치기의 주요 동인은 효율성입니다. 특히 컴퓨터 비전(CV)과 같은 분야의 최신 딥러닝(DL) 모델은 매우 크고 계산 집약적일 수 있습니다. 이는 특히 스마트폰, 임베디드 시스템 또는 엣지 컴퓨팅 시나리오와 같이 리소스가 제한된 디바이스에서 모델 배포에 어려움을 야기합니다. 모델 가지치기는 이러한 문제를 해결하는 데 도움이 됩니다:

  • 모델 크기 줄이기: 모델이 작을수록 더 적은 저장 공간을 필요로 하며, 이는 Edge AI에 사용되는 것과 같이 메모리 용량이 제한된 디바이스에 매우 중요합니다.
  • 추론 속도 향상: 매개변수가 적을수록 계산이 줄어들어 추론 대기 시간이 줄어들고, 자율 주행 차량과 같은 애플리케이션에 필수적인 실시간 추론 기능이 가능해집니다. Ultralytics HUB 앱은 모바일 배포를 위한 이러한 최적화의 이점을 누릴 수 있습니다.
  • 에너지 소비량 감소: 계산 부하가 감소하면 전력 사용량이 줄어들어 보다 지속 가능한 AI 관행에 기여하고 모바일 디바이스의 배터리 수명을 연장할 수 있습니다.
  • 일반화 개선: 때로는 가지치기를 통해 중복 매개 변수를 제거하여 과적합을 줄이고 보이지 않는 데이터에 대한 모델의 성능을 개선할 수 있습니다.

모델 가지 치기의 유형

모델 가지치기 기술은 다양하지만 일반적으로 제거되는 항목의 세분성에 따라 범주로 나뉩니다:

  • 가중치 가지치기(구조화되지 않음): 특정 중요도 임계값(보통 크기 기반) 미만의 개별 가중치가 제거됩니다(0으로 설정). 이로 인해 스파스 모델이 될 수 있지만 최적의 속도 향상을 위해 스파스 모델을 위한NVIDIA 도구와 같은 특수 하드웨어 또는 소프트웨어가 필요할 수 있습니다.
  • 뉴런 가지치기: 중요하지 않다고 판단되는 전체 뉴런(및 그 연결)을 네트워크에서 제거합니다.
  • 필터/채널 가지치기(구조화): 컨볼루션 신경망(CNN) 의 전체 필터 또는 채널이 제거됩니다. 이 구조화된 가지 치기 접근 방식은 종종 특수 라이브러리 없이도 표준 하드웨어에서 보다 직접적인 속도 향상을 가져옵니다. Neural Magic DeepSparse와 같은 도구는 CPU 가속을 위해 희소성을 활용하며, 종종 가지치기와 결합하기도YOLOv5 Neural Magic 튜토리얼을 사용한YOLOv5 ).

가지치기는 모델이 완전히 학습된 후에 수행하거나 학습 프로세스에 통합할 수 있습니다. 가지치기 후 모델은 일반적으로 미세 조정 (더 작은 아키텍처에 대한 추가 학습)을 거쳐 매개변수 제거 중에 손실된 성능을 복구합니다. 다음과 같은 프레임워크 PyTorch 와 같은 프레임워크는 PyTorch 가지치기 튜토리얼에 나와 있는 것처럼 다양한 가지치기 방법을 구현하는 유틸리티를 제공합니다.

실제 애플리케이션

모델 가지치기는 많은 AI 영역에서 유용합니다:

  1. 엣지 디바이스에서 객체 감지 최적화: 다음과 같은 모델 Ultralytics YOLO객체 감지에 사용되는 모델들은 라즈베리 파이, Google 엣지 TPU 또는 NVIDIA Jetson과 같이 리소스가 제한된 하드웨어에서 효율적으로 실행되도록 잘라낼 수 있습니다. 이를 통해 온디바이스 감시, 트래픽 모니터링(트래픽 관리 최적화 블로그) 또는 로봇 내비게이션(로봇 공학 블로그에 CV 통합)과 같은 애플리케이션을 사용할 수 있습니다.
  2. 대규모 언어 모델(LLM)을 로컬로 배포하기: 프루닝 기술을 사용하면 Transformer 아키텍처 기반 모델과 같은 대규모 모델의 크기를 크게 줄일 수 있으므로 지속적인 클라우드 연결 없이도 자연어 처리(NLP) 와 같은 작업을 위해 사용자 장치(예: 스마트폰)에서 직접 실행할 수 있습니다. 이를 통해 데이터 개인정보 보호가 강화되고 온디바이스 번역이나 지능형 어시스턴트와 같은 애플리케이션의 지연 시간이 단축됩니다.

가지 치기 대 다른 최적화 기술

모델 가지치기는 모델 최적화에 사용되는 여러 기법 중 하나입니다. 모델 가지 치기와는 별개이지만 종종 상호 보완적인 역할을 합니다:

  • 모델 정량화: 모델 가중치 및 활성화의 수치 정밀도를 줄여(예: 32비트 부동 소수점에서 8비트 정수로) 모델 크기를 줄이고 계산 속도를 높이며, 특히 다음과 같은 특수 지원 하드웨어에서 더욱 그렇습니다. TensorRT.
  • 지식 증류: 작은 '학생' 모델을 훈련시켜 미리 훈련된 큰 '교사' 모델의 행동을 모방하도록 합니다. 목표는 큰 모델에서 더 작은 모델로 지식을 이전하는 것입니다.

이러한 기술을 결합할 수 있으며, 예를 들어 모델을 먼저 정리한 다음 효율성을 극대화하기 위해 정량화할 수 있습니다. 최적화된 모델은 종종 다음과 같은 표준 포맷으로 내보내집니다. ONNXUltralytics 내보내기 옵션)와 같은 표준 형식으로 내보내어 폭넓은 배포 호환성을 제공합니다. Ultralytics HUB와 같은 플랫폼은 모델, 데이터 세트(예: COCO)를 관리하고 최적화된 배포를 위한 경로를 간소화할 수 있는 환경을 제공합니다.

모두 보기