Distributed Training
분산 학습(distributed training)이 어떻게 여러 GPU에 걸쳐 AI 워크로드를 확장하는지 알아보십시오. DDP를 사용하여 Ultralytics YOLO26 학습을 가속화하고 더 빠르고 정확한 결과를 얻는 방법을 학습하십시오.
분산 학습은 모델 학습의 작업 부하를 여러 프로세서나 머신에 분산시키는 머신 러닝 방법입니다. 이 접근 방식은 단일 장치에서 학습하기에는 비현실적인 시간이 소요되는 대규모 데이터셋과 복잡한 신경망 아키텍처를 처리하는 데 필수적입니다. 여러 Graphics Processing Units (GPUs) 또는 TPU(Tensor Processing Units)의 통합된 연산 능력을 활용함으로써 분산 학습은 개발 주기를 크게 가속화하며, 연구원과 엔지니어가 더 빠르게 반복하고 모델의 accuracy를 높일 수 있도록 합니다.
Link to this section분산 학습의 작동 원리#
분산 학습의 핵심 아이디어는 병렬화입니다. 데이터를 하나의 칩에서 순차적으로 처리하는 대신, 작업을 동시에 처리되는 더 작은 단위로 나눕니다. 이를 달성하기 위한 두 가지 주요 전략이 있습니다:
- Data Parallelism: 이는 object detection과 같은 작업에 가장 일반적으로 사용되는 접근 방식입니다. 이 설정에서는 전체 모델의 복사본이 모든 장치에 배치됩니다. 전체 training data는 더 작은 배치로 분할되며, 각 장치는 동시에 서로 다른 배치를 처리합니다. 각 단계 후에는 model weights의 일관성을 유지하기 위해 그래디언트(모델 업데이트)가 모든 장치에 걸쳐 동기화됩니다.
- Model Parallelism: neural network (NN)이 단일 GPU의 메모리에 담기에는 너무 클 경우, 모델 자체가 여러 장치에 걸쳐 분할됩니다. 모델의 서로 다른 레이어나 구성 요소가 서로 다른 칩에 상주하며, 그 사이로 데이터가 흐릅니다. 이는 대규모 foundation models 및 Large Language Models (LLMs)을 학습시키는 데 종종 필요합니다.
Link to this section실제 애플리케이션 사례#
분산 학습은 이전에는 연산적으로 불가능했던 문제들을 해결할 수 있게 함으로써 산업을 변화시켰습니다.
- 자율 주행: 안전한 autonomous vehicles를 개발하려면 방대한 양의 비디오 및 센서 데이터를 분석해야 합니다. 자동차 엔지니어들은 대규모 분산 클러스터를 사용하여 실시간 semantic segmentation과 차선 감지를 위한 비전 모델을 학습시킵니다. 이러한 대규모 확장은 AI in automotive 시스템이 다양한 도로 조건에 안정적으로 반응할 수 있도록 보장합니다.
- 의료 영상: 헬스케어 부문에서 MRI와 같은 고해상도 3D 스캔을 분석하려면 상당한 메모리와 처리 능력이 필요합니다. 분산 학습을 통해 연구원들은 tumor detection 및 기타 중요한 작업을 위한 고성능 진단 도구를 구축할 수 있습니다. NVIDIA MONAI와 같은 프레임워크를 사용하면 병원들은 메모리 병목 현상 없이 다양한 데이터셋으로 모델을 학습시켜 AI in healthcare 성과를 향상할 수 있습니다.
Link to this sectionUltralytics와 함께 분산 학습 활용하기#
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])Link to this section관련 개념 및 비교#
머신 러닝 생태계 내에서 유사한 용어와 분산 학습을 구별하여 각자의 역할을 이해하는 것이 도움이 됩니다:
- 연합 학습(Federated Learning)과의 비교: 두 방식 모두 여러 장치를 포함하지만 목표가 다릅니다. 분산 학습은 일반적으로 속도를 극대화하기 위해 데이터를 고성능 클러스터에 중앙 집중화합니다. 반면, federated learning은 원시 데이터가 소스를 떠나지 않고도 글로벌 모델을 업데이트하여 data privacy를 우선시하도록 사용자 장치(스마트폰 등)에 데이터를 분산된 상태로 유지합니다.
- 고성능 컴퓨팅(HPC)과의 비교: HPC는 기상 예보와 같은 과학적 시뮬레이션을 위한 슈퍼컴퓨팅을 포함하는 광범위한 분야입니다. 분산 학습은 딥러닝의 optimization algorithms에 적용되는 HPC의 특정 응용 분야입니다. 이는 종종 GPU 간의 대기 시간을 최소화하기 위해 NVIDIA NCCL과 같은 특수 통신 라이브러리에 의존합니다.
Link to this section클라우드 플랫폼을 통한 확장#
분산 학습을 위한 인프라 관리 작업은 복잡할 수 있습니다. 최신 플랫폼은 관리형 환경을 제공하여 이를 간소화합니다. 예를 들어, Ultralytics Platform을 사용하면 사용자가 데이터셋을 관리하고 클라우드 환경이나 로컬 클러스터에 배포할 수 있는 학습 실행을 시작할 수 있습니다. 이러한 통합은 data annotation에서 최종 model deployment에 이르는 워크플로우를 간소화하여 여러 GPU로의 확장이 가능한 한 매끄럽게 이루어지도록 합니다. 마찬가지로 Google Cloud Vertex AI 및 Amazon SageMaker와 같은 클라우드 공급자들은 기업 규모의 분산 학습 작업을 실행하기 위한 강력한 인프라를 제공합니다.






