모델/시스템 최적화: 경량화 기법

ㅁ 경량화 기법

ㅇ 정의:

ㅇ 특징:

ㅇ 적합한 경우:

ㅇ 시험 함정:

ㅇ 시험 대비 “패턴 보기” 예시:

================================

1. Weight Pruning

ㅇ 정의:
불필요하거나 기여도가 낮은 가중치(weight)를 제거하여 모델의 파라미터 수를 줄이는 기법.

ㅇ 특징:
– 모델 구조는 그대로 두고 가중치 값만 0으로 만들어 희소화(sparsity) 달성.
– 메모리 사용량 및 연산량 감소.
– 비구조적(unstructured) 프루닝이 많으며, 하드웨어 최적화 효율은 제한적일 수 있음.

ㅇ 적합한 경우:
– 이미 학습된 대형 모델을 배포 환경에 맞게 경량화할 때.
– 메모리 제약이 있는 임베디드/모바일 환경.

ㅇ 시험 함정:
– Weight Pruning은 반드시 모델 정확도 손실 없이 가능하다고 단정하면 오답.
– 구조 변경 없이도 연산 속도 향상이 항상 보장된다고 하면 X.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Weight Pruning은 중요도가 낮은 가중치를 제거하여 모델을 희소화한다.”
X: “Weight Pruning은 모델 구조를 변경하여 경량화한다.”

================================

2. Structured Sparsity

ㅇ 정의:
가중치나 뉴런을 개별적으로 제거하는 대신, 필터, 채널, 블록 단위로 제거하여 구조적 희소성을 만드는 기법.

ㅇ 특징:
– 하드웨어 가속기(GPU, TPU)에서 병렬 처리 효율이 높음.
– 구조 변경으로 인해 메모리와 속도 모두 개선 가능.
– 프루닝 후 재학습(fine-tuning) 필요성이 큼.

ㅇ 적합한 경우:
– 실시간 추론 속도가 중요한 환경.
– 하드웨어 최적화와 호환성을 고려한 모델 경량화.

ㅇ 시험 함정:
– Structured Sparsity는 항상 정확도 손실이 적다고 하면 X.
– 비구조적 sparsity보다 속도 향상이 반드시 크다고 단정하면 X.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Structured Sparsity는 채널 단위의 제거를 통해 하드웨어 효율성을 높인다.”
X: “Structured Sparsity는 가중치 하나씩 제거하는 방식이다.”

================================

3. Knowledge Distillation

ㅇ 정의:
큰 모델(Teacher)의 예측 출력을 활용하여 작은 모델(Student)을 학습시키는 기법.

ㅇ 특징:
– Teacher 모델의 소프트 타겟(soft target) 사용으로 일반화 성능 향상.
– Student 모델이 Teacher의 지식을 압축하여 성능 대비 경량화.
– 데이터 라벨 외에 Teacher의 출력 분포를 학습.

ㅇ 적합한 경우:
– 대규모 모델을 경량화하면서 정확도를 최대한 유지하고 싶은 경우.
– 라벨 데이터가 제한적일 때 Teacher 모델의 예측을 활용.

ㅇ 시험 함정:
– Knowledge Distillation은 반드시 Teacher와 Student의 구조가 같아야 한다고 하면 X.
– Teacher 모델 없이도 Knowledge Distillation이 가능하다고 하면 X.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Knowledge Distillation은 Teacher 모델의 소프트 타겟을 활용해 Student 모델을 학습시킨다.”
X: “Knowledge Distillation은 Teacher와 Student가 반드시 동일한 구조여야 한다.”

ㅁ 추가 학습 내용

Weight Pruning은 비구조적 프루닝과 구조적 프루닝으로 나뉜다.
비구조적 프루닝은 개별 가중치를 임의로 제거하여 희소성을 높이는 방식으로, 모델 크기를 줄이지만 하드웨어 가속기에서의 연산 효율성 향상은 제한적이다.
구조적 프루닝은 채널, 필터, 블록 단위로 구조적으로 가중치를 제거하여 하드웨어에서 병렬 연산 효율을 높일 수 있다.

Structured Sparsity 기법에는 다음이 있다.
채널 프루닝은 네트워크의 채널 단위로 제거하여 연산량을 줄인다.
필터 프루닝은 합성곱 필터 단위로 제거하여 모델 구조를 단순화한다.
블록 프루닝은 연속된 가중치 블록 단위로 제거하여 하드웨어 친화적인 희소성을 만든다.
각 방식은 연산 효율성, 성능 유지, 구현 난이도 측면에서 장단점이 다르다.

Knowledge Distillation에서는 Softmax 온도 조절이 중요하다. 온도를 높이면 출력 확률 분포가 부드러워져 학생 모델이 교사 모델의 클래스 간 관계를 더 잘 학습할 수 있다.
Response-based Distillation은 교사 모델의 최종 출력 확률을 활용한다.
Feature-based Distillation은 중간 계층의 특성 맵을 전달한다.
Relation-based Distillation은 샘플 간 또는 특성 간의 관계를 학습하도록 한다.
온라인 지식 증류는 학습 중 여러 모델이 서로 지식을 교환하며 동시에 학습하는 방식이다.

세 기법 모두 경량화 후 성능 유지와 회복을 위해 재학습(fine-tuning)이 필요하며, 이때 학습률 조정을 통해 안정적인 수렴을 유도한다.
경량화 성능 평가는 FLOPs(연산량), latency(지연 시간), parameter count(파라미터 수) 등 다양한 지표를 사용하며, 각 지표는 모델 효율성을 다른 관점에서 나타낸다.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*