Hugging Face DeDLOC: 인터넷을 통한 언어 모델의 협업 학습
Hugging Face는 여러 참여자가 인터넷을 통해 컴퓨팅 자원을 결합하여 대규모 언어 모델을 사전 학습할 수 있도록 하는 새로운 협업 분산 학습 방법인 DeDLOC (Distributed Deep Learning in Open Collaborations)을 소개했습니다. 이 접근 방식은 고성능 GPU 슈퍼컴퓨터에 비해 느린 인터넷 연결 속도라는 전통적인 병목 현상을 극복하여, 중앙 집중식의 비싼 하드웨어가 필요하지 않은 더 넓은 ML 커뮤니티가 고품질 모델을 학습할 수 있도록 합니다.
DeDLOC: 인터넷을 통한 분산 학습 가능하게 하기
DeDLOC은 대규모 데이터셋에서 Transformer를 학습시키는 과제를 해결합니다. 이는 일반적으로 개인이나 소규모 조직이 감당하기 어려운 하드웨어 자원을 필요로 합니다. 데이터 병렬 분산 딥러닝은 보통 워커(worker) 간에 데이터를 나누고 그래디언트(gradient)를 평균화하는 과정을 포함하지만, 이 프로세스는 불안정한 연결과 제한된 대역폭으로 인해 인터넷 환경에서는 일반적으로 실패합니다.
결함 허용 그래디언트 누적 (Fault-Tolerant Gradient Accumulation)
자원봉사 기반 컴퓨팅의 불안정성을 처리하기 위해, DeDLOC은 옵티마이저 단계(optimizer step)를 수행하기 전에 모든 참여 기기에서 하나의 매우 큰 배치를 누적합니다. 이 방법은 내장된 결함 허용 기능을 제공합니다:
- Peer Disconnection: 참여자가 연결을 끊으면, 해당 기여분은 현재 누적된 배치 크기에서 단순히 차감되며, 다른 참여자들이 이를 보충합니다.
- Scalability: 더 많은 피어(peer)가 참여할수록 목표 배치 크기에 더 빨리 도달하여 자연스럽게 학습 프로세스의 속도가 빨라집니다.
적응형 평균화 전략 (Adaptive Averaging Strategy)
중앙 서버의 과부하를 방지하고 다양한 하드웨어를 고려하기 위해, DeDLOC은 All-Reduce 프리미티브를 기반으로 하는 적응형 평균화 알고리즘을 사용합니다. 시스템은 각 피어의 인터넷 속도에 따라 그래디언트 벡터를 여러 부분으로 나누어 데이터 전송을 실시간으로 최적화합니다:
- High-speed peers는 그래디언트의 가장 큰 부분을 집계합니다.
- Firewalled peers는 집계를 위해 데이터를 전송하지만 스스로 평균을 계산하지는 않습니다.
이러한 핵심적인 탈중앙화 학습 기술은 Hivemind 라이브러리에 구현되어 있습니다.
사례 연구: sahajBERT 사전 학습
DeDLOC의 효능을 입증하기 위해, 연구원들은 40명의 자원봉사자와 함께 협업 이벤트를 통해 벵골어(Bengali)를 위한 마스크드 언어 모델(masked language model)인 sahajBERT를 사전 학습했습니다.
모델 아키텍처 및 토큰화
연구원들은 ALBERT (A Lite BERT) 아키텍처를 선택했습니다. 가중치 공유 메커니즘 덕분에 파라미터 효율성이 높아 피어 간에 교환되는 데이터 양을 줄일 수 있기 때문입니다. 이 모델은 약 1,800만 개의 학습 가능한 파라미터를 가집니다.
벵골어의 경우, 32k 토큰 어휘집을 가진 Unigram Language Model 방식을 사용하여 커스텀 토큰나이저를 개발했습니다. 전처리 파이프라인은 다음과 같습니다:
- Normalization: NMT 및 NFKC 정규화, 다중 공백 제거, 반복되는 유니코드 문자의 균질화, 그리고 벵골어 모음에는 필요한 악센트(accent)를 특별히 보존함.
- Pretokenization: 문장 부호와 숫자를 분리하고, 단어의 시작을 표시하기 위해 특수 문자(▁)를 사용함.
데이터셋 스트리밍
자원봉사자들이 거대한 로컬 저장 공간을 가질 필요가 없도록, 팀은 데이터셋 스트리밍을 구현했습니다. 이를 통해 참여자들은 전체 코퍼스를 미리 다운로드하는 대신, 학습 과정과 병렬로 벵골어 위키피디아 덤프와 OSCAR 데이터셋에서 학습 예시를 다운로드하고 변환할 수 있습니다.
협업 실행 및 결과
학습 이벤트는 5월 12일부터 5월 21일까지 진행되었으며, 40명의 참여자(벵골어 사용자 자원봉사자 30명과 저자의 조직 소속 10명)가 참여했습니다. 실험에는 600개의 서로 다른 세션과 안정성을 위해 16개의 preemptible T4 클라우드 인스턴스가 사용되었으며, 총 누적 실행 시간은 234일이었습니다.
성능 평가
sahajBERT는 두 가지 다운스트림 태스크: WikiANN의 개체명 인식(NER)과 Soham 기사 데이터셋의 뉴스 카테고리 분류(NCC)에서 평가되었습니다. 약 1,800만 개의 파라미터만 가졌음에도 불구하고, sahajBERT는 훨씬 더 큰 모델들과 대등한 결과를 달성했습니다:
| Model | NER F1 (mean ± std) | NCC Accuracy (mean ± std) |
|---|---|---|
| sahajBERT | 95.45 ± 0.53 | 91.97 ± 0.47 |
| XLM-R-large | 96.48 ± 0.22 | 90.05 ± 0.38 |
| IndicBert | 92.52 ± 0.45 | 74.46 ± 1.91 |
| bnRoBERTa | 82.32 ± 0.67 | 80.94 ± 0.45 |
특히, sahajBERT의 성능은 약 5억 5,900만 개의 파라미터를 가지고 수백 대의 V100 GPU로 학습된 XLM-R-large와 대등한 수준입니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch