데이터 병렬화 (Data Parallelism)

컴퓨터과학·AI
한 줄 정의: 동일한 모델의 복사본을 여러 장치에 두고, 학습 데이터를 나누어 각 장치가 서로 다른 데이터 배치를 동시에 처리하도록 하는 분산 학습 방식.
데이터 병렬화데이터 병렬화 단계 순서: 모델 복사 → 배치 분할, 배치 분할 → 그레이디언트 계산, 그레이디언트 계산 → 모아서 평균, 모아서 평균 → 동시 갱신.모델 복사여러 GPU에 동일하게배치 분할GPU마다 다른 데이터그레이디언트 계산각 GPU 독립모아서 평균올리듀스(all-reduce)동시 갱신모든 복사본12345동기식 기준 — 비동기식은 대기 시간을 줄이는 대신 학습 안정성이 떨어질 수 있다한계모델 전체가 GPU 하나의 메모리에 들어가야 하며, 장치 수가 늘수록 통신 비용이 커진다데이터 병렬화데이터 병렬화 단계 순서: 모델 복사 → 배치 분할, 배치 분할 → 그레이디언트 계산, 그레이디언트 계산 → 모아서 평균, 모아서 평균 → 동시 갱신.모델 복사여러 GPU에 동일하게배치 분할GPU마다 다른 데이터그레이디언트 계산각 GPU 독립모아서 평균올리듀스(all-reduce)동시 갱신모든 복사본12345동기식 기준 — 비동기식은 대기 시간을 줄이는 대신학습 안정성이 떨어질 수 있다한계모델 전체가 GPU 하나의 메모리에 들어가야 하며,장치 수가 늘수록 통신 비용이 커진다

쉽게 풀면

데이터 병렬화는 같은 모델을 여러 GPU에 똑같이 복사해 두고, 학습 데이터만 나누어 각 GPU에 다른 부분을 맡기는 방식이다. 각 GPU는 자신이 맡은 데이터로 독립적으로 계산한 뒤, 그 결과(그레이디언트)를 모아서 평균을 내고 모든 GPU의 모델을 동시에 업데이트한다. 모델 자체는 한 장치에 다 들어갈 만큼 작지만 데이터 처리량을 늘리고 싶을 때 가장 널리 쓰이는 방식이다.

왜 중요한가

딥러닝 모델과 데이터셋의 규모가 커지면서 하나의 장치만으로는 현실적인 시간 안에 학습을 끝내기 어려워졌습니다. 데이터 병렬화는 학습 시간을 장치 수에 비례해 줄일 수 있는 가장 기본적인 방법이기 때문에, 대규모 언어모델·비전 모델 학습을 다루는 논문에서 실험 설정을 설명할 때 거의 빠지지 않고 등장합니다. 또한 모델 병렬화나 파이프라인 병렬화 같은 다른 분산 학습 기법과 결합되어 더 큰 규모의 학습을 가능하게 하는 기반 기술로도 다뤄집니다.

어떤 절차인가

  1. 모델 복제: 같은 모델을 장치(GPU) N개에 똑같이 올립니다. 초기 가중치는 같게 맞춥니다.
  2. 배치 분할: 전역 배치(global batch)를 N등분해 장치마다 다른 조각을 줍니다.
  3. 지역 계산: 각 장치가 자기 조각으로 순전파·역전파를 해 그레이디언트를 구합니다.
  4. 동기화: 장치들의 그레이디언트를 모아 평균을 냅니다(보통 all-reduce 집합 통신).
  5. 동시 갱신: 평균 그레이디언트로 모든 장치가 같은 방식으로 가중치를 갱신해 복제본이 항상 같게 유지됩니다.

이렇게 모든 장치가 한 걸음마다 기다려 맞추는 방식이 동기식이며, 기다림을 줄이려고 장치별로 따로 갱신하는 비동기식은 학습 안정성이 떨어질 수 있습니다. 비동기 방식의 초기 사례로 Dean 등(2012)의 대규모 분산 학습 시스템이 자주 인용됩니다.

언제 쓰고 무엇을 얻나

언제 쓰나: 모델 하나가 장치 메모리에 들어가고, 데이터 처리량을 늘려 학습 시간을 줄이고 싶을 때 가장 먼저 고려하는 방법입니다. 모델이 한 장치에 안 들어가면 모델 병렬화를 쓰거나 결합합니다(분산 학습).

가상의 계산 두 가지. (1) 전역 배치 4096을 GPU 32개에 나누면 장치당 4096 ÷ 32 = 128개입니다. (2) 파라미터 1억 개(fp32 기준 400 MB)인 모델에서 링(ring) all-reduce를 쓰면 장치당 한 걸음에 주고받는 데이터는 약 2 × (N − 1) / N × 400 MB로, N = 32이면 약 775 MB입니다. 장치 수가 늘수록 이 값은 2 × 400 MB에 가까워지고 한 걸음의 계산 시간은 줄어드므로, 통신 비중이 커지면서 속도 향상이 장치 수에 비례하지 않게 됩니다. 확장 효율은 ‘N개 장치의 처리량 ÷ (N × 장치 1개의 처리량)’으로 재며, 예를 들어 1개에서 초당 1,000장, 4개에서 초당 3,200장이면 확장 효율은 80%입니다(가상의 값).

전역 배치가 커지면 학습률 조정이 필요합니다. Goyal 등(2017)은 배치 크기를 k배로 키울 때 학습률도 k배로 키우고 초반에 서서히 올리는 워밍업을 쓰는 방법으로 큰 배치 학습을 안정시켰습니다.

논문에는 이렇게 적는다

논문에서는 이렇게 쓰입니다

실제 논문에서

이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.

예시 문장

아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.

"배치 크기 4096을 32개 GPU에 데이터 병렬 방식으로 분산하여 각 GPU가 128개씩 처리하도록 하였다."

전체 배치를 32개의 GPU에 균등하게 나누어, 각 GPU가 자신의 몫만 계산하고 이후 결과를 합치는 방식으로 학습을 병렬화했다는 뜻이다.

"본 연구에서는 데이터 병렬화와 혼합 정밀도 학습을 함께 적용하여 이미지 분류 모델의 학습 처리량을 크게 향상시켰다."

컴퓨터 비전 분야에서 데이터 병렬화를 다른 최적화 기법과 결합해 학습 속도를 높였다는 서술이다.

"강화학습 환경에서 다수의 워커가 서로 다른 에피소드를 병렬로 수집하고, 데이터 병렬 방식으로 정책 신경망의 그레이디언트를 동기화하였다."

강화학습 분야에서도 여러 워커가 각자 경험 데이터를 모아 병렬로 학습을 진행하는 방식이 데이터 병렬화의 한 형태로 쓰인다는 뜻이다.

조금 더 깊게 보면

데이터 병렬화를 구현할 때는 각 장치에서 계산된 그레이디언트를 어떻게 모으고 평균 낼지가 핵심이며, 이때 흔히 올리듀스(all-reduce) 같은 집합 통신 연산이 사용됩니다.

동기식 방식은 모든 장치가 계산을 마칠 때까지 기다렸다가 한꺼번에 업데이트하는 반면, 비동기식 방식은 대기 시간을 줄이는 대신 학습 안정성이 떨어질 수 있습니다. 장치 수가 늘어날수록 통신 비용이 커지는 문제가 있어, 이를 줄이기 위한 그레이디언트 압축이나 통신-계산 중첩 기법도 함께 논의되는 경우가 많습니다.

주의할 점

데이터 병렬화는 모델 전체가 GPU 하나의 메모리에 들어갈 수 있어야 적용 가능하며, 모델 자체가 너무 크면 모델 병렬화가 필요하다.

헷갈리기 쉬운 용어

용어무엇을 나누나전제
데이터 병렬화데이터(배치)모델 전체가 장치 하나에 들어가야 함
모델 병렬화모델(층·파라미터)모델이 한 장치에 안 들어갈 때
분산 학습—위 방식들을 포함한 상위 개념
경사하강법—각 장치가 계산하는 그레이디언트로 갱신하는 최적화 방법

참고 문헌

  1. Dean, J., Corrado, G. S., Monga, R., Chen, K., Devin, M., Le, Q. V., Mao, M. Z., Ranzato, M., Senior, A., Tucker, P., Yang, K., & Ng, A. Y. (2012). Large scale distributed deep networks. Advances in Neural Information Processing Systems, 25.
  2. Goyal, P., Dollár, P., Girshick, R., Noordhuis, P., Wesolowski, L., Kyrola, A., Tulloch, A., Jia, Y., & He, K. (2017). Accurate, large minibatch SGD: Training ImageNet in 1 hour. arXiv:1706.02677.
  3. Sergeev, A., & Del Balso, M. (2018). Horovod: Fast and easy distributed deep learning in TensorFlow. arXiv:1802.05799.
  4. Li, S., Zhao, Y., Varma, R., Salpekar, O., Noordhuis, P., Li, T., Paszke, A., Smith, J., Vaughan, B., Damania, P., & Chintala, S. (2020). PyTorch Distributed: Experiences on accelerating data parallel training. Proceedings of the VLDB Endowment, 13(12), 3005–3018.

표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.

개념 계통

상위 개념
같은 갈래

분야 전체 개념 지도 보기 →

관련 용어