AI System Semiconductor

6.3. AI 모델 경량화 : Knowledge Distillation, Tensor Decomposition 등

-운- 2025. 1. 8. 15:26

지식 증류(Knowledge Distillation, KD)

  • 고성능 거대 모델(Teacher)의 지식을 작은 모델(Student)로 증류
  • Teacher 모델의 어떠한 정보를 증류하는지에 따라 방법이 달라짐
  • 응답 기반 지식 증류(logit-based KD):
    • Teacher 모델의 최종 output을 Student 모델이 학습
  • 특정 기반 지식 증류(representation-based KD) :
      • Teacher 모델에서 특징을 추출하는 backbone network의 정보를 student 모델이 학습
      • Teacher 모델의 활성화 맵 분포를 학습
      • 일반적으로 logit-based KD보다 높은 정확도

행렬 분해(Tensor Decomposition)

  • 특정 행렬을 저차원의 행렬로 분해하는 법
  • 저계수 행렬 근사(Low-Rank Approximation, LRA)
    • 딥러닝 모델에서 사용
    • 특이값 분해(SVD)를 이용하며 저차원 가중치 행렬로 분해하는 방법

 

다항식 근사

  • AI모델에서 사용하는 복잡한 함수를 다항식으로 근사하는 방법
  • 복잡한 초월함수들을 낮은 차수의 다항식으로 근사화-> 성능저하 최소화
  • 높은 차수의 다항식일 수록 높은 정확도
  • 테일러 급수, 다항식 보간법을 사용

 

 

희소성 제거방법

  • AI모델을 구성하는 다양한 행렬들은 대부분 0값을 가지는 희소한 행렬임
  • AI모델의 희소한 행렬 구조를 제거해 유의미한 정보만 남도록 하는 방법
  • Pruning, DCT, Auto Encoder 등이 있음

 

Auto Encoder

입력 데이터를 밀집된 저차원 표현으로 압축하여 희소성을 제거하는 머신러닝 모델

입력과 출력이 동일한 결과를 가지도록 함

 

희소행렬 표현법

  • 희소한행렬을 효과적으로 압축하여 저장하는 기법
  • 희소성 제거와는 다르게 행렬 정보 변형 X
  • 0이아닌 요소에 대해 행, 열, 값 정보를 따로 저장하여 변환
  • 대표적으로 Coordinate List(COO)와 Compressed Spase Row(CSR)가 있음

 

COO

  • 희소한 행렬의 0이 아닌 값들을 표시하고 해당 데이터를 따로 저장
  • 행좌표, 열좌표를 각각 row데이터, column 데이터로 저장

CSR

  • 0이아닌 원소를 Indices, Index pointers, data 데이터로 변환
  • 0이아닌 모든 값을 한줄로 변환하여 data 행으로 저장
  • 요소들의 column정보를 한줄로 구성하여 Indices행으로 저장
  • 첫행부터 다음행까지 존재하는 데이터의 개수를 Index Pointer 행으로 저장