Loading...
2024. 9. 26. 22:56

hinton의 knowledge distillation이후에 발명된 knowledge distillation들 알아보기

1. introduction 기본적으로 알고있는 hinton의 최초 distillation이 baseline knowledge distillation  teacher를 여러명 두겠다는 ensemble of teacher   triplet network를 이용한 distillation   조교 선생님도 두겠다는 teacher assistant knowledge distillation  logit이 classification에서만 사용된다는 태생적인 한계 때문에 logit 말고도 다른 것에서도 지식을 배울 수 있다면? classification 문제 말고도 분명 다른 문제에서도 지식이라는 것이 있을 것임  그래서 예를 들어 최종 layer 말고 중간 layer에서 knowledge를 뽑는 feature di..

2024. 9. 24. 20:30

knowledge distillation 자세하게

1. background  “model training과 deployment 단계에서 필요한 parameter는 다르다”  애벌레가 번데기가 되려면 다양한 환경에서 에너지와 영양소를 잘 흡수할 수 있어야함 그러나 번데기에서 나비로 어른이 될 때는 이와는 매우 다른 traveling, reproduction에 대한 요구사항이 필요함 이 때는 영양소를 흡수하는데 주력하기보다는 몸도 가볍고 생식도 잘하도록 최적화되어야함 머신러닝도 이와 마찬가지임  training 단계와 deployment 단계에서 필요로하는 요구사항이 완전히 다르다는 것임  training단계에서는 애벌레가 번데기가 되기위해 에너지를 잘 흡수하던것 처럼 주어진 대용량의 데이터로부터 구조와 지식을 잘 흡수해야함   deployment 단계에서..

2024. 9. 5. 20:47

activation function quantization에 대하여

1. introduction weight뿐만 아니라 activation에도 quantization을 적용할 수 있다 심지어 activation과 weight에 서로 다른 quantization을 적용할 수 있다 activation끼리도 서로 다른 quantization 적용이 가능하고 weight끼리도 서로 다른 quantization 적용이 가능하다   위 그림을 보면 weight에 모두 8bit로 quantization을 하고 activation 3개에는 모두 다른 16bit, 8bit, 3bit quantization을 하고 있다  2. problem activation function을 quantization하면 문제점은 계단함수가 되어 모든 구간에서 미분이 안된다는 문제점이 있다 forward ..

2024. 9. 4. 20:28

mixed precision training 자세히 공부하기

1. bit와 byte 1bit는 2가지 경우를 표현하는 정보의 단위로 0 아니면 1을 표현한다 1byte는 8bit와 같으며 몇가지를 표현할 수 있을까?  1bit가 2가지를 표현하므로 $2^{8}$가지를 표현할 수 있다 보통 자주 언급되는 bit가 정수를 어디까지 표현할 수 있을까?? 1bit가 0 아니면 1을 표현하므로 0부터 $2^{1} - 1$까지 표현한다고 말한다 2bit는 $2^{2}$가지를 표현하므로 0,1,2,3의 4가지를 생각하여 0부터 $2^{2} - 1$까지 표현한다고 말한다 비슷하게 1byte=8bit는 0부터 $2^{8} - 1$까지 음이 아닌 정수를 표현할 수 있다 음수를 포함하겠다면? 0부터 255까지 256가지를 절반으로 나눠서 128가지씩 나눠가져서  –128부터 127까..

2024. 8. 29. 22:46

Deep learning compiler란 무엇인가

1. motivation 모든 network는 기본적으로 graph로 나타낼 수 있다. C가 작성만 하면 컴퓨터가 이해하는 것이 아니고 compile 과정을 거쳐서 기계어로 최종 번역되어야 이해할 수 있다. network도 마찬가지로 그냥 GPU에서 돌아가는 것이 아니라 graph lowering 과정을 거쳐야 hardware에서 이해할 수 있다. 이러한 역할을 해주는 것이 deep learning compiler 지금까지 software측면에서 network만 주로 공부했지만 실제로 network가 CPU,GPU 같은 hardware 환경에서 돌아가기까지 생각보다 많은 일이 있다.    high level단의 pytorch 같은 것으로 만든 모델은 edge device인 edge TPU나 Jetson ..

2024. 8. 27. 20:12

hardware-software codesign 개념

1. compression과 acceleration의 차이점 완전히 뜻이 달라보이는 두 단어는 보통 같이 따라다니는 단어라고??? compression같은 경우는 공간적으로 중요한 정보는 남기고 그렇지 않은 것은 제거하는 것으로 software level에서 하는 이야기 acceleration은 hardware level에서 시간적으로 속도 상승의 이야기  2. hardware의 성능이란 hardware는 보통 사람이 원하는 것을 수행해주는 도구의 역할을 함  사람이 무언가를 설계하여 software로 구현을 하면 compiler가 번역하여 그것을 hardware가 수행하여 output을 낸다  설계된 프로그램?에 사람이 input을 집어넣으면 algorithm에 의해 output이 나옴 사람이 이렇게 ..