Boostcamp AI Tech

[Boostcamp Day-75] 최적화 소개 및 강의 개요

ju_young 2021. 12. 6. 19:26
728x90

경량화의 목적

  • 모델의 연구와는 별개로 산업에 적용되기 위해서 거쳐야하는 과정
  • 요구조건(하드웨어 종류, latency 제한, 요구 throughput, 성능)들 간의 trade-off를 고려하여 모델 경향화/최적화를 수행
  1. 경량화, 최적화의 대표적인 종류
    • Efficient Architecture Design(+AutoML;Neural Architecture Search(NAS))
    • Network Pruning : 가지치기라고도 한다. 학습된 네트워크를 가지고 있다라고 했을 때 그 네트워크의 중요도가 낮은 파라미터들을 제거해서 사이즈를 줄여보자라는 접근법이다.
    • Knowledge Distillation : 학습된 큰 규모의 teacher network가 있을 때 작은 student network의 teacher network가 가지고 있는 Knowledge를 Distillation하는 것이다.
    • Matrix/Tensor Decomposition : 학습된 network에 있는 tensor를 더 작은 단위의 vector나 tensor들의 곱이나 합으로 표현하는 것이다.
    • Network Quantization : 더 작은 data type으로 mapping하는 것이다.
    • Network Compiling : inference를 더 효과적으로 진행할 수 있도록 network 자체를 compile하는 것을 의미한다.

대회 및 데이터셋

  1. 평가 기준

  1. FLOPs
  • 연산속도를 가장 중요한 기준으로 볼 때 연산횟수(FLOPs)는 속도 결정의 간접적인 factor 중 하나
  • Memory Access Cost와 같은 다은 중요한 요소들 또한 존재
  • 모델의 구조로 오는 병렬성 들은 고려하지 못함
  • 더해서 HW Platform마다 동일 연산 간의 속도 차이도 존재
  1. ShuffleNetv2, 속도에 영향을 주는 요소에 대한 insight
  • FLOPs 이외에 Memory Access Cost 등의 관점에서 속도에 영향을 주는 요소를 추가로 고려
  • 4가지의 가이드라인을 제시
    • 입 출력의 채널 크기가 동일할때 Memory Access Cost를 증가
    • 여러 분기의 path가 나오는 구조는 병렬화에 악영향
    • Element-wise operation은 무시하지 못할 비중을 가짐
  1. TACO(Trash Annotations in Context Dataset)
  • 쓰레기 이미지의 label과 bbox, segmentation이 포함된 open image dataset
  • COCO format으로 제공됨
  • 국내용 데이터
    • Level 2 CV P-stage Object Detection/Segmentation에서 사용한 데이터와 동일
    • 국내에서 발생한 쓰레기에 총 6개의 category로 분류된 데이터(COCO format)
  • Object detection task를 위해 제작된 데이터셋, 하지만 경량화를 적용하는데에 더 많은 시간과 노력이 필요
  • "경량화"라는 취지에 더욱 집중하기 위해 Bounding Box를 Crop하여 Classification 문제로 완화하기로 결정
728x90