PyTorch Lighting을 사용하여 네이티브 Azure ML 로깅 구성

Azure와 Lightning의 결합으로 더욱 강력한 로그 기능 제공
TL;DR: 이 글은 PyTorch Lightning 로컬 연결 Azure ML 을 통해 ML Flow 로 로그하는 방법을 보여 줍니다.
만약 당신이 Azure의 초보자라면, 아래의 링크를 사용하여 무료 구독을 시작할 수 있습니다.
Create your Azure free account today | Microsoft Azure

Azure ML 및 PyTorch 조명



이 주제에 관한 마지막 문장에서 나는 PyTorch LightningAzure ML 딥러닝 모델 훈련을 간소화하는 장점을 개술했다.만약 네가 아직 알아내지 못했다면!
Azure ML로 첫 번째 분포식 PyTorch 조명 모형을 훈련시키면 로그를 추가할 때가 되었습니다.

왜 우리는 로그 기록에 관심을 가지고 있습니까?



로그는 문제 해결과 기계 학습 모델의 성능을 추적하는 데 매우 중요하다.우리가 자주 원격 집단에서 훈련을 하기 때문에 로그는 간단한 메커니즘을 제공하여 개발 모델의 각 단계에 무슨 일이 일어났는지 명확하게 이해할 수 있다.
간단한 인쇄 문장과 반대로 로그에는 시간 스탬프가 있어 심각성에 따라 필터링할 수 있으며, Azure ML은 로그를 사용하여 교육, 검증, 테스트 기간 등 관건적인 지표를 시각화할 수 있다.Azure ML 레코드 지표 사용은 Azure ML HyperDrive 서비스를 사용하여 최상의 모델 구성을 찾을 수 있도록 돕는 추가 조건입니다.
Tune hyperparameters for your model - Azure Machine Learning
로그 기록은 PyTorch Lighting과 Azure ML이 어떻게 결합하여 모델 훈련을 간소화하는지 완벽하게 보여 줍니다. 라이트닝만 사용하면 응용 프로그램에서 수십 줄의 PyTorch 코드를 절약하고 그 과정에서 가독성을 얻을 수 있습니다.

PyTorch 조명 측정



vanilla Pytork에서 로그 코드를 추적하고 유지하는 것은 매우 복잡할 수 있습니다.
Azure ML, Tensor Board, TestTube, Neptune 등 ML 프레임워크와 서비스ai와 Comet ML에는 고유한 로그 API가 있습니다.이것은 ML 엔지니어가 일반적으로 교육, 검증, 테스트의 각 단계에서 여러 개의 로그 문장을 유지해야 한다는 것을 의미한다.
PyTorch Lighting은 통일된 로그 인터페이스를 제공함으로써 이 과정을 간소화했다. 이 인터페이스는 가장 유행하는 머신러닝 로그 API의 기존 지원을 가지고 있다.
Loggers - PyTorch Lightning 1.0.2 documentation
여러 개의 기록기는 심지어 한데 연결될 수 있어 코드를 크게 간소화시켰다.
**from** pytorch\_lightning.loggers **import** TensorBoardLogger, TestTubeLogger
logger1 **=** TensorBoardLogger('tb\_logs', name **=**'my\_model')
logger2 **=** TestTubeLogger('tb\_logs', name **=**'my\_model')
trainer **=** Trainer(logger **=** [logger1, logger2])
기록기를 PyTorch Lighting trainer에 제공하면 모든 lightning\u module\u function\u 또는\u init\u 이외의 갈고리에서 기록기에 접근할 수 있습니다.
**class**  **MyModule** (LightningModule):
**def**  **some\_lightning\_module\_function\_or\_hook** (self):
 some\_img **=** fake\_image()
_# Option 1_
 self **.** logger **.** experiment[0] **.** add\_image('generated\_images', some\_img, 0)
_# Option 2_
 self **.** logger[0] **.** experiment **.** add\_image('generated\_images', some\_img, 0)

Azure ML Logging with PyTorch Lighting with ML Flow



Azure ML과ML Flow가 본기 통합을 진행했기 때문에 우리는 PyTorch Lighting의 ML Flow Logger 모듈을 이용하여 여러 실험 운행 중에 본기의 도량을 가시화하고 하이퍼드라이브를 이용하여 우리의 훈련 코드를 아주 작은 변경만 할 수 있다.
다음은 PyTorch lightning을 사용하여 Azure ML 로그를 사용하는 데 필요한 코드를 요약합니다.

단계 #1 환경


PyTorch Lighting, Azure ML 및 ML Flow 패키지를 실행 환경에 추가합니다.
pip 
 - azureml-defaults
 - mlflow
 - azureml-mlflow
 - pytorch-lightning

단계 #2 Azure ML 실행 컨텍스트 및 ML 흐름 추적 URL 가져오기


from azureml.core.run import Run

run = Run.get\_context()
mlflow\_url = run.experiment.workspace.get\_mlflow\_tracking\_uri()mlf\_logger = 

3단계에서 Pytork Lighting MLFlow Logger를 초기화하고 링크를 실행합니다.신분증


MLFlowLogger(experiment\_name=amlexp.name, tracking\_uri=mlflow\_url)
mlf\_logger.\_run\_id = run.id

단계 #4 로그 문장을 Pyrotch에 추가하여training_단계,validation_단계와test_단계를 비추기


def training\_step(self, batch, batch\_idx):

 # Calculate train loss here 
 self.log("train\_loss", loss)
 # return test loss

def validation\_step(self, batch, batch\_idx):

 # Calculate validation loss here 
 self.log("val\_loss", loss)
 # return test loss

def test\_step(self, batch, batch\_idx):
 # Calculate test loss here 
 self.log("test\_loss", loss)
 # return test loss 

단계 #5 PyTorch Lightning Trainer에 ML 트래픽 레코더 추가


trainer = pl.Trainer.from\_argparse\_args(args)

trainer.logger = mlf\_logger # enjoy default logging implemented by pl!
여기 있다!현재 PyTorch Lighting 트레이닝 스크립트를 제출하면 훈련, 검증, 테스트 시 실시간 시각화와 초고속 드라이브 입력을 받을 수 있습니다. 정상적인 코드의 일부분만 사용하십시오.
너는 마땅히 해야 하지 않지만, 만약 너에게 무슨 문제가 있으면 평론에서 나에게 알려 주세요.

다음 단계


다음 글은 우선 순위가 낮은 계산 실례를 사용하여 PyTorch와 Azure ML의 다중 노드 분포식 훈련을 설정하여 훈련 원가를 수량급으로 낮추는 방법을 보여 드리겠습니다.
Plan and manage costs - Azure Machine Learning

감사를 드리다


Minna Xiao과Azure ML팀에 열렬한 환영을 표하고 그들의 지지와 약속에 감사를 표하며 그들은 개원 프레임워크(예를 들어 Azure의 PyTorch Lighting)를 통해 더욱 좋은 개발 체험을 실현하는 데 주력하고 있다.

저자 정보


역사에 대한 열정이 충만한 인공지능 연구원으로 신기술과 계산의학에 종사한다.마이크로소프트 클라우드 개발자 제창팀의 개원 엔지니어로서 그는 이스라엘 첨단 기술 지역사회와 협력하여 기록, 개원 및 세계 다른 곳과 공유하는 게임 규칙을 바꾸는 기술을 통해 현실 세계의 문제를 해결한다.

좋은 웹페이지 즐겨찾기