개요
BERT 계열 언어 모델 중 하나인 DistilBERT(논문)로 미세 조정 훈련을 수행할 때 NVIDIA GPU 모델에 따라 훈련에 걸리는 시간이 어떻게 달라지는지 궁금했습니다.
실험에 사용한 모델과 데이터셋은 다음과 같습니다.
- 기본 모델: distilbert-base-multilingual-cased
- 데이터셋: KorQuAD 1.0
미세 조정 훈련은 아래의 작업을 목표로 하였습니다.
- Masked Language Model (MLM) (참고: Fine-tuning a masked language model)
그리고 훈련 소요 시간 비교를 위해 사용한 NVIDIA GPU 모델은 아래 표와 같습니다.
모델 | CUDA 코어 수 | Tensor 코어 수 | 메모리 | 출시 시점 | 실험 머신 유형 |
---|---|---|---|---|---|
RTX 4090 | 16,384개 | 512개 (4세대) | 24GB GDDR6X | 2022년 | 데스크톱 PC |
T4 | 2,560개 | 320개 (2세대) | 16GB GDDR6 | 2018년 | GCP의 VM 인스턴스 |
A100 (40GB 기준) | 6,912개 | 432개 (3세대) | 40GB HBM2 | 2020년 | GCP의 VM 인스턴스 |
RTX 4090은 PC에 장착된 것으로, T4와 A100은 GCP의 VM 인스턴스에 연결된 것으로 사용해서 환경의 차이가 있고, 또한 소요 시간에 영향을 미치는 다른 요인들도 있긴 하지만 GPU 간 소요 시간 차이를 대략적으로 확인하는 데에는 중요한 요소가 아닌 것으로 간주하였습니다.
실험 결과
실험을 위해 사용한 파이썬 스크립트 파일은 여기에 있습니다.
사전 작업:
- 파이썬 패키지 설치:
pip install datasets transformers accelerate
- 스크립트 소스 코드에서 epochs 수정:
epochs = 4.0
model.train() 소요 시간 (1회 테스트):
실험 머신 유형 | GPU | 소요 시간 (단위: 초) |
---|---|---|
데스크톱 PC | RTX 4090 (24GB) | 0:19:33 |
GCP의 VM 인스턴스 | T4 (16GB) | 1:57:01 |
GCP의 VM 인스턴스 | A100 (40GB) | 0:27:09 |
Written with StackEdit.
댓글 없음:
댓글 쓰기