boost-devs / peer-session

🚀 부스트캠프 AI Tech 1기 U-Stage 4조 피어 세션 자료/질문 모음 (archived)
8 stars 2 forks source link

[DAY 39] Quantization for model compression & Knowledge distillation for network compression #107

Closed changwoomon closed 3 years ago

changwoomon commented 3 years ago

마스터클래스 질문

  1. 교수님께서 언급하신 4가지 방법(prunning, quantization, knowledge distillation, low-rank approximation)중에 교수님께서 생각하시는 가장 쉽고 효율적인 방법은 어떤 것인가요? 물론 어떤 모델을 사용하는지, 어떤 상황인지에 따라 다르겠지만, 마스터님께 인상깊었던 한가지 경험을 듣고 싶습니다.
  2. 강의에서 모델경량화를 할 때 소프트웨어 뿐만 아니라 하드웨어에서의 경량화도 같이 해야 더 좋은 결과를 낼 수 있다고 하셨는데, ML엔지니어의 경우 하드웨어 지식을 어느 정도까지 아는 것이 좋을까요? (ex. 학부 운영체제 과목 정도만 알면 된다 등등)
  3. 파이썬 문법으로 짜여진 것들을 C로 변환해 주는 툴이 많다던데 그럼에도 엣지단에서 ML을 서비스하려면 C에 대한 지식이 많이 필요할까요?
  4. 마스터님 수업을 통해 지식을 대하는 태도를 배울 수 있었습니다. 사실 즐기는 일 (공부 등) 을 하는게 옳은 길인 줄은 알지만 현재 취준생으로서 조급한 마음이 들어 약먹듯 지식을 배우려 하는데, 당장엔 느려도 즐기며 공부하는게 취업에서는 어떤 영향을 줄지 궁금합니다.
  5. 모델의 아키텍쳐마다 잘먹히는 특정 경량화 방법이 정해져있는 경우도 있나요?

🤷‍♀️Further Question🤷‍♀️

(8강) 양자화

2) 이 에러를 보정하려면 어떻게 하면 좋을까?

3) Dynamic quantization을 하는 이유는 무엇일까?

https://leimao.github.io/article/Neural-Networks-Quantization/

https://pytorch.org/docs/stable/quantization.html

https://research.fb.com/wp-content/uploads/2019/12/2.-Quantization.pptx

왜 dynamic quantization은 LSTM, Transformer, MLP에 좋고 static quantization은 CNN에 좋을까요?

4) 이 히스토그램은 어떤 의미가 있을지 적어보자

주황: 원본
파랑: quantization

(9강) 지식 증류

2) Asterisk(*)의 용도는?

3) zero-mean assumption이 참이 아닐 때 Knowledge distillation은 어떤 쓸모가 있을까?

zero-mean assumption 의미

왜 0이 되어야 할까요? 0.1 처럼 작은 수는 안될까요?

4) 하나의 Loss에서 KL과 CE를 섞어쓴 이유는?

KL과 CE의 차이와 사용하는 이유

KL에도 CE가 있는데 왜 KL은 분포를 찾기 위해서 사용하고 CE는 classification을 위해 사용할까요?

CoodingPenguin commented 3 years ago

@Heeseok-Jeong 슬랙에 KL과 CE 차이에 대한 답변이 있었네요! 관련 링크 남깁니다. 잘 설명해 놓은 자료를 발견해 이어서 추가로 링크 달아놓겠습니다!

참고로 CE와 KL은 다음과 같은 관계를 같는다고 합니다.

image

CoodingPenguin commented 3 years ago

@bsm8734 8-4번 질문에서 제가 양자화를 하면 범위가 더 커진다고 말씀드렸는데 다시 보니 아니네요. 죄송합니다ㅠㅠ

양자화를 한다는 것이 어찌보면 trucated하는 것과 비슷하기 때문에 범위가 위와 같이 엄청 넓어지기는 힘듭니다. 코드를 보니 양자화 때문이라기 보다는 dequantize로 인해서 그렇게 된 것 같은데 자세한 이유는 잘 모르겠네요.

Heeseok-Jeong commented 3 years ago

@CoodingPenguin 완전 이해됐습니다! p 분포가 고정일 때는 CE 나 KL 이나 둘 다 loss 로 잡아도 다를게 없는데 distillation loss 의 경우 p 분포가 바뀌기 때문에 KL 을 쓰는군요! 감사합니다 ㅎㅎ