[DL] 모델 경량화: Pruning 1️⃣

AIDL경량화
avatar
2025.04.03
·
7 min read

Pruning이란?

노드(뉴런)과 연결(시냅스)로 구성되어 있는 신경망 모델에서 노드 또는 시냅스를 제거하여 모델의 크기와 계산비용을 줄이는 기법

4544

Pruning frameworks

아래의 그림은 Pruning의 과정을 도식화한 것이다. 초기 모델에서 불필요한 파라미터들을 판별하여 파라미터를 제거하는 Pruning을 진행한다. 이때 제거는 원래 가지고 있던 값들을 0으로 대체하는 것을 의미한다. Pruning을 거치고 나면 많은 정보들이 없어진 새로운 모델을 얻게 되는데, 이 모델은 초기 모델과 비교했을 때 성능이 매우 많이 떨어진다. 이는 제거된 파라미터가 제거되지 않은 파라미터와 의존적인 형태를 띄고 있기 때문에 기존의 성능을 발휘하지 못한다. 이를 방지하기 위해서 새로운 모델을 fine-tuning하는 과정을 거치게 된다. 이 과정까지 거친 모델을 최종 모델로 선정을 하여 모델 평가를 진행한다.

4545

Pruning 목적

  • 메모리의 사용을 줄이기 위함

  • 연산 속도를 가속하기 위함

메모리를 차지하는 것 중 대다수는 파라미터인데, 이 파라미터는 저장하는데 굉장히 많은 에너지를 사용한다. 아래의 테이블은 수학적인 연산을 했을 때, 쓰이게 되는 에너지를 나타낸 것이다. 특히 "Memory"가 다른 연산에 비해서 엄청나게 큰 에너지를 소모하는 것을 확인할 수 있다. 여기서 Pruning을 거치게 되면 에너지 소모량을 약 200배 가량 줄일 수 있다.

4546

Pruning working examples

순방향 모델(Feed Forward Network)과 같은 y=a1​x1​+a2​x2​+a3​x3​+a4​x4​의 신경망 모델을 살펴보자.

  • input x=[x1​,x2​,x3​,x4​]

  • weight a=[a1​,a2​,a3​,a4​]

여기서 weight 값을 각각 [18, -10, 0.01, 5]를 갖는다고 가정해보자.
먼저 input 값이 [1, 2, 3, 4]이면 y는 18.03의 값을 얻을 수 있다. 여기서 input의 3번째 값을 -20으로 변경하여 계산하면 y의 값은 17.8로 원래 계산한 값과 큰 차이가 나지 않는 것을 알 수 있다. 반면 input의 4번째 값을 -20으로 변경하였을 때는 y의 값이 101.97로 기존 값과 큰 차이가 나타난다.

4547

따라서 이 예제를 통해서 알 수 있는 것은 세번째 뉴런(x3​) 또는 시냅스(a3​)는 제거(pruning)해도 전체 값이 크게 바뀌지 않는다는 것이다.

Pruning 효과

  • Time: 계산해야 할 파라미터 수가 줄어 모델의 연산량이 감소하고, 연산 속도가 빨라진다.

  • Space: 저장해야 할 파라미터 수가 감소하여 메모리의 사용량이 감소한다.

전체적인 에너지를 절약하고, 동시에 성능을 최대한 유지할 수 있다. 때로는 성능이 개선되는 효과도 볼 수 있다. 이는 Pruning이 기본적으로 Regularization 기법(Dropout)과 유사하기 때문이다. (Dropout은 랜덤하게 일부 wieght(시냅스)들을 끊어주는 기법인데, 이를 통해 overfitting을 방지하고 성능이 개선되는 효과가 있는 것으로 알려져 있다.) Pruning도 유사하게 일부 weight들을 끊는 기법이기 때문에 비슷한 장점을 얻어 좋은 성능을 낼 수 있다.

4548

Pruning을 점진적으로 진행할수록 성능과는 반비례하는 것을 알 수 있다. 그래서 위의 그래프에서 red line과 같이 높은 성능을 유지하면서도 경량화를 최대한 할 수 있는 좋은 기법을 찾는 것을 목표로 한다.

Pruning 결과

아래의 그래프에서 확인할 수 있듯이 적게는 3~4배에서 크게는 12배까지도 Pruning을 통해 메모리를 절약할 수 있다.

4549

어느 정도 Pruning을 하고 나면 모델의 질적 성능 감소 정도가 쓸만하지만, Pruning 비율을 크게 늘리게 되면 가시적인 문제가 발생하게 된다. 95%를 제거하게 되면 어떤 기법을 써도 성능이 떨어지는 것을 앞선 그래프에서 확인할 수 있다.

Lottery Ticket Hypothesis

Neural network model에서 일부분을 잘 가져오면, 원래 모델과 같은 정도의 학습을 하더라도 기존의 네트워크와 동일한 효과를 얻을 수 있다. 즉, 성공적인 pruning이 가능할 것이라는 가설을 Lottery ticket hypothesis라고 한다.

4550

일반적으로 좀 더 복잡한 neural network에는 GPU 자원을 많이 필요로 하는데, 위의 그림과 같이 기존 신경망에서 일부분만 가져와서 학습을 시킨다면 훨씬 적은 GPU를 사용하면서 학습 속도도 빨라질 것이다. 단, 모델의 크기가 줄어들면 학습 양이 감소하기 때문에 성능 또한 떨어지는데, 해당 가설에 의하면 기존 네트워크에서 잘 골라낸다면 기존의 신경망과 같은 성능을 낼 수 있다고 주장한다.


Reference

The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks







- 컬렉션 아티클