Pruning/Quant: Post-Training Quantization
ㅁ Pruning/Quant
ㅇ 정의:
모델의 크기를 줄이고 실행 속도를 개선하기 위해 파라미터를 삭제하거나 데이터 표현을 줄이는 기술.
ㅇ 특징:
– Pruning은 모델에서 중요하지 않은 연결을 제거하여 경량화.
– Quantization은 데이터 표현을 낮은 비트로 변환하여 메모리 사용을 감소.
– 모델 성능 저하를 최소화하는 것이 핵심.
ㅇ 적합한 경우:
– 리소스 제한적인 환경에서의 모델 배포.
– 모바일 또는 IoT 디바이스에서의 효율적인 모델 실행.
ㅇ 시험 함정:
– Pruning과 Quantization의 차이를 혼동할 가능성.
– Quantization이 항상 성능 저하를 초래한다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: Pruning은 중요하지 않은 연결을 제거하여 모델 크기를 줄이는 기술이다.
– X: Quantization은 모델의 파라미터를 삭제하는 과정이다.
================================
1. Post-Training Quantization
ㅇ 정의:
학습이 완료된 모델에 대해 별도의 재학습 없이 데이터 표현을 양자화하는 기술.
ㅇ 특징:
– 학습 후 적용 가능하므로 추가 학습 비용이 들지 않음.
– 일반적으로 8-bit 정밀도로 변환.
– 모델의 정확도 손실을 최소화하도록 설계.
ㅇ 적합한 경우:
– 이미 학습된 모델을 경량화해야 할 때.
– 실시간 추론이 중요한 애플리케이션.
ㅇ 시험 함정:
– Post-Training Quantization과 Quantization-Aware Training을 혼동할 가능성.
– 양자화 후 정확도 손실이 항상 크다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: Post-Training Quantization은 학습 후 모델을 양자화하는 기술이다.
– X: Post-Training Quantization은 학습 중에 모델을 양자화하는 과정이다.
ㅁ 추가 학습 내용
Post-Training Quantization(PTQ)에서 자주 사용되는 데이터셋과 알고리즘에 대해 학습하는 것은 시험 준비에 매우 유용합니다. 아래는 학습을 위한 핵심 내용을 정리한 것입니다.
1. **Post-Training Quantization(PTQ)에서 자주 사용되는 데이터셋**
– PTQ는 일반적으로 모델을 훈련한 데이터셋의 일부를 사용하여 수행됩니다. 이 데이터는 모델의 가중치와 활성화 값을 정규화하거나 최적의 범위를 찾는 데 사용됩니다.
– 자주 사용되는 데이터셋 예시:
– 이미지 처리: ImageNet, CIFAR-10, COCO
– 자연어 처리: IMDB, SQuAD
– 음성 인식: LibriSpeech, TIMIT
2. **Post-Training Quantization의 대표적인 알고리즘**
– Dynamic Range Quantization:
– TensorFlow Lite에서 널리 사용되는 기법으로, 정수형 데이터 타입으로 가중치를 변환하지만 활성화 값은 여전히 부동소수점으로 유지합니다.
– 이 방법은 계산 속도를 높이고 모델 크기를 줄이지만, 정확도 손실이 상대적으로 적습니다.
– Full Integer Quantization:
– 가중치와 활성화 값을 모두 정수형으로 변환합니다.
– 이 접근법은 임베디드 장치와 같은 리소스가 제한된 환경에서 유용합니다.
– Weight-Only Quantization:
– 가중치만 양자화하고 활성화 값은 부동소수점으로 유지합니다.
– 모델 크기를 줄이는 데 집중합니다.
3. **TensorFlow Lite Dynamic Range Quantization 사례**
– TensorFlow Lite는 Dynamic Range Quantization을 통해 모델의 가중치를 8비트 정수로 양자화합니다.
– 구현 단계:
1. 사전 훈련된 모델을 준비합니다.
2. TensorFlow Lite Converter를 사용해 양자화를 적용합니다.
3. 변환된 모델을 평가하여 정확도를 확인합니다.
4. **Quantization-Aware Training(QAT)와의 비교**
– PTQ는 모델 훈련 이후에 양자화를 적용하는 반면, QAT는 훈련 과정에서 양자화를 시뮬레이션합니다.
– PTQ는 간단하고 빠르게 적용할 수 있지만, 정확도 손실이 더 클 수 있습니다.
– QAT는 양자화의 영향을 훈련 과정에서 반영하기 때문에 높은 정확도를 유지할 수 있지만, 훈련 시간이 더 오래 걸리고 복잡합니다.
– PTQ는 제한된 데이터셋으로도 적용 가능하지만, QAT는 충분한 데이터와 리소스가 필요합니다.
이 내용을 바탕으로 PTQ와 QAT의 차이점과 각각의 구현 사례를 명확히 이해하면 시험 준비에 큰 도움이 될 것입니다.