P-stage4 [day12] (9강) 모델최적화기법(3); Quantization 실습

2021. 12. 5. 23:08·과거의 것들/AI Tech boostcamp

수업내용

(9강) 모델최적화기법(3); Quantization 실습

PTQ는 사전에 바꾸는거고, QAT는 일단 float으로 학습시킨 후에 나중에 int로 바꾸는 거다.

저렇게 표기하긴 하지만 library마다 표기 방식이 다르니까 유의하자.

 

구글에서 제공한 flowset. 정말 보기 좋은 듯.

[5]“8-BitInferencewithTensorRT.”2017GTCSanJose,gputechconf2017.smarteventscloud.com/connect/sessionDetail.ww?SESSION_ID=105897.

Full integer quantization은 NVIDIA에서 잘 수행한 예시가 있는데 자세한건 pdf와 위 링크를 보자. 이론과 다른점은 bias가 없어도 성능에 별 영향 없다고 해서 빼고, 최대 최소를 int의 최대 최소가 아니라 threshold를 적용해서 clip하고, threshold를 사용할 경우 그 기준점을 정해야 하는데 float으로 했을 때와 int로 했을 때의 차이를 KL divergence로 계산하여 이 값이 최소가 되도록 하는 구간을 bin을 이용해서 찾는다.. 는 내용이다.

Forward 시엔 해도 되지만 미분불가능한 영역이 backward 할 땐 생기니 기울기가 1일 거라고 복원해서 수행.

결국 QAT가 가장 좋은 듯. 학습을 더 하는거니까. 하지만 Dynamic → PTQ → QAT 순으로 해야할 것들이 많아지고 제약도 많아져서 가끔은 그냥 안돌아가는 것도 있음.

실습 방법은.. pytorch에 있는 요구사항 다 들어주자.

Quantization - PyTorch 1.8.1 documentation

Quantization Operation coverage - PyTorch 1.8.1 documentation

PTQ는 모델 앞뒤로 layer 추가하고 관련 설정도 진행한다.

QAT는 설정만 잘 해주자. 하지만 GPU는 아직 지원안되서 CPU로 학습해야 하는데, 너무 느리니까 fine tuning을 사용하는 데다가 epoch도 3,4 이상 돌면 그에따른 weight를 freeze 해준다.

'과거의 것들 > AI Tech boostcamp' 카테고리의 다른 글

P-stage4 정리  (0) 2021.12.05
P-stage 4 [day13] (10강) Nvidia GPU를 위한 TensorRT, DALI  (0) 2021.12.05
P-stage4 [day11] (8강) 모델 최적화 기법(3) : Quantization 이론  (0) 2021.12.05
P-stage4 [day8]  (0) 2021.12.05
P-stage4 [day7] (7강) 모델최적화기법(2); Tensor Decomposition 실습  (0) 2021.12.05
'과거의 것들/AI Tech boostcamp' 카테고리의 다른 글
  • P-stage4 정리
  • P-stage 4 [day13] (10강) Nvidia GPU를 위한 TensorRT, DALI
  • P-stage4 [day11] (8강) 모델 최적화 기법(3) : Quantization 이론
  • P-stage4 [day8]
용나리
용나리
  • 용나리
    티스토리 블로그
    용나리
  • 전체
    오늘
    어제
    • 분류 전체보기 (333)
      • 과거의 것들 (93)
        • AI Tech boostcamp (92)
      • 생각정리(고찰) (2)
      • 기술 글 (0)
      • 코딩테스트 (4)
        • C++ (0)
        • Python (4)
      • CS (121)
        • 컴퓨터 시스템 (4)
        • 코틀린 인 액션 (13)
        • 김영한 스프링 강의 (104)
      • 일지 남기기용 (11)
        • 운동 (10)
      • 개발 배포 해보기 (1)
      • 프로그래밍 언어 및 기타 (32)
        • Spring Boot (9)
        • Python (9)
        • Kotlin (1)
        • Flutter (2)
        • SQL (4)
        • Docker (3)
        • 공통 (4)
      • os (4)
        • Linux (4)
      • 기술 (17)
        • PyTorch (6)
        • Computer Vision (6)
        • NLP (1)
        • 기타 (4)
      • 제품 후기 (0)
      • 게임 (0)
        • Human Resource Machine (0)
      • 강의 (26)
        • fullstackdeeplearning_sprin.. (9)
        • 부캠 안드로이드 학습정리 (17)
      • 개인 메모 (10)
      • IT 기타 (5)
      • 논문 읽기 연습 (5)
        • Computer Vision (1)
        • NLP (0)
        • 공통 (2)
        • 그냥 메모 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    pip install killed
    파이썬 실행경로
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
용나리
P-stage4 [day12] (9강) 모델최적화기법(3); Quantization 실습
상단으로

티스토리툴바