software rot
또는 비트 부패 bit rot
라 함 데이터 분포 시프트 (data distribution shift)
문제 발생요청이 도착하는 즉시 예측을 생성, 반환
스트리밍 피처와 배치 피처 모두 사용 가능
동기 synchronous 예측
, on-demand 예측
이라고도 한다.
모델의 예측 생성에 너무 오래 걸릴 수 있다
예측이 주기적 or 트리거될 때마다 예측
SQL DB, in-memory 데이터베이스 등에서 저장하고 필요에 따라 검색
넷플릭스는 4시간마다 모든 사용자에 대한 영화 추천을 생성
요청과 비동기식으로 생성하므로 비동기 asynchronous 예측
이라고도 함
배치 피처만 사용 가능
예측을 많이 생성하되, 결과가 즉시 필요하지 않을 때 용이
예측을 생성할 요청을 미리 알아야하는 문제
low-rank-factorization
고차원 텐서를 저차원 텐서로 대체하는 방법
소형 합성곱 필터 compact convolutional filter
convolusion
를 소형 블록으로 대체SqueezeNet
: (CNN network 의 일종) 3x3 합성곱을 1x1 합성곱으로 대체MobileNet
: K x K x C 인 표준 합성곱을 깊이별 합성곱 depthwise convolusion
과 점별 합성곱 pointwise convolusion
(1 x 1 x C) 로 분해 표준 모델에 비해 작은 모델을 빠른 속도로 개발하는데 사용
특정 모델 유형에만 적용되고, 모델 설계에 아키텍처 지식이 많이 필요해 아직 널리 쓰이진 않음
knowledge distillation
작은 모델이 더 큰 모델 or 모델의 앙상블을 모방하도록 training 하는 방법
ex) DistilBERT : Bert 모델보다 매개변수는 40% 적지만 언어 이해 능력 Natural Language Understanding (NLU)
는 97% 성능, 속도는 60% 더 빠름
교사와 학생 네트워크간 아키텍처가 달라도 동작
단, 교사 네트워크의 가용성에 크게 의존하는 문제
애플리케이션과 모델 아키텍처에도 민감해 널리 사용되진 않음
pruning
분류 작업에 중요하지 않거나 중복된 트리 부분을 제거
신경망 맥락에서 가지치기의 의미
quantization
매개변수를 나타내는데 더 적은 비트를 사용해 모델 크기를 줄이는 방법
fixed point
: 부동 소수점 대신 8비트 정수로만 구성. 메모리 풋프린트 memory footprint
를 줄이고 계산 속도를 향상하는 효과.
memory footprint
: 프로그램이 실행되는 동안 사용하거나 참조하는 메인 메모리의 양비트 수를 줄이기에 나타내는 값의 범위가 줄어드는 단점
training 과정에서 하는 '양자화를 고려한 훈련'quantization aware training
, 혹은 사후 훈련 post-training
에서 수행
quantization aware training
: 낮은 정밀도로 모델 trainingpost-training
: FP32 로 training 된 모델을 추론을 위해 양자화Vectorization
Parallelization
Loop tiling
Operator fusion