프루닝(Pruning)
- 학습 후에 불필요한 노드나 가중치등을 제거하는 방식
- 가중치의 크기에 기반한 제거, 어텐션 헤드 제거, 레이어 제거, prunability를 제거하기 위해 학습 중에 정규화 방법등의 방식 있음
- 크게 Structured Pruning과 Unstructured Pruning으로 나뉘어짐
Structured Pruning
- 커다랗게 규격(채널)을 잡아 기준에 맞게 pruning을 진행함
- 규격(채널)단위로 최적화 되기 떄문에, 하드웨어 최적화에 효율적임
- 규적 단위로 Pruning 진행되기 때문에(ex) 해당 규격에서 0의 비율이 많은 규격을 제거), weight가 0인 것들이 남게됌.
Unstructured Pruning
- 구조화 하지 않고 노드 단위로 pruning을 진행하기 때문에, 얽힌 모양이 나오게 됌
- pruning 진행 후에는 weight가 0인 것들이 중점적으로 제거됌