Hugging Face Transformers와 Habana Gaudi를 사용한 BERT 사전 학습
TL;DR
Hugging Face는 AWS의 Habana Gaudi 기반 DL1 인스턴스를 사용하여 BERT-base를 처음부터 사전 학습하는 기술 가이드를 제공했습니다. optimum-habana 라이브러리를 활용함으로써, 이 과정은 동일한 NVIDIA V100 GPU 학습 설정에 비해 비용을 25% 절감합니다.
하드웨어 및 소프트웨어 스택
사전 학습은 8개의 HPU 코어를 갖춘 AWS DL1 인스턴스에서 실행됩니다. 소프트웨어 스택은 다음 Hugging Face 라이브러리를 통합합니다:
- Transformers: 모델 아키텍처의 핵심 라이브러리.
- Optimum Habana: Habana Gaudi 하드웨어 전용으로 설계된 표준 Hugging Face
Trainer를 래핑한GaudiTrainer와GaudiTrainingArguments를 제공합니다. - Datasets: 사전 학습 코퍼스를 로드하고 관리하는 데 사용됩니다.
사전 학습 워크플로우
사전 학습 프로세스는 CPU 집약적인 데이터 준비와 HPU 집약적인 모델 학습으로 나뉩니다.
1. 데이터 준비 및 토크나이징
데이터 준비는 DL1 인스턴스로 이동하기 전에 CPU 최적화 인스턴스(예: AWS c6i.12xlarge)에서 수행됩니다. 워크플로에는 다음이 포함됩니다:
- Dataset Merging: Wikipedia (20220301.en 분할)와 BookCorpus를 하나의 데이터셋으로 결합합니다.
- Tokenizer Training: 어휘 크기 32,000 토큰인 새로운
BertTokenizerFast를 처음부터 학습합니다. - Preprocessing: 텍스트를 토크나이징하고 BERT의 최대 시퀀스 길이인 512 토큰 단위로 묶으며, 이 한도를 초과하는 문서는 잘라냅니다.
2. 마스크드 언어 모델링(MLM)을 통한 모델 학습
BERT는 마스크드 언어 모델링(MLM)을 사용해 사전 학습됩니다. MLM은 모델이 양방향 컨텍스트를 활용해 문장 내 숨겨진 단어를 예측하는 작업입니다.
DL1 인스턴스의 8개 HPU 코어를 활용하기 위해, 학습은 run_mlm.py 스크립트와 optimum-habana의 DistributedRunner(또는 gaudi_spawn.py)를 사용한 분산 데이터 병렬 학습으로 구현됩니다.
성능 및 비용 분석
학습 시간 및 비용
Hugging Face는 전역 배치 크기 256, 100,000 스텝 실행을 벤치마크했으며, 약 12.5시간이 소요되었습니다. 이를 원래 BERT 사전 학습 요구인 1백만 스텝으로 외삽하면:
- 총 예상 시간: 125시간.
- 총 예상 비용: AWS에서 Habana Gaudi를 사용해 약 $1,650.
GPU 기준과 비교
DGX-2(16 NVIDIA V100 GPU)에서 가장 빠른 BERT 사전 학습을 위한 DeepSpeed 기록과 비교하면, Habana Gaudi 접근 방식은 상당한 비용 절감을 제공합니다:
- GPU 비용 추정: AWS p3dn.24xlarge 인스턴스(8x V100 32GB)를 기준으로 하면 유사한 설정에 약 $2,075가 소요됩니다.
- 비용 절감: Habana Gaudi는 V100 기반 설정에 비해 25% 비용을 절감합니다.
특히, 저자는 DeepSpeed 최적화 없이 GPU 학습 비용이 약 $3,000–$4,000까지 증가할 수 있다고 관찰했습니다.
도메인 적응에 대한 시사점
처음부터 사전 학습하면 조직이 모델을 특정 언어 또는 전문 도메인에 맞게 조정할 수 있습니다. 출처에 따르면, 이 과정은 일반 목적 BERT 모델을 사용할 때보다 모델 정확도를 최대 10%까지 향상시킬 수 있습니다.
SUMMARY: Hugging Face는 AWS의 Habana Gaudi DL1 인스턴스를 사용하여 BERT-base를 처음부터 사전 학습하는 방법을 보여주며, NVIDIA V100 GPU 기반 학습에 비해 25% 비용 절감을 달성했습니다.
TITLE: Hugging Face Transformers와 Habana Gaudi를 사용한 BERT 사전 학습