Azure ML을 사용하여 첫 번째 분산 PyTorch Lightning 모델 훈련
12812 단어 deeplearningazureaipytorch
너무 길어서 읽을 수가 없어요.이 글은 PyTorch Lightning을 어떻게 사용하고 Azure Machine Learning을 사용하여 다중 GPU 모델을 훈련하는지 개술하였다.
만약 당신이 Azure 초보자라면, 아래의 링크를 사용하여 무료 구독을 시작할 수 있습니다.
Create your Azure free account today | Microsoft Azure
PyTorch Lightning이란 무엇입니까?
Pytork Lighting은 고성능 인공지능 연구에 사용되는 경량급 Pytork 포장이다.Lightning의 설계에는 PyTorch 모델의 개발 및 확장성을 단순화하는 4가지 원칙이 있습니다.
PyTorchLightning/pytorch-lightning
또한 PyTorch 조명 볼트는 사전 훈련을 거친 모형을 제공하여 이를 포장하고 조합하여 원형 연구 아이디어를 더욱 빨리 실현할 수 있다.
PyTorchLightning/pytorch-lightning-bolts
Azure 머신러닝이란 무엇입니까?
Azure Machine Learning ( Azure ML )은 클라우드 기반의 서비스로 기계 학습 솔루션을 만들고 관리하는 데 사용된다.그것은 데이터 과학자와 기계 학습 엔지니어가 기존의 데이터 처리와 모델을 이용하여 기술과 구조를 개발하도록 돕는 데 목적을 두고 있다.
Azure Machine Learning은 개발자와 데이터 과학자에게 기계 학습 작업 흐름에 필요한 도구를 제공합니다.
AzureML 모범 사례 보기
입문
1단계 — Azure ML 작업공간 설정
Portal에서 Azure ML 작업공간을 만들거나 Azure CLI 사용
다음과 같이 Azure ML SDK를 사용하여 작업공간에 연결합니다.
from azureml.core import Workspace
ws = Workspace.get(name="myworkspace", subscription\_id='<azure-subscription-id>', resource\_group='myresourcegroup')
2단계 — 다중 GPU 클러스터 설정
Create compute clusters - Azure Machine Learning
from azureml.core.compute import ComputeTarget, AmlCompute
from azureml.core.compute\_target import ComputeTargetException
# Choose a name for your GPU cluster
gpu\_cluster\_name = "gpu cluster"
# Verify that cluster does not exist already
try:
gpu\_cluster = ComputeTarget(workspace=ws, name=gpu\_cluster\_name)
print('Found existing cluster, use it.')
except ComputeTargetException:
compute\_config = AmlCompute.provisioning\_configuration(vm\_size='Standard\_NC12s\_v3',
max\_nodes=2)
gpu\_cluster = ComputeTarget.create(ws, gpu\_cluster\_name, compute\_config)
gpu\_cluster.wait\_for\_completion(show\_output=True)
단계 3 — 환경 구성
그룹에서 PyTorch Lighting 코드를 실행하려면 의존항을 설정해야 합니다. 간단한 yml 파일을 사용해서 실행할 수 있습니다.
channels:
- conda-forge
dependencies:
- python=3.6
- pip
- pip:
- azureml-defaults
- torch
- torchvision
- pytorch-lightning
그리고 AzureML SDK를 사용하여 의존 항목 파일에서 환경을 만들고 원하는 Docker base 이미지에서 실행하도록 설정할 수 있습니다.**from** **azureml.core** **import** Environment
env = Environment.from\_conda\_specification(environment\_name, environment\_file)
_# specify a GPU base image_
env.docker.enabled = **True**
env.docker.base\_image = (
"mcr.microsoft.com/azureml/openmpi3.1.2-cuda10.2-cudnn8-ubuntu18.04"
)
4단계 — 교육 스크립트
실행할 트레이닝 스크립트와 매개변수, 환경 및 클러스터를 지정하기 위해 ScriptRunConfig를 생성합니다.
우리는 PyTorch Lighting examples or our own experiments의 모든 예시 훈련 스크립트를 사용할 수 있다.
5단계 — 실험 실행
단일 노드의 GPU 훈련의 경우 훈련할 GPU 수량(일반적으로 집단 SKU의 GPU 수량에 해당)과 분포식 모드를 지정합니다. 이 예에서 분포식 데이터 병렬(DistributedDataParallel)("ddp")을 지정하고, PyTorch Lightning은 이를 각각 매개 변수인 GPU와 -distributed\U 백엔드로 사용하고자 합니다.자세한 내용은 Multi-GPU training 문서를 참조하십시오.
**import** **os**
**from** **azureml.core** **import** ScriptRunConfig, Experiment
cluster = ws.compute\_targets[cluster\_name]
src = ScriptRunConfig(
source\_directory=source\_dir,
script=script\_name,
arguments=["--max\_epochs", 25, "--gpus", 2, "--distributed\_backend", "ddp"],
compute\_target=cluster,
environment=env,
)
run = Experiment(ws, experiment\_name).submit(src)
run
다음 SDK 명령을 사용하여 실행 로그와 세부 정보를 실시간으로 볼 수 있습니다.**from** **azureml.widgets** **import** RunDetails
RunDetails(run).show()
run.wait\_for\_completion(show\_output= **True** )
다음 단계와 미래 일자리
현재 우리는 이미 첫 번째 Azure ML PyTorch 조명 실험을 세웠다.여기에는 몇 가지 고급 시도 절차가 있는데, 우리는 뒤의 댓글에서 그것들을 더욱 깊이 있게 소개할 것이다.
1. Azure 데이터 저장소에서 데이터 세트 사용자 정의 링크
이 예는 PyTorch 데이터 집합의 MNIST 데이터 집합을 사용했습니다. 만약에 우리가 데이터에 대한 교육을 하려면 Azure ML 데이터 저장과 통합해야 합니다. 이것은 상대적으로 간단합니다. 우리는 후속 글에서 어떻게 이 점을 하는지 보여 드리겠습니다.
Create Azure Machine Learning datasets to access data - Azure Machine Learning
2. AML을 위한 사용자 정의 PyTorch Lightning Logger를 만들고 Hyperdrive를 사용하여 최적화
이 예에서 우리의 모든 모델 로그는 Azure ML 드라이버에 저장됩니다.그러나 Azure ML 실험에는 더 강력한 로그 기록 도구가 있어 PyTorch lightning에 직접 집적할 수 있으며 아주 적은 작업만 하면 된다.다음 글에서 우리는 이 점을 어떻게 하는지, 그리고 우리가 HyperDrive를 통해 무엇을 얻었는지 보여줄 것이다.
3. PyTorch Lighting Horovod 백엔드의 다중 노드 분산 계산
이 예에서 우리는 하나의 노드 집단에 있는 모든 GPU를 어떻게 활용하는지 보여 줍니다. 다음 글에서는 PyTorch Lightings Horovod 백엔드를 집단 사이에 분포하는 방법을 보여 드리겠습니다.
4. 우리의 모델을 생산에 배치
이 예에서 우리는 분포식 PyTorch 조명 모델을 어떻게 훈련하는지 보여주었고 다음 글에서 이 모델을 AKS 서비스로 배치하는 방법을 보여 드리겠습니다.
How and where to deploy models - Azure Machine Learning
만약 당신이 이 글을 좋아한다면, 생산 기계 학습의 9가지 기교에 관한 나의 게시물을 보시고, 언제든지 당신의 친구와 공유하세요!
감사를 드리다
저는 Azure ML팀의 Minna Xiao에 경의를 표하고 그녀가 Azure의 PyTorch Lighting 등 개원 프레임워크를 통해 개발자들에게 더 좋은 경험을 가져다 줄 수 있도록 지원해 주셔서 감사합니다.
저자 정보
역사에 대한 열정이 충만한 인공지능 연구원으로 신기술과 계산의학에 종사한다.마이크로소프트 클라우드 개발자 제창팀의 개원 엔지니어로서 그는 이스라엘 첨단 기술 지역사회와 협력하여 기록, 개원 및 세계 다른 곳과 공유하는 게임 규칙을 바꾸는 기술을 통해 현실 세계의 문제를 해결한다.
Reference
이 문제에 관하여(Azure ML을 사용하여 첫 번째 분산 PyTorch Lightning 모델 훈련), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/azure/training-your-first-distributed-pytorch-lightning-model-with-azure-ml-3o1i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)