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

이 문서는 모델 프루닝에 관한 개요를 제공하여 사용 사례와의 적합성을 결정하는 데 도움을 줍니다. 코드에 관해 바로 알아보려면 Keras를 사용한 프루닝 가이드 및 API 문서를 참조하세요. Keras API 사용 방법, 프루닝에 관한 심층적인 분석 및 고급 사용 패턴 관련 문서에 관한 자세한 내용은 희소 모델 학습 가이드를 참조하세요.

개요

중요도 기반 가중치 프루닝은 학습 프로세스 과정에서 모델 가중치를 점차적으로 제로화하여 모델 희소성을 달성합니다. 희소 모델은 압축하기 쉬우므로, 지연 시간을 개선하기 위한 추론 중에 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 학습: 코드

  1. 가능하다면 선행 학습된 모델 또는 가중치부터 시작합니다. 이 작업이 가능하지 않으면 프루닝 없이 하나를 만든 후에 시작합니다.
  2. 모델에 복구할 시간을 주기 위해 자주 프루닝하지 마세요. 도구 키트는 기본 빈도를 제공합니다.
  3. 시작 단계 0에서 선행 학습된 모델을 최종 희소성으로 프루닝하는 실험을 실행해 보세요.
  4. 모델이 프루닝될 때 학습률이 너무 높거나 너무 낮지 않도록 합니다. 프루닝 일정이 초매개변수라고 간주하세요.

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