Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Pruning

가지치기는 학습된 신경망에서 중요도가 낮은 가중치, 필터 또는 레이어를 제거해 모델 크기를 줄이고 추론 속도를 높인 다음, 성능을 회복하도록 미세 조정합니다.

가지치기는 학습된 신경망의 출력에 거의 기여하지 않는 가중치, 뉴런, 필터, 어텐션 헤드 또는 전체 레이어를 제거하는 모델 최적화 기법입니다. 그 결과 메모리, 연산량, 에너지를 덜 사용하는 더 작은 모델이 만들어집니다. 딥러닝에서 이 용어는 모델 가지치기와 동의어입니다. 대부분의 네트워크에는 필요 이상으로 많은 파라미터가 있습니다. Han 외 연구진은 학습, 크기가 작은 연결 제거, 나머지 연결 재학습을 통해 ImageNet에서 정확도(정확도) 손실 없이 AlexNet의 파라미터를 6,100만 개에서 670만 개로, VGG-16의 파라미터를 1억 3,800만 개에서 1,030만 개로 줄였습니다. 메모리, 전력, 추론 지연 시간 예산이 제한적인 엣지 AI 배포 전에 가지치기를 수행하는 경우가 많습니다.

가지치기의 작동 방식#

모든 가지치기 방법은 어떤 파라미터를 언제 제거할지 결정합니다. 중요도 점수로는 일반적으로 가중치 크기를 사용합니다. 0에 가까운 가중치는 출력에 미치는 영향이 가장 작기 때문입니다. 그래디언트 기반 점수는 각 파라미터가 손실 함수에 미치는 영향을 더 직접적으로 추정합니다. 한 번에 많은 비율을 제거하면 정확도 손실이 커지는 경향이 있습니다. 반면 반복적 가지치기는 일부만 제거하고, 남은 가중치를 파인튜닝해 성능을 복구한 뒤 크기 또는 속도 목표를 달성할 때까지 이를 반복합니다. 복권 티켓 가설에 따르면 밀집 네트워크에는 원래 초기화 상태로 되돌렸을 때 전체 네트워크와 비슷한 정확도를 달성하도록 독립적으로 학습할 수 있는 희소 서브네트워크가 포함되어 있습니다.

비구조적·구조적·반구조적 가지치기#

비구조적 가지치기는 텐서 내 위치와 관계없이 개별 가중치를 0으로 설정합니다. 동일한 정확도에서 가장 높은 희소성을 얻을 수 있지만, 결과는 불규칙한 희소 행렬이 됩니다. 희소 런타임이 0을 건너뛰지 않는 한 밀집 GPU 및 CPU 커널은 이 행렬을 여전히 전체 비용으로 처리합니다. 구조적 가지치기는 합성곱 신경망 또는 트랜스포머에서 전체 필터, 채널, 어텐션 헤드 또는 레이어를 제거합니다. 따라서 가지치기된 각 레이어는 어떤 하드웨어에서든 더 빠르게 실행되는 더 작은 밀집 레이어가 되지만, 제거한 파라미터당 정확도 손실은 더 큽니다. PyTorch의 가지치기 유틸리티는 기존 레이어에 마스크를 적용해 두 가지 방식을 모두 수행합니다.

import copy

from torch import nn
from torch.nn.utils import prune

# Two copies of one convolution layer with 32 filters of shape 16x3x3
unstructured = nn.Conv2d(16, 32, kernel_size=3)
structured = copy.deepcopy(unstructured)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(unstructured, name="weight", amount=0.5)

# Structured: zero the 50% of whole filters (dim=0) with the smallest L2 norm
prune.ln_structured(structured, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("Unstructured", unstructured), ("Structured", structured)]:
    zeros = (layer.weight == 0).float().mean()
    empty_filters = (layer.weight.flatten(1).abs().sum(dim=1) == 0).sum()
    print(f"{name}: {zeros:.0%} of weights zeroed, {empty_filters}/32 filters entirely empty")

두 레이어 모두 가중치의 50%가 제거되지만, 구조적 레이어만 32개 필터 중 16개가 완전히 비게 됩니다. 이 필터를 물리적으로 제거하면 필터가 16개인 밀집 합성곱 레이어가 됩니다.

반구조적 가지치기는 이 두 방식의 중간에 해당합니다. NVIDIA의 2:4 희소성 패턴은 연속된 가중치 4개 중 2개를 0으로 설정합니다. Ampere 및 이후 GPU의 Sparse Tensor Cores는 이 값을 건너뛰어 동일한 행렬 연산을 절반의 시간에 수행합니다. NVIDIA는 A100에서 TensorRT를 사용해 희소 ResNeXt-101의 엔드투엔드 성능을 최대 20% 향상했다고 측정했습니다. 조밀한 하드웨어에서는 흩어진 0만으로 속도가 빨라지지 않습니다. 미세 조정 없이 prune() 유틸리티로 Ultralytics YOLOv5x를 가지치기하여 전역 비구조적 희소성을 30%로 만들었을 때, COCO mAP50-95는 0.507에서 0.489로 낮아졌고 V100 추론 시간은 이미지당 5.2ms로 그대로였습니다.

실제 적용 사례#

제한된 하드웨어에서 모델을 실행해야 할 때 가지치기의 효과가 가장 큽니다. 채널 가지치기를 적용한 객체 탐지 네트워크는 드론, 스마트 카메라, 휴대폰의 메모리 및 전력 예산에 맞게 작아져 클라우드 연결 없이도 실시간 추론이 가능하며, 데이터 프라이버시를 위해 이미지를 기기 내에 보관합니다. 제조 검사에서는 동일한 압축 기법으로 결함 탐지기를 생산 라인 옆의 저가 엣지 모듈에서 실행할 수 있습니다.

대규모 언어 모델에도 가지치기를 적용합니다. SparseGPT는 재학습 없이 한 번의 작업으로 OPT-175B와 BLOOM-176B를 비구조적 희소성 60%로 가지치기하며, 퍼플렉시티 증가는 무시할 수 있는 수준입니다. NVIDIA의 Minitron 연구에서는 레이어 또는 은닉 차원을 제거해 Llama 3.1 8B를 4B 모델로 가지치기한 후, 원본 모델의 지식 증류를 통해 성능을 복구했습니다.

가지치기는 다른 압축 기법과 함께 사용하는 경우가 많으며, 이 용어는 신경망 밖에서 더 오래된 의미로도 쓰입니다.

  • 모델 양자화: 양자화는 모든 가중치를 유지하면서 숫자 정밀도를 낮춥니다. 예를 들어 32비트 부동소수점을 8비트 정수로 변환합니다. 가지치기된 모델에 추가로 이득을 얻기 위해 양자화를 적용하는 경우가 많습니다.
  • 지식 증류: 증류는 별도의 소형 학생 모델이 대형 교사 모델을 모방하도록 학습하며, 가지치기를 많이 적용한 모델에서 손실된 정확도를 복구하는 데 흔히 사용됩니다.
  • 드롭아웃 레이어: 드롭아웃은 정규화를 위해 한 번의 학습 단계 동안 무작위 활성화를 0으로 설정하며 파라미터 수는 그대로 유지합니다. 가지치기는 파라미터를 영구적으로 제거합니다.
  • 결정 트리 가지치기: 고전적 머신러닝에서 가지치기는 학습된 결정 트리의 가지를 잘라 과적합을 줄이는 기법입니다. scikit-learn의 비용 복잡도 가지치기가 그 예로, ccp_alpha 파라미터가 증가할수록 가장 약한 하위 트리를 제거합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요