ML 커뮤니티 데이는 11월 9일입니다! TensorFlow, JAX에서 업데이트를 우리와 함께, 더 자세히 알아보기

양자화 인식 훈련

TensorFlow 모델 최적화로 유지

양자화에는 훈련 후 양자화와 양자화 인식 훈련의 두 가지 형태가 있습니다. 사용하기 쉬운 훈련 후 양자화로 시작하세요. 그러나 양자화 인식 훈련이 종종 모델 정확성에 더 좋습니다.

이 페이지는 양자화 인식 훈련에 대한 개요를 제공하여 사용 사례에 얼마나 적합한지를 결정하는 데 도움이 됩니다.

개요

양자화 인식 훈련은 추론 시간 양자화를 에뮬레이트하여 다운스트림 도구가 실제로 양자화된 모델을 생성하는 데 사용할 모델을 생성합니다. 양자화된 모델은 낮은 정밀도(예: 32bit 부동 소수점 대신 8bit)를 사용하므로 배포 중에 이점이 있습니다.

양자화로 배포하기

양자화는 모델 압축 및 지연 시간 감소를 통해 개선을 제공합니다. API 기본값을 사용하면 모델 크기가 4배 줄어들며 일반적으로 테스트된 백엔드에서 CPU 지연 시간이 1.5~4배 향상됩니다. EdgeTPU 및 NNAPI와 같은 호환 가능한 머신러닝 가속기에서 지연 시간의 개선을 볼 수 있습니다.

이 기술은 음성, 시각, 텍스트 및 번역 사용 사례의 운영 환경에 사용됩니다. 이 코드는 현재 이들 모델의 하위 집합을 지원합니다.

양자화 및 관련 하드웨어로 실험하기

사용자는 양자화 매개변수(예: 비트 수)와 어느 정도 기본 알고리즘을 구성할 수 있습니다. API 기본값의 이러한 변경으로 인해 지원되는 배포 경로가 없습니다.

이 구성과 관련된 API는 실험적이며 이전 버전과의 호환성이 적용되지 않습니다.

API 호환성

사용자는 다음 API를 사용하여 양자화를 적용할 수 있습니다.

  • 모델 구축: 순차 및 함수형 모델만 있는 tf.keras
  • TensorFlow 버전: tf-nightly용 TF 2.x
    • TF 2.X 패키지가 있는 tf.compat.v1은 지원되지 않습니다.
  • TensorFlow 실행 모드: 즉시 실행

다음 영역에 대한 지원 추가가 로드맵에 나와 있습니다.

  • 모델 구축: Subclassed Model의 제한된 지원에서 미지원까지 명확히 합니다.
  • 분산 훈련: tf.distribute

일반 지원 행렬

다음 영역에서 지원을 받을 수 있습니다.

  • 모델 적용 범위: Conv2D 및 DepthwiseConv2D 레이어를 따르는 경우, 화이트리스트 레이어, BatchNormalization를 사용하는 모델, 제한된 경우 Concat를 사용합니다.
  • 하드웨어 가속: API 기본값은 무엇보다도 EdgeTPU, NNAPI 및 TFLite 백엔드의 가속과 호환됩니다. 로드맵에서 주의 사항을 참조하세요.
  • 양자화로 배포: 현재 텐서별 양자화가 아닌 컨볼루셔널 레이어에 대한 축별 양자화만 지원됩니다.

다음 영역에 대한 지원 추가가 로드맵에 나와 있습니다.

  • 모델 적용 범위: RNN/LSTM 및 일반 Concat 지원을 포함하도록 확장되었습니다.
  • 하드웨어 가속: TFLite 변환기가 전체 정수 모델을 생성할 수 있는지 확인합니다. 자세한 내용은 이 문제를 참조하세요.
  • 양자화 사용 사례 실험:
    • Keras 레이어에 걸쳐 있거나 훈련 단계가 필요한 양자화 알고리즘을 실험합니다.
    • API를 안정화합니다.

결과

도구를 사용한 이미지 분류

모델 비 양자화 Top-1 정확성 8bit 양자화 정확성
MobilenetV1 224 71.03% 71.06%
Resnet v1 50 76.3% 76.1%
MobilenetV2 224 70.77% 70.01%

모델은 Imagenet에서 테스트되었으며 TensorFlow 및 TFLite에서 평가되었습니다.

기술에 대한 이미지 분류

모델 비 양자화 Top-1 정확성 8bit 양자화 정확성
Nasnet-Mobile 74 % 73 %
Resnet-v2 50 75.6 % 75 %

모델은 Imagenet에서 테스트되었으며 TensorFlow 및 TFLite에서 평가되었습니다.

예제

양자화 인식 훈련 예제 외에도 다음 예제를 참조하세요.

  • 양자화를 사용한, 손으로 작성한 MNIST 숫자 분류 작업의 CNN 모델: 코드

유사한 주제에 관한 배경 정보는 효율적인 정수 산술 전용 추론을 위한 신경망의 양자화 및 훈련 논문을 참조하세요. 이 논문에서는 이 도구에서 사용되는 몇 가지 개념을 소개합니다. 구현은 정확히 같지 않으며, 이 도구에 사용되는 추가 개념이 있습니다(예: 축별 양자화).