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 : https://www.saltlux.ai/portal/api_detail?id=category14
    • 한양대 딥러닝&빅데이터 시스템 연구실의 최적화된 한글 BERT 모델
- URL : https://github.com/mlsys-seo/Koq-BERT

  • 사용 방법
        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.


  • 성능 측정 결과