Yolo 비전 선전
선전
지금 참여하기
용어집

가지치기(Pruning)

가지치기를 통해 AI 모델을 최적화하여 복잡성을 줄이고 효율성을 높이며 성능 저하 없이 에지 장치에 더 빠르게 배포합니다.

가지치기는 머신러닝에서 중요한 기술입니다. 머신러닝에서 중요한 기술입니다. 계산 복잡성을 줄이기 위한 신경망(NN)의 크기와 계산 복잡성을 줄이기 위한 중요한 기술입니다. 매개변수를 제거하여 신경망의 크기와 계산 복잡성을 줄이기 위한 중요한 기술입니다. 나무의 건강한 성장을 위해 죽은 가지를 잘라내는 것과 마찬가지로, 모델 가지치기는 모델 가중치나 연결을 식별하고 모델 가중치 또는 연결을 제거합니다. 시스템 출력에 최소한의 기여를 하는 모델 가중치나 연결을 식별하고 제거합니다. 주요 목표는 높은 정확도를 유지하면서 메모리 사용량과 정확도를 유지하면서 메모리 사용량을 크게 낮추고 추론 지연 시간을 개선하는 것입니다. 이 프로세스는 다음과 같은 정교한 아키텍처를 배포하는 데 필수적입니다. Ultralytics YOLO11와 같은 정교한 아키텍처를 리소스 제약이 있는 디바이스에 스토리지 및 처리 능력이 제한되어 있습니다.

Pruning 작동 방식

이 과정은 일반적으로 사전 학습된 모델에서 시작됩니다. 알고리즘은 네트워크를 분석하여 0에 가깝거나 최종 예측에 미치는 영향이 제한적인 매개변수(종종 값이 0에 가깝거나 최종 예측에 미치는 영향이 제한적인 매개변수를 찾기 위해 네트워크를 분석합니다. 이러한 매개변수는 제거하거나 "제로화"합니다. 연결을 제거하면 일시적으로 성능이 저하될 수 있으므로 모델은 모델은 일반적으로 미세 조정이라는 프로세스를 거치게 됩니다. 몇 시간 동안 재학습을 거쳐 남은 가중치가 가중치를 조정하고 손실된 정확도를 복구하는 과정을 거칩니다.

가지 치기에는 크게 두 가지 범주가 있습니다:

  • 비정형 가지치기: 이 방법은 네트워크의 모든 위치에서 개별 가중치를 제거합니다. 크기에 따라 제거합니다. 매개변수 수를 줄이는 데는 효과적이지만, 불규칙한 메모리 액세스 패턴을 생성하여 특별한 기술이 없는 표준 CPU에서는 특수한 소프트웨어나 하드웨어 지원 없이 표준 CPU에서 속도 향상을 특별한 소프트웨어 또는 하드웨어 지원 없이는 NVIDIA 스파시티 기능.
  • 구조적 가지치기: 이 접근 방식은 뉴런, 채널과 같은 전체 구조적 구성 요소를 제거합니다, 또는 레이어와 같은 전체 구조적 구성 요소를 제거합니다. 컨볼루션 신경망(CNN). 이 방법은 매트릭스 구조를 유지함으로써 표준 하드웨어에 더 친화적이며 일반적으로 다음과 같은 결과를 가져옵니다. 즉각적인 속도 향상 실시간 추론.

가지치기 대 정량화 대 증류하기

가지치기를 다른 모델 최적화 전략과 구별하는 것이 중요합니다. 모델 최적화 전략과 구별하는 것이 중요합니다, 종종 함께 사용되기도 합니다:

  • 모델 정량화: 대신 매개변수를 제거하는 대신 양자화는 가중치의 정밀도를 낮춥니다(예: 32비트 부동 소수점에서 8비트 정수로 변환). 부동 소수점에서 8비트 정수로 변환).
  • 지식 증류: 여기에는 더 큰 '교사' 모델의 행동을 모방하도록 더 작은 '학생' 모델을 훈련하는 것이 포함됩니다. 모델을 직접 수정하지 않고 더 작은 "학생" 모델을 훈련시키는 것입니다.
  • 가지치기: 특히 연결이나 구조를 제거하여 희소성을 유도하는 데 중점을 둡니다.

실제 애플리케이션

가지치기는 다양한 산업 분야에서 엣지 AI를 구현하는 데 중요한 역할을 합니다. 중요한 역할을 합니다:

  1. 자율 로봇 공학: 컴퓨터 비전을 활용한 로봇 내비게이션을 위한 컴퓨터 비전은 시각적 데이터를 로컬에서 처리해야 합니다. 프루닝을 사용하면 복잡한 복잡한 물체 감지 모델을 실행할 수 있습니다. 복잡한 물체 감지 모델을 실행하여 안전과 효율성을 보장합니다. 자세히 알아보기 로봇 공학에 컴퓨터 비전 통합
  2. 모바일 의료 진단: 의료 애플리케이션은 종종 고해상도 스캔을 분석해야 하는 경우가 많습니다. 태블릿이나 스마트폰에서 직접 고해상도 스캔을 분석해야 하는 경우가 많습니다. 데이터 프라이버시를 보호해야 하는 경우가 많습니다. 프루닝된 모델을 사용하면 이러한 디바이스에서 다음과 같은 작업을 수행할 수 있습니다. 민감한 데이터를 클라우드에 업로드하지 않고 종양 탐지와 같은 작업을 수행할 수 있습니다. 방법 보기 의료 분야의 AI는 진단을 혁신하고 있습니다.

실제 사례

동안 Ultralytics YOLO 모델은 기본적으로 고도로 최적화되어 있습니다, 개발자는 표준 PyTorch 유틸리티를 사용하여 가지치기를 실험해 볼 수 있습니다. 다음 예제는 다음과 같은 방법을 보여줍니다. 컴퓨터 비전 모델에서 볼 수 있는 표준 컨볼루션 레이어에 구조화되지 않은 가지치기를 적용하는 방법을 보여줍니다.

import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv

# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)

# Apply L1 unstructured pruning to remove 30% of the lowest magnitude weights
prune.l1_unstructured(layer.conv, name="weight", amount=0.3)

# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")

곧 출시될 YOLO26과 같은 효율적인 아키텍처의 향후 발전은 이러한 최적화 원칙을 통합하여 최적화 원칙을 기본적으로 통합하여 설계상 더 작고, 더 빠르고, 더 정확한 모델을 만드는 것을 목표로 합니다.

주요 개념 및 리소스

  • 스파시티: 행렬이 대부분 0 값을 포함하는 조건으로, 공격적인 가지치기의 직접적인 결과입니다.
  • 복권 가설: 중요한 개념 MIT 연구진이 제안한 개념으로, 밀도가 높은 네트워크에는 독립적으로 학습했을 때 원래의 정확도와 일치할 수 있는 더 작은 하위 네트워크(복권)를 포함하고 있으며, 이 하위 네트워크는 개별적으로 학습되었을 때 원래의 정확도와 일치할 수 있다는 개념입니다.
  • 미세 조정: 미세 조정: 가지치기된 모델을 가지치기된 모델을 재훈련하는 과정으로 남은 가중치를 새롭고 단순화된 구조에 맞게 조정하는 과정입니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기