Azure ML을 사용하여 첫 번째 분산 PyTorch Lightning 모델 훈련
12812 단어 deeplearningazureaipytorch
![](https://s1.md5.ltd/image/bd0b8c54cb40f2840469c91a6b81eff9.png)
너무 길어서 읽을 수가 없어요.이 글은 PyTorch Lightning을 어떻게 사용하고 Azure Machine Learning을 사용하여 다중 GPU 모델을 훈련하는지 개술하였다.
만약 당신이 Azure 초보자라면, 아래의 링크를 사용하여 무료 구독을 시작할 수 있습니다.
Create your Azure free account today | Microsoft Azure
PyTorch Lightning이란 무엇입니까?
![](https://s1.md5.ltd/image/b1bde3f6cc3df053f17ca02d7f35d2ff.png)
Pytork Lighting은 고성능 인공지능 연구에 사용되는 경량급 Pytork 포장이다.Lightning의 설계에는 PyTorch 모델의 개발 및 확장성을 단순화하는 4가지 원칙이 있습니다.
PyTorchLightning/pytorch-lightning
또한 PyTorch 조명 볼트는 사전 훈련을 거친 모형을 제공하여 이를 포장하고 조합하여 원형 연구 아이디어를 더욱 빨리 실현할 수 있다.
PyTorchLightning/pytorch-lightning-bolts
Azure 머신러닝이란 무엇입니까?
![](https://s1.md5.ltd/image/a553be46e97180d9a6ee676a8f6be853.png)
Azure Machine Learning ( Azure ML )은 클라우드 기반의 서비스로 기계 학습 솔루션을 만들고 관리하는 데 사용된다.그것은 데이터 과학자와 기계 학습 엔지니어가 기존의 데이터 처리와 모델을 이용하여 기술과 구조를 개발하도록 돕는 데 목적을 두고 있다.
Azure Machine Learning은 개발자와 데이터 과학자에게 기계 학습 작업 흐름에 필요한 도구를 제공합니다.
AzureML 모범 사례 보기
입문
1단계 — Azure ML 작업공간 설정
![](https://s1.md5.ltd/image/d41d8cd98f00b204e9800998ecf8427e.gif)
다음과 같이 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.)