모델 압축하기 - 지식 증류

작성자 김아름 수정일 2022-11-02 09:38

#TwinDoc2.0, #트윈독2.0, #모델, #model, #압축

아티클 관련 제품: TwinDoc2.0

들어가며

  • TwinDoc 의 Model 압축 기능은 Model 의 용량과 파라미터 수를 줄이거나 추론 속도를 향상 시키기 위한 기능으로 기존에 Fine-Tuning 된 Model 을 활용하여 압축을 수행합니다.


  • 현재 TwinDoc 은 5가지 Task (분류, Multi-Lael 분류, 추출 요약, 추상 요약, 개체명 인식) 중 분류 Model 에 대한 Model 압축 기능만 제공합니다.

  • 지식 증류에 대한 설명은 TwinDoc의 Model 경량화 를 참고해주세요.



사전 준비

  • 압축할 분류 Model 에 맞는 Dataset 을 준비합니다.

  • 분류 Model 압축에 사용할 Fine-Tuned Model 을 준비합니다.

  • 분류 Model에 대한 개발은 분류 모델 개발하기 를 참고해주세요.



Model 압축하기


지식 증류는
미리 학습된 Model 의 지식을 실제로 사용하고자 하는 작은 Model 로 전달하는 압축 방법입니다.
레이어 개수, 차원 수를 선택해 간편하게 Model 을 압축하여 Model 용량과 파라미터 수를 줄일 수 있습니다.


모델을 압축합니다.


  1. 분류 모델 상세 화면으로 이동합니다.

  2. 상단의 COMPRESS 탭에서 Create를 클릭합니다.
     


  1. Model : 압축할 모델을 선택합니다.
  2. Title : compress-v1 를 입력합니다.
  3. Compress Type : Knowledge Distillation 를 선택합니다.
  4. Resource : 사용할 GPU를 선택합니다.
  5. Dataset : 모델 개발 시 사용한 Dataset을 선택합니다.


  • 모델의 사이즈가 얼마나 줄어들 지 예측한 정보를 확인할 수 있습니다.


  • 하단의 Advanced 를 클릭하면, 지식 증류 파라미터를 수정할 수 있습니다.



모델 압축 결과를 확인합니다.


  • 모델 상세 화면의 COMPRESS 탭에서 Compress Name 을 클릭합니다.


  • General 탭에서는 세 가지를 확인할 수 있습니다.
  1. Model Profile : 압축 전과 후의 Model 용량과 파라미터를 확인합니다.
  2. Compressed Model Performance : 압축 전 Model 대비 수치를 확인합니다.
  3. Compression status : Compress Method 별 특징적인 그래프를 확인합니다.


  • 평가 데이터에 대한 점수(accuracy or f1_macro)와 평가 소요 시간을 확인합니다.


  • Detail 에서 Metrics Graph를 선택하여 확인합니다.


  • Metrics Graph 탭에서는 Model 용량, 연산량의 변화, 성능의 변화 정보를 그래프로 확인합니다.

Metrics Graph 설명
이름
설명

macs

모델 연산량 (Multiply–accumulate operation)

flops

모델 연산량 (floating point operations)

size

모델 용량 (단위: Mb)

params

모델 파라미터 수

runtime

평가 소요 시간

accuracy

평가 데이터에 대한 accuracy

f1_macro

평가 데이터에 대한 macro f1 score

samples_per_second

평가 데이터 수/평가 소요 시간


마무리

  • fine-tuned 모델을 지식 증류 방법으로 모델 경량화를 해보았습니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300