프루닝을 통해 AI 모델을 최적화하여 복잡성을 줄이고 효율성을 높이며 성능 저하 없이 엣지 디바이스에 더 빠르게 배포하세요.
가지치기는 훈련된 신경망(NN)의 크기와 계산 복잡성을 줄이는 데 사용되는 모델 최적화 기법입니다. 이 프로세스에는 모델에서 중복되거나 덜 중요한 매개변수(가중치) 또는 구조(뉴런, 채널 또는 레이어)를 식별하고 제거하는 작업이 포함됩니다. 목표는 원본과 비슷한 수준의 정확도를 유지하면서 더 작고, 더 빠르고, 더 에너지 효율적인 모델을 만드는 것입니다. 이는 엣지 디바이스와 같이 리소스가 제한된 환경에 복잡한 AI 모델을 배포할 때 특히 중요합니다.
가지치기 과정은 일반적으로 딥러닝 모델이 완전히 학습된 후에 시작됩니다. 이는 많은 대규모 모델이 과도하게 매개변수화되어 있다는 원칙에 따라 작동하는데, 이는 최종 예측에 거의 기여하지 않는 가중치와 뉴런이 많이 포함되어 있다는 의미입니다. 이러한 중요하지 않은 구성 요소를 식별하는 일반적인 방법은 그 크기를 분석하는 것입니다. 값이 0에 가까운 매개변수는 덜 중요한 것으로 간주됩니다. 일단 식별되면 이러한 매개변수는 제거되거나 0으로 설정됩니다. 가지치기 과정을 거친 후, 이제 더 작아진 네트워크는 일반적으로 미세 조정을 거치는데, 여기에는 모델을 몇 차례 더 재학습하는 과정이 포함됩니다. 이 단계는 나머지 매개변수가 아키텍처 변경 사항에 적응하고 가지치기 과정에서 손실되었을 수 있는 성능을 복구하는 데 도움이 됩니다.'딥 압축'과 같은 기초 연구 논문에서 설명한 대로 모델 크기와 성능 간에 원하는 균형을 이루기 위해 이러한 반복적인 가지치기와 미세 조정 과정을 반복할 수 있습니다.
가지치기 기술은 네트워크에서 제거되는 항목에 따라 크게 분류할 수 있습니다:
PyTorch 및 TensorFlow와 같은 주요 머신 러닝 프레임워크는 가지치기를 구현하기 위한 기본 제공 유틸리티와 튜토리얼을 제공합니다.
컴퓨팅 리소스가 제한된 실제 시나리오에서 강력한 AI 모델을 배포하려면 가지치기가 필수적입니다.
가지 치기는 모델 최적화를 위한 여러 기법 중 하나이며 다른 기법과 함께 사용되는 경우가 많습니다. 관련 개념과 구별하는 것이 중요합니다:
이러한 기법은 상호 배타적이지 않습니다. 일반적인 워크플로는 먼저 모델을 가지치기하여 중복 매개 변수를 제거한 다음, 가지치기된 모델에 정량화를 적용하여 효율성을 극대화하는 것입니다. 그런 다음, 다양한 추론 엔진에 광범위하게 배포할 수 있도록 Ultralytics 내보내기 기능을 사용하여 최적화된 모델을 ONNX와 같은 표준 형식으로 내보낼 수 있습니다. Ultralytics HUB와 같은 플랫폼은 교육부터 최적화된 모델 배포에 이르기까지 전체 수명 주기를 관리하는 데 도움을 줄 수 있습니다.