Software

한글 BERT 모델의 Kernel fusion 및 모델 압축(양자화) 적용 모델

(주)솔트룩스의 한글 BERT 모델(솔트룩스 배포 링크)에 한양대 딥러닝&빅데이터 시스템 연구실에서 추론 최적화 기법인 Kernel fusion과 16비트 양자화 기법을 적용한 모델을 아래와 같이 배포합니다.

- Kernel Fusion은 Kernel을 GPU에서 실행하는데에 드는 오버헤드를 줄이기 위해 여러 개의 Kernel들을 하나의 Kernel로 합치는 기법으로 NVIDIA의 Faster Transformer를 사용하였습니다.
- 양자화 기법은 학습된 모델의 파라미터 및 중간 계층 뉴런 값들에 대해 32비트 single-precision floating point 대신 16비트 half-precision 으로 저장 및 계산을 적용하는 기법입니다.
 
  • 모델 다운로드 링크
    • 솔트룩스 한글 BERT 모델 
- URL : ....
    • 한양대 딥러닝&빅데이터 시스템 연구실의 최적화된 한글 BERT 모델(16비트 양자화 기법을 모든 Transformer에 적용한 모델)
- URL : ...
    • 한양대 딥러닝&빅데이터 시스템 연구실의 최적화된 한글 BERT 모델(16비트 양자화 기법을 일부 Transformer에 적용한 모델)
      -(준비중)

  • 사용 방법
    1. 한글 BERT 모델에 포함된 README를 통해 실험 환경 확인
    2. Tensorflow에 CUDA kernel fusion custom operation 등록

      - TF_DIR에는 로컬 경로의 tensorflow 패키지 경로를 기입.
      - DSM에는 사용하는 GPU에 해당하는 Compute Capability을 기입. ex) V100(70), RTX 2080 Ti(75)

    3. BERT 모델 실행
      - floatx 는 양자화가 적용된 모델 파라미터를 선택하는 Argument로,  float32와 float16 둘 중 하나 기입.
      - batch_size를 선택할 수 있으며, 마지막 iteration의 입력 데이터 수가 batch size보다 작을 경우 drop.


  • 성능 측정 결과


    솔트룩스 BERT

    딥러닝 시스템 연구실의 최적화된 BERT

    Tesla V100

    Accuracy : 93.115%

    Accuracy : 92.943%

    Time : 55.836초

    Time : 16.206초

    RTX 2080 Ti

    Accuracy : 93.115%

    Accuracy : 92.943%

    Time : 62.356초

    Time : 17.077초