용어집

가지 치기

프루닝을 통해 AI 모델을 최적화하여 복잡성을 줄이고 효율성을 높이며 성능 저하 없이 엣지 디바이스에 더 빠르게 배포하세요.

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

자세히 알아보기

가지치기는 인공지능(AI) 및 머신러닝(ML) 에서 학습된 모델의 크기와 계산 복잡성을 줄이기 위해 사용되는 모델 최적화 기법입니다. 여기에는 모델의 작업에 덜 중요하거나 중복되는 것으로 확인된 신경망(NN) 내의 가중치 또는 연결과 같은 매개변수를 선택적으로 제거하는 것이 포함됩니다. 주요 목표는 더 적은 계산 리소스와 메모리를 필요로 하는 더 작고 빠른 모델을 만드는 것이며, 성능이나 정확도는 크게 저하되지 않는 것이 이상적입니다. 이 프로세스는 특히 기능이 제한된 디바이스에서 효율적인 모델 배포를 위한 핵심적인 부분입니다. '가지치기'는 일반적인 용어이지만,'모델 가지치기'는 구체적으로 이 기술을 ML 모델에 적용하는 것을 말합니다.

가지 치기의 관련성

딥러닝(DL) 모델이 정교한 작업을 처리하기 위해 점점 더 커지고 복잡해지면서 연산 능력, 저장 공간, 에너지에 대한 수요도 크게 증가하고 있습니다. 프루닝은 모델을 더 가볍고 효율적으로 만들어 이 문제를 직접적으로 해결합니다. 이러한 최적화는 스토리지 요구량 감소, 작동 중 에너지 소비 감소, 실시간 추론이 필요한 애플리케이션에 중요한 추론 지연 시간 감소 등 여러 가지 이점을 가져다줍니다. 프루닝은 모바일 디바이스, 임베디드 시스템, 효율성이 주요 관심사인 다양한 에지 AI 시나리오 등 리소스가 제한된 환경에서 모델을 배포할 때 특히 유용합니다. 또한 모델을 단순화하여 과적합을 완화하는 데 도움이 될 수 있습니다.

가지 치기의 응용

프루닝 기술은 다양한 AI 영역에 광범위하게 적용됩니다. 다음은 두 가지 구체적인 예입니다:

  1. 엣지 디바이스에 객체 감지 모델 배포하기: An Ultralytics YOLO객체 감지를 위해 학습된 모델은 너무 크거나 느려서 Raspberry Pi나 Google Edge TPU 같은 저전력 디바이스에 배포하기 어려울 수 있습니다. 가지치기를 통해 모델의 크기와 계산 부하를 줄일 수 있으므로 보안 시스템이나 지역 야생동물 모니터링과 같은 작업을 위해 이러한 하드웨어에서 효과적으로 실행할 수 있습니다. 배포 예시는 라즈베리 파이의 엣지 TPU 튜토리얼 또는 NVIDIA Jetson 가이드와 같은 가이드를 참조하세요.
  2. 자율 주행 시스템을 위한 모델 최적화: 자율주행 차량에서는 이미지 분할이나 센서 융합과 같은 작업을 위한 복잡한 인식 모델이 지연 시간을 최소화하면서 실행되어야 합니다. 프루닝은 이러한 컨볼루션 신경망(CNN)을 최적화하여 엄격한 실시간 처리 요구 사항을 충족하고 안전하고 반응성이 뛰어난 차량 작동을 보장합니다. 다음과 같은 프레임워크 NVIDIA TensorRT 와 같은 프레임워크는 추론 최적화를 위해 가지치기 모델을 지원하는 경우가 많습니다.

유형 및 기술

가지치기 방법은 다양하지만 일반적으로 다음과 같은 주요 범주에 속합니다:

  • 구조화되지 않은 가지치기: 여기에는 낮은 크기 또는 출력에 대한 기여도와 같은 기준에 따라 개별 가중치 또는 뉴런을 제거하는 작업이 포함됩니다. 그 결과 제거된 연결의 불규칙한 패턴을 가진 희박한 모델이 생성됩니다. 이러한 모델은 잠재적으로 높은 압축률을 달성할 수 있지만, 효율적인 실행을 위해 특수 하드웨어 또는 소프트웨어 라이브러리(예: Neural Magic DeepSparse)가 필요할 수 있습니다. Ultralytics Neural Magic 통합을 참조하세요.
  • 구조적 가지치기: 이 기술은 필터, 채널 또는 레이어와 같은 네트워크의 전체 구조적 구성 요소를 제거합니다. 이렇게 하면 규칙적인 구조를 유지하여 가지치기된 모델이 NVIDIA 구조적 희소성 지원과 같은 표준 하드웨어 가속기 및 라이브러리와 더 잘 호환되도록 합니다.

가지치기는 훈련 전(아키텍처 설계에 영향을 미치는), 훈련 과정 중 또는 사전 훈련된 모델에 대한 훈련 후 등 다양한 단계에서 구현할 수 있으며, 종종 손실된 정확도를 회복하기 위해 미세 조정을 수행합니다. 다음과 같은 주요 딥러닝 프레임워크 PyTorchTensorFlow 와 같은 주요 딥 러닝 프레임워크는 다양한 가지치기 전략을 구현할 수 있는 PyTorch 가지치기 튜토리얼과 같은 도구와 튜토리얼을 제공합니다.

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

가지 치기는 모델 최적화에 사용되는 여러 기술 중 하나입니다. 관련 개념과 구별하는 것이 유용합니다:

  • 모델 정량화: 모델의 가중치 및 활성화의 정밀도를 낮추어(예: 32비트 부동 소수점에서 8비트 정수로) 모델 크기를 줄이고 특히 특수 하드웨어에서 계산 속도를 높일 수 있습니다.
  • 지식 증류: 작은 '학생' 모델을 훈련시켜 미리 훈련된 큰 '교사' 모델의 행동을 모방하도록 하여 복잡성을 그대로 물려받지 않고 지식을 전달합니다.

이러한 기법은 상호 배타적이지 않으며, 더 높은 수준의 최적화를 달성하기 위해 가지치기와 함께 자주 사용됩니다. 예를 들어, 모델을 먼저 가지치기를 한 다음 효율성을 극대화하기 위해 정량화할 수 있습니다. 최적화된 모델은 종종 다음과 같은 표준 형식으로 내보낼 수 있습니다. ONNX 와 같은 표준 형식으로 내보낼 수 있으며, 다양한 추론 엔진에 걸쳐 폭넓은 배포 호환성을 위해 Ultralytics 내보내기 기능과 같은 도구를 사용합니다.

요약하자면, 가지치기는 다양한 배포 요구 사항에 적합한 효율적인 AI 모델을 생성하는 강력한 기술로, 컴퓨터 비전(CV) 및 기타 ML 작업의 실제 적용에 중요한 역할을 합니다. Ultralytics 허브와 같은 플랫폼은 클라우드 트레이닝을 포함한 도구와 인프라를 제공하여 다음과 같은 모델의 개발과 최적화를 용이하게 해줍니다. YOLOv8 또는 YOLO11

모두 보기