용어집

가지 치기

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

가지치기는 훈련된 신경망(NN)의 크기와 계산 복잡성을 줄이는 데 사용되는 모델 최적화 기법입니다. 이 프로세스에는 모델에서 중복되거나 덜 중요한 매개변수(가중치) 또는 구조(뉴런, 채널 또는 레이어)를 식별하고 제거하는 작업이 포함됩니다. 목표는 원본과 비슷한 수준의 정확도를 유지하면서 더 작고, 더 빠르고, 더 에너지 효율적인 모델을 만드는 것입니다. 이는 엣지 디바이스와 같이 리소스가 제한된 환경에 복잡한 AI 모델을 배포할 때 특히 중요합니다.

가지 치기 작동 방식

가지치기 과정은 일반적으로 딥러닝 모델이 완전히 학습된 후에 시작됩니다. 이는 많은 대규모 모델이 과도하게 매개변수화되어 있다는 원칙에 따라 작동하는데, 이는 최종 예측에 거의 기여하지 않는 가중치와 뉴런이 많이 포함되어 있다는 의미입니다. 이러한 중요하지 않은 구성 요소를 식별하는 일반적인 방법은 그 크기를 분석하는 것입니다. 값이 0에 가까운 매개변수는 덜 중요한 것으로 간주됩니다. 일단 식별되면 이러한 매개변수는 제거되거나 0으로 설정됩니다. 가지치기 과정을 거친 후, 이제 더 작아진 네트워크는 일반적으로 미세 조정을 거치는데, 여기에는 모델을 몇 차례 더 재학습하는 과정이 포함됩니다. 이 단계는 나머지 매개변수가 아키텍처 변경 사항에 적응하고 가지치기 과정에서 손실되었을 수 있는 성능을 복구하는 데 도움이 됩니다.'딥 압축'과 같은 기초 연구 논문에서 설명한 대로 모델 크기와 성능 간에 원하는 균형을 이루기 위해 이러한 반복적인 가지치기와 미세 조정 과정을 반복할 수 있습니다.

가지 치기의 유형

가지치기 기술은 네트워크에서 제거되는 항목에 따라 크게 분류할 수 있습니다:

  • 비정형 가지치기(가중치 가지치기): 이 방법은 크기와 같은 특정 기준에 따라 네트워크에서 개별 가중치를 제거합니다. 그 결과 많은 연결이 0으로 처리되는 희소 모델이 생성됩니다. 이 방법을 사용하면 매개변수 수를 크게 줄일 수 있지만, NVIDIA의 스파스 모델용 도구와 같은 특수 소프트웨어 라이브러리가 없는 CPU 또는 GPU와 같은 표준 하드웨어에서는 추론 속도가 항상 빠르지는 않을 수 있습니다.
  • 구조적 가지치기: 이 접근 방식은 뉴런, 채널, 심지어 컨볼루션 신경망(CNN) 내의 전체 레이어와 같은 네트워크의 전체 구조적 구성 요소를 제거합니다. 네트워크의 규칙적인 블록을 제거하기 때문에 표준 하드웨어가 쉽게 활용할 수 있는 방식으로 모델의 크기와 계산 요구 사항을 직접 줄여 예측 가능한 속도 향상으로 이어지는 경우가 많습니다. Neural Magic의 DeepSparse와 같은 도구는 이러한 구조화된 스파스 모델에 대해 CPU에서 추론을 가속화하도록 설계되었습니다.

PyTorchTensorFlow와 같은 주요 머신 러닝 프레임워크는 가지치기를 구현하기 위한 기본 제공 유틸리티와 튜토리얼을 제공합니다.

실제 애플리케이션

컴퓨팅 리소스가 제한된 실제 시나리오에서 강력한 AI 모델을 배포하려면 가지치기가 필수적입니다.

  1. 엣지 디바이스에서 객체 감지 최적화: 실시간 객체 감지를 위해 Ultralytics YOLO와 같은 모델이 사용됩니다. YOLOv8과 같은 모델을 프루닝하여 Raspberry Pi 또는 NVIDIA Jetson과 같은 저전력 엣지 디바이스에 배포할 수 있습니다. 이를 통해 온디바이스 스마트 감시, 교통 관리 최적화, 로봇 공학에 컴퓨터 비전 통합과 같은 애플리케이션을 구현할 수 있습니다.
  2. LLM(대규모 언어 모델)을 로컬에서 실행하기: 프루닝은 Transformer와 같은 아키텍처를 기반으로 하는 대규모 언어 모델(LLM) 의 메모리 공간을 크게 줄일 수 있습니다. 프루닝된 LLM은 텍스트 요약이나 로컬 가상 비서와 같은 자연어 처리(NLP) 작업을 위해 스마트폰이나 노트북에서 직접 실행할 수 있습니다. 이렇게 하면 응답성이 향상되고 사용자 데이터를 기기에 보관하여 데이터 프라이버시를 강화할 수 있으며, 이는 전자 프론티어 재단(EFF)과 같은 조직의 핵심 원칙입니다.

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

가지 치기는 모델 최적화를 위한 여러 기법 중 하나이며 다른 기법과 함께 사용되는 경우가 많습니다. 관련 개념과 구별하는 것이 중요합니다:

  • 모델 정량화: 이 기술은 모델의 가중치 및 활성화의 수치 정밀도를 낮춥니다(예: 32비트 부동 소수점에서 8비트 정수로). 이렇게 하면 모델 크기가 줄어들고 특히 특수 지원 하드웨어에서 계산 속도가 빨라질 수 있습니다. 매개변수를 제거하는 가지치기와 달리 양자화는 매개변수를 압축합니다.
  • 지식 증류: 이 방법에서는 더 작은 '학생' 모델이 미리 훈련된 더 큰 '교사' 모델의 결과를 복제하도록 훈련됩니다. 학습된 지식을 더 간결한 아키텍처로 옮기는 것이 목표인 반면, 가지치기는 기존 아키텍처를 수정하는 것입니다.

이러한 기법은 상호 배타적이지 않습니다. 일반적인 워크플로는 먼저 모델을 가지치기하여 중복 매개 변수를 제거한 다음, 가지치기된 모델에 정량화를 적용하여 효율성을 극대화하는 것입니다. 그런 다음, 다양한 추론 엔진에 광범위하게 배포할 수 있도록 Ultralytics 내보내기 기능을 사용하여 최적화된 모델을 ONNX와 같은 표준 형식으로 내보낼 수 있습니다. Ultralytics HUB와 같은 플랫폼은 교육부터 최적화된 모델 배포에 이르기까지 전체 수명 주기를 관리하는 데 도움을 줄 수 있습니다.

울트라 애널리틱스 커뮤니티 가입

AI의 미래와 함께하세요. 글로벌 혁신가들과 연결, 협업, 성장하기

지금 가입하기
링크가 클립보드에 복사됨