DistilBERT Humor NLP 모델 양자화

Dec 13 2022
Optimum Intel 및 Intel Neural Compressor로 더 빠른 추론을 위해 FP32에서 INT8로 전환
양자화는 추론 시간을 줄이는 데 도움이 되는 모델 압축 기술입니다. 32비트 부동 소수점(FP32)에서 8비트 정수(INT8) 유형으로 양자화하면 정확도가 약간만 떨어지지만 성능이 향상됩니다.
Unsplash에 있는 Tengyart의 사진

양자화는 추론 시간을 줄이는 데 도움이 되는 모델 압축 기술입니다. 32비트 부동 소수점(FP32)에서 8비트 정수(INT8) 유형으로 양자화하면 정확도가 약간만 떨어지지만 성능이 향상됩니다. 일반적으로 모델 크기는 4~5배 줄어들고 추론 시간은 3배 이상 줄어들 수 있습니다( 출처 ).

먼저 다음을 포함하여 양자화를 위해 몇 가지 더 많은 라이브러리를 가져와야 neural_compressor합니다 optimum.intel.

torch장치를 cpu다음 으로 설정하고 있습니다 .

이제 양자화를 적용할 수 있습니다. 자세히 알아보려면 optimum.intel GitHub 리포지토리 의 텍스트 분류 예 를 살펴보세요. 이전에 학습된 모델을 로드해 보겠습니다.

Intel® Neural Compressor Trainer 클래스 를 사용 IncTrainer하도록 트레이너를 설정했습니다 .

이제 양자화를 실행할 모든 것이 준비되었습니다. 저는 GitHub 리포지토리 quantization.yml 에서 다운로드 한 구성 파일을 사용하고 있습니다. 이 파일의 구성 매개변수를 변경하여 모델이 양자화되는 방식을 조정할 수 있습니다. 여기서는 재훈련이 필요하지 않지만 일반적으로 약간의 정확도를 희생하는 기술인 훈련 후 동적 양자화를 적용하고 있습니다.optimum.intel

그런 다음 다음을 사용하여 양자화를 실행할 수 있습니다 optimizer.fit().

이제 최적화된 모델이 있으므로 기준 모델과 비교할 수 있습니다.

양자화된 모델을 디스크에 저장하고 FP32와 새로 양자화된 INT8 모델을 모두 사용할 수 있습니다.

디스크에 저장된 INT8 모델

FP32 모델로 평가를 실행하면 다음을 얻습니다.

그리고 INT8의 경우:

정확도는 거의 같지만 INT8 모델은 FP32 모델보다 1.5배 빠릅니다. 전체 코드는 여기 GitHub에서 찾을 수 있습니다 .

Intel Neural Compressor를 독립형으로 설치하거나 Intel AI Analytics Toolkit 의 일부로 설치할 수 있습니다 . 인텔의 AI 하드웨어 및 소프트웨어 솔루션에 대해 자세히 알아보려면 여기 를 방문하십시오 .