스파크 기반 데이터·모델 병렬 딥러닝 분산 학습 프레임워크
초록
본 논문은 Apache Spark 클러스터 위에서 CPU만을 이용해 데이터 병렬과 모델 병렬을 동시에 지원하는 딥러닝 분산 학습 프레임워크를 제안한다. 새로운 모델 병렬 학습 알고리즘과 그 수렴 증명을 제공하고, 완전 연결 신경망, CNN, RNN, LSTM에 대한 구현 및 실험을 통해 최대 11배의 속도 향상과 좋은 확장성을 입증한다.
상세 분석
이 연구는 딥러닝 모델이 데이터와 파라미터 규모가 커짐에 따라 단일 머신의 메모리와 연산 한계를 초과하는 상황을 해결하고자 한다. 기존의 DistBelief, Project Adam 등은 GPU와 고속 인피니밴드 네트워크를 전제로 설계되었지만, 본 논문은 저가형 CPU 클러스터와 Spark라는 범용 배치 처리 엔진을 활용한다는 점에서 차별성을 가진다. 핵심 기여는 두 가지이다. 첫째, 모델이 메모리에 들어가지 않을 경우 가중치 행렬을 열 방향으로 균등하게 분할하고, 마스터‑슬레이브 구조를 이용해 전방·후방 전파를 단계별로 수행하는 모델 병렬 알고리즘을 설계하였다. 전방 단계에서는 마스터가 현재 레이어의 출력 벡터를 브로드캐스트하고, 각 슬레이브가 자신이 보유한 가중치 조각으로 부분 출력을 계산한 뒤 다시 마스터가 수집한다. 후방 단계에서는 오류 벡터를 동일하게 브로드캐스트하고, 각 슬레이브가 자신의 가중치 조각에 대한 그래디언트를 계산·전송한다. 이 과정은 모든 레이어에 대해 반복되며, 통신 비용을 최소화하기 위해 하이퍼큐브 기반의 로그‑F 메시지 전송 방식을 적용한다. 둘째, 위 알고리즘에 대한 정량적 비용 모델을 제시하고, 지연된 확률적 경사 하강법(SGD)의 기대 손실에 대한 상한을 도출함으로써 수렴성을 이론적으로 증명한다. 실험에서는 5대 노드(총 88코어) CPU 클러스터를 구축하고, 확장된 MNIST(8.1M 샘플)와 셰익스피어 텍스트를 이용해 FCN, CNN, RNN, LSTM을 각각 학습시켰다. 모델 파라미터 수가 1억 개를 초과하면 메모리 부족 문제가 발생하지만, 파라미터를 열 단위로 분할하면 100M 파라미터까지도 분산 학습이 가능하였다. 결과는 데이터 양을 고정하고 파라미터 수를 늘릴수록, 혹은 파라미터 수를 고정하고 워커 파티션 수를 늘릴수록 속도 향상이 관찰되었으며, 특히 CNN에서는 최대 11배, FCN에서는 5배 이상의 가속을 기록했다. 정확도 측면에서도 기존 단일 머신 SGD와 비교해 손실 수렴 및 그래디언트 감소가 동일한 패턴을 보이며, 분산 환경에서도 학습 품질이 유지됨을 확인했다. 전체적으로 이 프레임워크는 GPU 의존성을 배제하고, Spark 기반 데이터 파이프라인과 자연스럽게 통합될 수 있어 실무 적용 가능성이 높다. 다만, 통신 오버헤드가 파티션 수가 과도하게 늘어날 경우 포화 현상을 보이며, 네트워크 대역폭과 레이턴시가 전체 성능에 큰 영향을 미친다는 점은 향후 연구 과제로 남는다.
댓글 및 학술 토론
Loading comments...
의견 남기기