AI System Semiconductor

6.1. AI 모델 경량화: 프루닝(Pruning, 가지치기)

-운- 2025. 1. 8. 14:56

 

프루닝은 파라미터의 중요도를 판단하여 불필요한 파라미터를 제거하는 경량화 방법.

 

프루닝의 세밀성(Pruning Granularity)

 

  • 프루닝은 제거하는 파라미터의 세밀성에 따라 분류되며 각각의 장단점을 가진다.
  • Fine-grained 방식으로 갈수록 불필요한 파라미터를 정밀하게 제거할 수 있어 더 높은 압축률을 달성하기 쉬워지지만, 프루닝 패턴이 불규칙해지고 파라미터에 0값이 할당되어 네트워크 구조가 변하지 않는다.
  • Coarse-grained 방식으로 갈수록 세밀성이 낮아져 큰 단위로 파라미터를 제거하게되며ㅡ 일부 중요한 파라미터까지 함께 제거될 수 있으므로 낮은 압축률을 가진다. 하지만 프루닝 패턴이 규칙적이기 때문에 가속으로 이어지기 용이하다.

그림에서 보면 4가지의 프루닝 방식을 볼 수 있다.

  • Weight-level Sparsity(0-D) 
  • Vector-level Sparsity(1-D)
  • Kernel-level Sparsity(2-D)
  • Filter-level Sparsity(3-D)

프루닝의 분류

Unstructured pruning

  • Fine-grained 방식에서 사용
  • 불필요한 파라미터를 직접 네트워크에서 제거하지 않고 해당 파라미터에 0값을 할당하는 방식

Weight pruning

  • 최소단위의 파라미터를(Wight-level)를 제거하는 푸르닝 기법이다.
  • 개별 가중치를 제거하면서도 이를 직접적으로 네트워크에서 삭제하지 않고 0으로 만들어 처리한다.

 

Structured pruning 

  • Coarse-grained 방식에서 사용
  • 불필요한 파라미터를 네트어크에서 직접 제거

Filter pruning

  • 필터단위의 파라미터를 네트워크 구조에서 직접 제거하는 프루닝 기법
  • 필터 단위의 세밀성(3-D)은 convolution 연산에서 출력 특징맵의 수를 줄일 수 있으며 구조화 프루닝을 적용할 수 있게 한다.
  • 프루닝 대상인 필터를 제거하고 제거된 필터에 대응되는 출력 특징맵을 제거한 후 제거된 출력 특징 맵에 대응되는 다음 레이어의 모든 커널을 제거한다.

 

프루닝 스케줄링

네트워크에서 파라미터를 제거하는 프로닝 과정을 어떤 방식으로 적용할지 결정하는 전략

One-shot 프루닝 :

  • 목표하는 프루닝 비율을 한번에 네트워크 적용하는 방식. 
  • 한 번에 불필요한 모든 파라미터를 제거하는 프루닝 과정 이후 fine-tuning을 거쳐 성능을 회복

Iterative 프루닝

  • 목표하는 프루닝 비율에 도달하기 위해 네트워크에서 점진적으로 프루닝을 적용하는 방식
  • 일반적으로 프루닝 후 fine-tunning을 반복하면서 목표한 프루닝 비율에 도달

 

프루닝 대표 연구