용어집

분산 교육

분산 트레이닝으로 AI 트레이닝을 가속화하세요! 복잡한 ML 프로젝트에서 학습 시간을 단축하고, 모델을 확장하고, 리소스를 최적화하는 방법을 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

분산 훈련은 머신 러닝(ML) 에서 모델, 특히 딥 러닝(DL)에서 흔히 사용되는 크고 복잡한 모델을 훈련하는 프로세스의 속도를 크게 높이기 위해 사용되는 기법입니다. 데이터 세트가 방대해지고 트랜스포머나 대규모 컨볼루션 네트워크와 같은 모델의 크기가 커짐에 따라 단일 프로세서(예 CPU 또는 강력한 GPU와 같은 단일 프로세서에서 학습하는 데는 며칠, 몇 주, 심지어 몇 달이라는 비현실적으로 긴 시간이 소요될 수 있습니다. 분산 훈련은 계산 워크로드를 여러 처리 장치로 나누어 이러한 병목 현상을 극복합니다. 이러한 장치(주로 GPU)는 하나의 강력한 컴퓨터 내에 상주하거나 네트워크에 연결된 여러 컴퓨터에 분산되어 클라우드 컴퓨팅 리소스를 활용하는 경우가 많습니다.

분산 교육의 작동 방식

분산 훈련의 기본 원칙은 여러 부분이 동시에 실행될 수 있도록 훈련 작업을 세분화하는 병렬 처리입니다. 하나의 프로세서가 모든 데이터와 계산을 순차적으로 처리하는 대신 작업을 여러 프로세서, 흔히 "작업자"라고 부르는 여러 프로세서가 공유합니다. 이를 달성하기 위한 두 가지 주요 전략이 있습니다:

  • 데이터 병렬 처리: 가장 일반적인 접근 방식입니다. 모델의 전체 사본이 각 워커에 배치됩니다. 학습 데이터 세트는 더 작은 청크로 분할되고 각 워커는 모델의 로컬 복사본을 사용하여 할당된 청크를 처리합니다. 워커는 데이터 하위 집합을 기반으로 모델 가중치에 대한 업데이트를 계산합니다. 그런 다음 이러한 업데이트(그라데이션)는 모든 작업자에서 집계(종종 평균화)되어 마스터 모델을 업데이트하거나 모든 모델 사본을 동기화하는 데 사용됩니다. 이를 통해 더 큰 배치 크기를 효과적으로 처리할 수 있습니다. PyTorch 같은 프레임워크는 분산 데이터 병렬(DDP) 을 제공하며, TensorFlow 데이터 병렬화를 구현하는 다양한 분산 학습 전략을 제공합니다. 작업자 간의 효율적인 커뮤니케이션은 매우 중요하며, 종종 NCCL(NVIDIA Collective Communications Library)과 같은 라이브러리에서 관리합니다.
  • 모델 병렬 처리: 이 전략은 일반적으로 모델이 너무 커서 단일 GPU 메모리에 맞지 않을 때 사용됩니다. 전체 모델을 복제하는 대신 모델의 다른 부분(예: 레이어)을 다른 워커에 배치합니다. 데이터는 포워드 및 백워드 패스 동안 워커를 통해 이러한 부분을 통해 순차적으로 흐릅니다. 이 접근 방식은 데이터 병렬 처리보다 구현하기가 더 복잡하지만 정말 방대한 모델을 훈련하는 데 필요합니다. 일부 프레임워크는 모델 병렬화에 대한TensorFlow 접근 방식과 같이 이를 지원하는 도구를 제공하며, 파이프라인 병렬화와 같은 기법이 자주 사용됩니다.

실제 애플리케이션

분산 학습은 많은 최첨단 인공지능(AI) 애플리케이션에 필수적인 요소입니다:

  • 대규모 언어 모델(LLM) 학습: OpenAI의 GPT-4나 Google Gemini와 같은 모델에는 수십억 또는 수조 개의 파라미터가 있습니다. 이를 훈련하려면 잠재적으로 수천 대의 GPU에 장기간에 걸쳐 계산을 분산시켜야 합니다. 이는 자연어 처리(NLP), 기계 번역, 고급 챗봇 구축과 같은 작업에 필수적입니다.
  • 고급 컴퓨터 비전 모델: 다음과 같은 최첨단 컴퓨터 비전 모델 교육: 다음과 같은 최첨단 컴퓨터 비전 모델 교육 Ultralytics YOLO 와 같은 물체 감지 모델이나 이미지 분할을 위한 복잡한 모델을 ImageNet이나 COCO와 같은 대규모 데이터 세트에서 학습할 때 분산 학습의 이점이 매우 큽니다. 예를 들어, 자율주행 차량용 물체 감지 모델을 훈련하려면 방대한 양의 이미지 데이터가 필요하고 높은 정확도가 요구되므로 합리적인 시간 내에 결과를 얻으려면 여러 GPU에서 분산 훈련이 필수적입니다. 이는 의료 이미지 분석과 같은 전문 분야에도 적용됩니다.
  • 추천 시스템: 넷플릭스나 아마존 같은 기업은 사용자 상호 작용 데이터로 복잡한 모델을 학습시켜 개인화된 추천을 생성합니다. 이러한 데이터의 규모 때문에 분산된 접근 방식이 필요한 경우가 많습니다.
  • 과학 컴퓨팅: 기후 모델링, 물리학, 신약 개발과 같은 분야의 대규모 시뮬레이션은 종종 분산 머신러닝 훈련에 사용되는 것과 유사한 분산 컴퓨팅 원칙을 활용합니다.

분산 교육과 다른 교육 방법 비교

분산 교육을 관련 개념과 구분하는 것이 중요합니다:

  • 연합 학습: 두 가지 모두 여러 디바이스를 포함하지만, 연합 학습은 데이터가 분산되어 있고 데이터 개인정보 보호 문제로 인해 중앙 위치로 이동할 수 없거나 이동해서는 안 되는 시나리오(예: 휴대폰에 저장된 사용자 데이터에 대한 모델 학습)를 위해 설계되었습니다. 연합 학습에서는 모델 업데이트가 디바이스에서 로컬로 계산되어 집계를 위해 중앙 서버로 다시 전송되지만, 원시 데이터는 디바이스를 떠나지 않습니다. 분산 학습은 일반적으로 데이터를 컴퓨팅 클러스터(예: 데이터 센터 또는 클라우드)로 이동하고 분산할 수 있다고 가정합니다. 프레임워크의 예는 TensorFlow Federated를 참조하세요.
  • 단일 디바이스 트레이닝: 전체 훈련 프로세스가 단일 CPU 또는 GPU 실행되는 전통적인 방법입니다. 설정이 더 간단하지만( Ultralytics 빠른 시작 참조), 시간과 메모리 제약으로 인해 대규모 모델이나 데이터 세트에는 사용할 수 없습니다.

도구 및 구현

다양한 도구와 플랫폼을 통해 분산 교육을 구현할 수 있습니다:

  • ML 프레임워크: 다음과 같은 핵심 프레임워크 PyTorchTensorFlow 와 같은 핵심 프레임워크는 분산 트레이닝 API를 기본으로 지원합니다.
  • 전문 라이브러리: Uber에서 개발한 Horovod와 같은 라이브러리는 프레임워크에 구애받지 않는 분산형 딥 러닝 접근 방식을 제공합니다.
  • 클라우드 플랫폼: AWS, Google Cloud, Microsoft Azure와 같은 주요 클라우드 제공업체는 대규모 분산 교육에 최적화된 관리형 ML 서비스 및 인프라를 제공합니다.
  • MLOps 플랫폼: Ultralytics HUB와 같은 플랫폼은 기본 분산 인프라를 처리하는 클라우드 교육 옵션을 포함하여 데이터 세트 관리, 모델 선택, 교육 작업 시작을 위한 인터페이스를 제공하여 프로세스를 간소화합니다. 분산 교육을 효과적으로 관리하기 위해서는 올바른 MLOps 관행이 중요합니다.

분산 학습은 대규모 학습을 실현 가능하고 효율적으로 만들어 오늘날 가장 강력한 AI 모델을 개발할 수 있는 초석 기술입니다.

모두 보기