중요하지 않은 가중치 다듬기

TensorFlow 모델 최적화에서 유지 관리

이 문서는 모델 프루닝에 관한 개요를 제공하여 사용 사례와의 적합성을 결정하는 데 도움을 줍니다.

개요

중요도 기반 가중치 프루닝은 학습 프로세스 과정에서 모델 가중치를 점차적으로 제로화하여 모델 희소성을 달성합니다. 희소 모델은 압축하기 쉬우므로, 지연 시간을 개선하기 위한 추론 중에 0을 건너뛸 수 있습니다.

이 기법은 모델 압축을 통해 향상을 제공합니다. 향후에 이 기법을 위한 프레임워크 지원으로 지연 시간이 개선될 것입니다. 정확도 손실은 최소화하면서 모델 압축이 최대 6배까지 향상되었습니다.

이 기법은 음성 인식 및 텍스트 음성 변환과 같은 다양한 음성 애플리케이션에서 평가되고 있으며 다양한 비전 및 번역 모델에서 실험을 거쳤습니다.

API 호환성 매트릭스

사용자는 다음 API를 사용하여 프루닝을 적용할 수 있습니다.

  • 모델 빌드: 순차 및 함수 모델만 있는 tf.keras
  • TensorFlow 버전: 버전 1.14+ 및 2.x의 경우 TF 1.x
    • TF 2.X 패키지가 있는 tf.compat.v1 및 TF 1.X 패키지가 있는 tf.compat.v2는 지원되지 않습니다.
  • TensorFlow 실행 모드: 지연 실행과 즉시 실행 모두
  • 분산 학습: 지연 실행만 있는 tf.distribute

다음 영역에서 지원을 추가하는 것이 로드맵에 있습니다.

결과

이미지 분류

모델 비희소 최상위 정확도 희소 정확도 희소성
InceptionV3 78.1% 78.0% 50%
76.1%75%
74.6%87.5%
MobilenetV1 22471.04%70.84%50%

모델은 Imagenet에서 테스트되었습니다.

번역

모델 비희소 BLEU 희소 BLEU 희소성
GNMT EN-DE 26.77 26.86 80%
26.5285%
26.1990%
GNMT DE-EN 29.47 29.50 80%
29.2485%
28.8190%

모델은 news-test2013을 개발 세트로, news-test2015를 테스트 세트로 사용하며 WMT16 독일어 및 영어 데이터세트를 사용합니다.

Keras를 사용한 프루닝 가이드 외에도 다음 예를 참고하세요.

  • 프루닝을 사용한 MNIST 필기 입력 숫자 분류 작업에서 CNN 모델 학습: 코드
  • 프루닝을 사용한 IMDB 감정 분류 작업에서 LSTM 학습: 코드

배경에 관한 내용은 프루닝 또는 프루닝하지 않기: 모델 압축을 위한 프루닝의 유효성 살펴보기[자료]를 참고하세요.