프루닝은 파라미터의 중요도를 판단하여 불필요한 파라미터를 제거하는 경량화 방법.
프루닝의 세밀성(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을 반복하면서 목표한 프루닝 비율에 도달
프루닝 대표 연구
'AI System Semiconductor' 카테고리의 다른 글
6.3. AI 모델 경량화 : Knowledge Distillation, Tensor Decomposition 등 (0) | 2025.01.08 |
---|---|
6.2. AI 모델 경량화 : 양자화(Quatization) (0) | 2025.01.08 |
5.4. 반도체 패키징 공정 기술 (1) | 2025.01.07 |
5.3. 반도체 식각(Etching) 공정 기술 (0) | 2025.01.07 |
5.2. 반도체 박막 공정 기술 (2) | 2025.01.07 |