Distributed Training
분산 학습(distributed training)이 어떻게 여러 GPU에 걸쳐 AI 워크로드를 확장하는지 알아보십시오. DDP를 사용하여 Ultralytics YOLO26 학습을 가속화하고 더 빠르고 정확한 결과를 얻는 방법을 학습하십시오.
분산 학습(Distributed training)은 모델 학습 작업량을 여러 프로세서나 머신에 분산시키는 머신러닝의 방법입니다. 이 접근 방식은 단일 디바이스에서 학습하는 데 비현실적으로 오랜 시간이 걸리는 대규모 데이터셋과 복잡한 신경망 아키텍처를 처리하는 데 필수적입니다. 여러 그래픽 처리 장치(GPU) 또는 텐서 처리 장치(TPU)의 결합된 연산 능력을 활용함으로써, 분산 학습은 개발 주기를 크게 가속화하여 연구원과 엔지니어가 더 빠르게 반복 작업을 수행하고 모델에서 더 높은 정확도를 달성할 수 있도록 합니다.
분산 학습의 작동 원리#
분산 학습의 핵심 아이디어는 병렬화입니다. 데이터를 하나의 칩에서 순차적으로 처리하는 대신, 작업을 동시에 처리되는 더 작은 단위로 나눕니다. 이를 달성하기 위한 두 가지 주요 전략이 있습니다:
- 데이터 병렬성: 이는 객체 검출과 같은 작업에서 가장 일반적인 접근 방식입니다. 이 설정에서는 전체 모델의 복사본이 모든 디바이스에 배치됩니다. 전역 학습 데이터는 더 작은 배치로 분할되며, 각 디바이스는 동시에 서로 다른 배치를 처리합니다. 각 단계가 끝난 후, 모델 가중치가 일관되게 유지되도록 모든 디바이스에서 그래디언트(모델 업데이트)가 동기화됩니다.
- 모델 병렬성: 단일 GPU의 메모리에 담기에는 신경망(NN)의 크기가 너무 클 때, 모델 자체를 여러 디바이스로 분할합니다. 모델의 서로 다른 레이어 또는 구성 요소가 각기 다른 칩에 상주하며, 그 사이에 데이터가 흐릅니다. 이는 대규모 파운데이션 모델과 거대 언어 모델(LLM)을 학습시키는 데 종종 필요합니다.
실제 애플리케이션 사례#
분산 학습은 이전에는 연산적으로 불가능했던 문제들을 해결할 수 있게 함으로써 산업을 변화시켰습니다.
- 자율 주행: 안전한 자율주행 차량을 개발하려면 페타바이트 규모의 비디오 및 센서 데이터를 분석해야 합니다. 자동차 엔지니어들은 대규모 분산 클러스터를 사용하여 실시간 시맨틱 세그멘테이션 및 차선 검출을 위한 비전 모델을 학습시킵니다. 이 엄청난 규모 덕분에 자동차용 AI 시스템은 다양한 도로 조건에 안정적으로 대응할 수 있습니다.
- 의료 영상: 헬스케어 부문에서 MRI와 같은 고해상도 3D 스캔을 분석하려면 상당한 메모리와 처리 능력이 필요합니다. 분산 학습을 통해 연구원들은 종양 검출 및 기타 중요한 작업을 위한 고성능 진단 도구를 구축할 수 있습니다. NVIDIA MONAI와 같은 프레임워크를 사용함으로써 병원은 메모리 병목 현상 없이 다양한 데이터셋으로 모델을 학습시킬 수 있으며, 이를 통해 의료용 AI의 결과를 개선할 수 있습니다.
Ultralytics와 함께 분산 학습 활용하기#
ultralytics 라이브러리를 사용하면 DDP(Distributed Data Parallel) 학습을 간단하게 구현할 수 있습니다. 학습 인수에서 디바이스 인덱스를 지정하기만 하면 최첨단 YOLO26 모델의 학습을 여러 GPU에 걸쳐 손쉽게 확장할 수 있습니다.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])관련 개념 및 비교#
머신 러닝 생태계 내에서 유사한 용어와 분산 학습을 구별하여 각자의 역할을 이해하는 것이 도움이 됩니다:
- 연합 학습(Federated Learning)과의 차이: 둘 다 여러 디바이스를 포함하지만 목표는 다릅니다. 분산 학습은 보통 속도를 극대화하기 위해 고성능 클러스터에 데이터를 중앙집중화합니다. 이와 대조적으로 연합 학습은 데이터 프라이버시를 우선시하기 위해 데이터를 사용자 디바이스(예: 스마트폰)에 분산된 상태로 유지하며, 원본 데이터가 소스를 떠나지 않고도 전역 모델을 업데이트합니다.
- 고성능 컴퓨팅(HPC)과의 차이: HPC는 일기예보와 같은 과학적 시뮬레이션을 위한 슈퍼컴퓨팅을 포함하는 광범위한 분야입니다. 분산 학습은 딥러닝의 최적화 알고리즘에 적용된 HPC의 구체적인 응용 분야입니다. 이는 종종 NVIDIA NCCL과 같은 특수 통신 라이브러리에 의존하여 GPU 간의 지연 시간을 최소화합니다.
클라우드 플랫폼을 통한 확장#
분산 학습을 위한 인프라 관리는 복잡할 수 있습니다. 현대의 플랫폼들은 관리형 환경을 제공하여 이를 간소화합니다. 예를 들어, Ultralytics Platform을 사용하면 사용자가 데이터셋을 관리하고 클라우드 환경이나 로컬 클러스터에 배포할 수 있는 학습 실행을 시작할 수 있습니다. 이 통합은 데이터 어노테이션부터 최종 모델 배포에 이르는 워크플로우를 간소화하여, 여러 GPU로의 확장이 최대한 원활하도록 보장합니다. 유사하게, Google Cloud Vertex AI 및 Amazon SageMaker 같은 클라우드 제공업체는 엔터프라이즈 규모로 분산 학습 작업을 실행하기 위한 강력한 인프라를 제공합니다.






