다음을 통해 공유


분산 학습

가능한 경우 Azure Databricks는 단일 머신에서 신경망 네트워크를 학습하는 것을 권장합니다. 학습 및 유추를 위한 분산 코드는 통신 오버헤드로 인해 단일 머신 코드에 비해 더 복잡하며 속도가 더 느립니다. 그러나 모델이나 데이터가 너무 커서 단일 머신의 메모리에 맞지 않는 경우 분산 학습 및 유추를 고려해야 합니다. 이러한 워크로드의 경우 Databricks Runtime ML에는 TorchDistributor, DeepSpeed distributor, Ray 패키지가 포함됩니다.

또한 Azure Databricks는 pyspark.ml.connect 모듈을 사용하여 Spark ML 모델에 대한 분산 학습을 제공합니다. pyspark.ml.connect를 사용하여 Databricks Connect에서 Spark ML 모델 학습을 참조하세요.

참고 항목

Databricks는 노드 간 네트워크 성능이 낮기 때문에 NC 시리즈 VM을 사용하여 다중 노드 분산 학습을 실행하는 것을 권장하지 않습니다. 대신 하나의 다중 GPU 노드를 사용하거나, 가속화된 네트워킹을 지원하는 NCasT4_v3-시리즈와 같은 다양한 GPU VM 크기를 사용합니다.

DeepSpeed 배포자

DeepSpeed 배포자는 TorchDistributor를 기반으로 하며 더 높은 컴퓨팅 능력을 필요로 하지만 메모리 제약 조건으로 제한되는 모델을 사용하는 고객에게 권장되는 솔루션입니다. DeepSpeed는 Microsoft에서 개발한 오픈 소스 라이브러리로, 최적화된 메모리 사용량, 통신 오버헤드 감소, 고급 파이프라인 병렬 처리를 제공합니다. DeepSpeed 배포자를 사용한 분산 학습에 대해 자세히 알아봅니다.

TorchDistributor

TorchDistributor는 사용자가 Spark 클러스터에서 PyTorch를 사용하여 분산 학습을 수행하는 데 도움이 되는 PySpark의 오픈 소스 모듈이므로 PyTorch 학습 작업을 Spark 작업으로 시작할 수 있습니다. 내부적으로는 작업자 간의 환경 및 통신 채널을 초기화하고 CLI 명령 torch.distributed.run을 사용하여 작업자 노드 간에 분산 학습을 실행합니다. TorchDistributor를 사용한 분산 학습에 대해 자세히 알아봅니다.

Ray

Ray는 ML 워크플로 및 AI 애플리케이션의 크기를 조정하기 위한 병렬 컴퓨팅 처리를 전문으로 하는 오픈 소스 프레임워크입니다. Azure Databricks의 Ray란?을 참조하세요.