P-stage4 [day1] 경량화 분야 소개 & 강의 소개
과거의 것들/AI Tech boostcamp

P-stage4 [day1] 경량화 분야 소개 & 강의 소개

강의 내용

(1강) 경량화 분야 소개 & 강의 소개

경량화를 왜 하냐

  • 베터리, 램, 저장공간, 성능
  • latency, throughput. 더 작은 latency와 더 큰 throughput을 만들고 싶다.
  • 새로운 모델이 생길수록 성능은 좋아지지만 배로 뛰는 연산량..

(멘토님의) 경량화 종류 관점

  • 네트워크구조관점
  1. Efficient Architecture Design (+AutoML;Neural Architecture Search(NAS))
  2. Network Pruning
  3. Knowledge Distillation
  4. Matrix/Tensor Decomposition
  • Hardware관점
  1. Network Quantization
  2. Network Compiling
  3. Efficient Architecture Design

처음 설계할 때부터 네트워크 구조를 가볍게 (mobilenet 등)

사람의 직관보다 알아서 짜게 하는게 더 좋을수도 있음(Auto ML).

  1. Network Pruning

별로 영향 없는 weight 없애기

.

 

굳이 Unstruc

tured pruning을 만든 이유는 규칙적으로만 자르면 어떤 HW에서는 성능이 빨라졌는데 어떤곳에서는 오히려 느려지는 현상이 생기니 각 HW에 맞춰서 각자의 방식으로 잘라내자 는 것 같다.

  1. Knowledge Distillation

teacher와 student로 학습시키는거.

  1. Matrix/Tensor Decomposition

어차피 결과가 비슷하다면 나눠서 구하자.

  1. Network Quantization

  1. Network Compiling

그래서 강의 내용은 이렇게..

효율적인 architecture를 설계하자는건 이미 많은 노문들이 나오고 있고 많이 읽어봤을테니(읽어야 하는 듯)

아쉽지만다루지못하는것들

  • 각 분야마다 약간씩 다르게 적용되는 경량화 variation들(NLP, Speech, Object detection, …)
  • 이미 가진 모델을 경량화하는 기법들(Pruning, Knowledge distillation)

한거 정리

코드를 봤는데 생각보다 클래스가 많고 많이 들어가야 한다. 또 "@property" 가 있는데

파이썬에서 @property 에 대해 알아보자.

여기 설명 보자.

협업하고 싶은데 깃허브부터 어떻게 해야 할지 모르겠다. 사람마다 폴더별로 나눠야 할지, 그냥 모든 사람이 하나의 코드를 만들어가는 형태로 해야 할지. 일단 협업 방법

🐙 Github에서 협업하는 방법

코드 외에도 팀 진행을 어떻게 해야 할지 이렇게 고민하는것도 좀 고민이 많이 되는 듯.

시간을 효율적으로 써야 한다. 똑같이 컴퓨터 앞에 앉아서 보내는 시간은 비슷하거나 조금 더 적을 것 같은데 왜 난 얻는게 없는 것인가. 다른거 하면서 효율적으로 못 쓰는 듯. 막 코드 보는건 좋은데.. 아 나도 잘 모르겠다. 일단 미션이나 다 하자.

내일부터 아침에 전에 같이 했던 사람들끼리 모여서 알고리즘 문제 풀고 공유하기로 했다. 7시에 일어나서 여차저차 준비하고 9시 좀 전에 풀기 시작하면 얼추 맞을 것 같다. 이번 한달 동안만 모든걸 다 한다는 느낌으로.