Azure Machine Learning를 사용 하 여 대규모로 TensorFlow 모델 학습Train TensorFlow models at scale with Azure Machine Learning

이 문서에서는 Azure Machine Learning를 사용 하 여 대규모로 TensorFlow 교육 스크립트를 실행 하는 방법에 대해 알아봅니다.In this article, learn how to run your TensorFlow training scripts at scale using Azure Machine Learning.

이 예제에서는 TensorFlow 모델을 학습 하 고 등록 하 여 DNN (심층 신경망)를 사용 하 여 필기 된 숫자를 분류 합니다.This example trains and registers a TensorFlow model to classify handwritten digits using a deep neural network (DNN).

TensorFlow 모델을 처음부터 개발 하 든, 기존 모델 을 클라우드로 가져오는 경우에는 Azure Machine Learning를 사용 하 여 오픈 소스 학습 작업을 확장 하 여 프로덕션 등급 모델을 빌드, 배포, 버전 및 모니터링할 수 있습니다.Whether you're developing a TensorFlow model from the ground-up or you're bringing an existing model into the cloud, you can use Azure Machine Learning to scale out open-source training jobs to build, deploy, version, and monitor production-grade models.

필수 구성 요소Prerequisites

이러한 환경 중 하나에서이 코드를 실행 합니다.Run this code on either of these environments:

실험 설정Set up the experiment

이 섹션에서는 필요한 Python 패키지를 로드 하 고, 작업 영역을 초기화 하 고, 계산 대상을 만들고, 학습 환경을 정의 하 여 학습 실험을 설정 합니다.This section sets up the training experiment by loading the required Python packages, initializing a workspace, creating the compute target, and defining the training environment.

패키지 가져오기Import packages

먼저 필요한 Python 라이브러리를 가져옵니다.First, import the necessary Python libraries.

import os
import urllib
import shutil
import azureml

from azureml.core import Experiment
from azureml.core import Workspace, Run
from azureml.core import Environment

from azureml.core.compute import ComputeTarget, AmlCompute
from azureml.core.compute_target import ComputeTargetException

작업 영역 초기화Initialize a workspace

Azure Machine Learning 작업 영역은 서비스에 대 한 최상위 리소스입니다.The Azure Machine Learning workspace is the top-level resource for the service. 사용자가 만드는 모든 아티팩트를 사용할 수 있는 중앙 집중식 환경을 제공합니다.It provides you with a centralized place to work with all the artifacts you create. Python SDK에서 개체를 만들어 작업 영역 아티팩트에 액세스할 수 있습니다 workspace .In the Python SDK, you can access the workspace artifacts by creating a workspace object.

config.json 전제 조건 섹션에서 만든 파일에서 작업 영역 개체를 만듭니다.Create a workspace object from the config.json file created in the prerequisites section.

ws = Workspace.from_config()

파일 데이터 집합 만들기Create a file dataset

FileDataset 개체는 작업 영역 데이터 저장소 또는 공용 URL에서 하나 이상의 파일을 참조합니다.A FileDataset object references one or multiple files in your workspace datastore or public urls. 파일은 모든 형식일 수 있으며, 클래스는 컴퓨팅에 파일을 다운로드하거나 탑재하는 기능을 제공합니다.The files can be of any format, and the class provides you with the ability to download or mount the files to your compute. FileDataset를 생성하여 데이터 원본 위치에 대한 참조를 만듭니다.By creating a FileDataset, you create a reference to the data source location. 데이터 세트에 변환을 적용한 경우 데이터 세트에도 저장됩니다.If you applied any transformations to the data set, they will be stored in the data set as well. 데이터는 기존 위치에 그대로 남아 있으므로 추가 스토리지 비용이 발생하지 않습니다.The data remains in its existing location, so no extra storage cost is incurred. 자세한 내용은 Dataset 패키지에 대한 방법 가이드를 참조하세요.See the how-to guide on the Dataset package for more information.

from azureml.core.dataset import Dataset

web_paths = [
            'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'
            ]
dataset = Dataset.File.from_files(path=web_paths)

메서드를 사용 register() 하 여 데이터 집합을 다른 사용자와 공유 하 고, 다양 한 실험에서 재사용 하 고, 학습 스크립트에서 이름으로 참조할 수 있도록 작업 영역에 데이터 집합을 등록할 수 있습니다.Use the register() method to register the data set to your workspace so they can be shared with others, reused across various experiments, and referred to by name in your training script.

dataset = dataset.register(workspace=ws,
                           name='mnist-dataset',
                           description='training and test dataset',
                           create_new_version=True)

# list the files referenced by dataset
dataset.to_path()

컴퓨팅 대상 만들기Create a compute target

TensorFlow 작업을 실행할 계산 대상을 만듭니다.Create a compute target for your TensorFlow job to run on. 이 예제에서는 GPU 사용 Azure Machine Learning 계산 클러스터를 만듭니다.In this example, create a GPU-enabled Azure Machine Learning compute cluster.

cluster_name = "gpu-cluster"

try:
    compute_target = ComputeTarget(workspace=ws, name=cluster_name)
    print('Found existing compute target')
except ComputeTargetException:
    print('Creating a new compute target...')
    compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_NC6', 
                                                           max_nodes=4)

    compute_target = ComputeTarget.create(ws, cluster_name, compute_config)

    compute_target.wait_for_completion(show_output=True, min_node_count=None, timeout_in_minutes=20)

참고

우선 순위가 낮은 VM을 사용하여 워크로드의 일부 또는 전부를 실행하도록 선택할 수 있습니다.You may choose to use low-priority VMs to run some or all of your workloads. 우선 순위가 낮은 VM을 만드는 방법을 참조하세요.See how to create a low-priority VM.

계산 대상에 대 한 자세한 내용은 계산 대상 이란? 문서를 참조 하세요.For more information on compute targets, see the what is a compute target article.

환경 정의Define your environment

학습 스크립트의 종속성을 캡슐화 하는 Azure ML 환경을 정의 하려면 사용자 지정 환경을 정의 하거나 azure ml 큐 레이트 환경을 사용할 수 있습니다.To define the Azure ML Environment that encapsulates your training script's dependencies, you can either define a custom environment or use an Azure ML curated environment.

큐 레이트 환경 사용Use a curated environment

사용자 고유의 환경을 정의 하지 않으려는 경우 Azure ML은 미리 빌드된 큐 레이트 환경을 제공 합니다.Azure ML provides prebuilt, curated environments if you don't want to define your own environment. Azure ML에는 다양 한 버전의 TensorFlow에 해당 하는 TensorFlow에 대 한 몇 가지 CPU 및 GPU 큐 레이트 환경이 있습니다.Azure ML has several CPU and GPU curated environments for TensorFlow corresponding to different versions of TensorFlow. 자세한 내용은 여기를 참조 하세요.For more info, see here.

큐 레이트 환경을 사용 하려는 경우 다음 명령을 대신 실행할 수 있습니다.If you want to use a curated environment, you can run the following command instead:

curated_env_name = 'AzureML-TensorFlow-2.2-GPU'
tf_env = Environment.get(workspace=ws, name=curated_env_name)

큐 레이트 환경에 포함 된 패키지를 보려면 conda 종속성을 디스크에 쓸 수 있습니다.To see the packages included in the curated environment, you can write out the conda dependencies to disk:

tf_env.save_to_directory(path=curated_env_name)

큐 레이트 환경에 학습 스크립트에 필요한 모든 종속성이 포함 되어 있는지 확인 합니다.Make sure the curated environment includes all the dependencies required by your training script. 그렇지 않은 경우 누락 된 종속성을 포함 하도록 환경을 수정 해야 합니다.If not, you will have to modify the environment to include the missing dependencies. 환경을 수정 하는 경우 ' AzureML ' 접두사가 큐 레이트 환경용으로 예약 되어 있으므로 새 이름을 지정 해야 합니다.Note that if the environment is modified, you will have to give it a new name, as the 'AzureML' prefix is reserved for curated environments. Conda 종속성 YAML 파일을 수정한 경우 새 이름을 사용 하 여 새 환경을 만들 수 있습니다. 예를 들면 다음과 같습니다.If you modified the conda dependencies YAML file, you can create a new environment from it with a new name, e.g.:

tf_env = Environment.from_conda_specification(name='tensorflow-2.2-gpu', file_path='./conda_dependencies.yml')

대신 큐 레이트 환경 개체를 직접 수정한 경우 새 이름으로 해당 환경을 복제할 수 있습니다.If you had instead modified the curated environment object directly, you can clone that environment with a new name:

tf_env = tf_env.clone(new_name='tensorflow-2.2-gpu')

사용자 지정 환경 만들기Create a custom environment

또한 학습 스크립트의 종속성을 캡슐화 하는 Azure ML 환경을 직접 만들 수 있습니다.You can also create your own Azure ML environment that encapsulates your training script's dependencies.

먼저, YAML 파일에서 conda 종속성을 정의 합니다. 이 예제에서 파일의 이름은 conda_dependencies.yml 입니다.First, define your conda dependencies in a YAML file; in this example the file is named conda_dependencies.yml.

channels:
- conda-forge
dependencies:
- python=3.6.2
- pip:
  - azureml-defaults
  - tensorflow-gpu==2.2.0

이 conda 환경 사양에서 Azure ML 환경을 만듭니다.Create an Azure ML environment from this conda environment specification. 환경은 런타임에 Docker 컨테이너에 패키지 됩니다.The environment will be packaged into a Docker container at runtime.

기본적으로 기본 이미지가 지정 되지 않은 경우 Azure ML은 CPU 이미지를 azureml.core.environment.DEFAULT_CPU_IMAGE 기본 이미지로 사용 합니다.By default if no base image is specified, Azure ML will use a CPU image azureml.core.environment.DEFAULT_CPU_IMAGE as the base image. 이 예제에서는 GPU 클러스터에서 학습을 실행 하므로 필요한 GPU 드라이버 및 종속성이 있는 GPU 기본 이미지를 지정 해야 합니다.Since this example runs training on a GPU cluster, you will need to specify a GPU base image that has the necessary GPU drivers and dependencies. Azure ML은 사용자가 사용할 수 있는 Microsoft Container Registry (MCR)에 게시 된 기본 이미지 집합을 유지 관리 합니다. 자세한 내용은 azure/AzureML 컨테이너 GitHub 리포지토리를 참조 하세요.Azure ML maintains a set of base images published on Microsoft Container Registry (MCR) that you can use, see the Azure/AzureML-Containers GitHub repo for more information.

tf_env = Environment.from_conda_specification(name='tensorflow-2.2-gpu', file_path='./conda_dependencies.yml')

# Specify a GPU base image
tf_env.docker.enabled = True
tf_env.docker.base_image = 'mcr.microsoft.com/azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04'

필요에 따라 사용자 지정 Docker 이미지 또는 Dockerfile에서 모든 종속성을 직접 캡처하고 해당 환경에서 환경을 만들 수 있습니다.Optionally, you can just capture all your dependencies directly in a custom Docker image or Dockerfile, and create your environment from that. 자세한 내용은 사용자 지정 이미지를 사용 하 여 학습을 참조 하세요.For more information, see Train with custom image.

환경을 만들고 사용 하는 방법에 대 한 자세한 내용은 Azure Machine Learning에서 소프트웨어 환경 만들기 및 사용을 참조 하세요.For more information on creating and using environments, see Create and use software environments in Azure Machine Learning.

학습 실행 구성 및 제출Configure and submit your training run

ScriptRunConfig 만들기Create a ScriptRunConfig

ScriptRunConfig 개체를 만들어 학습 스크립트, 사용할 환경 및 실행할 컴퓨팅 대상 등 학습 작업의 구성 세부 정보를 지정합니다.Create a ScriptRunConfig object to specify the configuration details of your training job, including your training script, environment to use, and the compute target to run on. 매개 변수에 지정 된 경우 학습 스크립트에 대 한 모든 인수는 명령줄을 통해 전달 됩니다 arguments .Any arguments to your training script will be passed via command line if specified in the arguments parameter.

from azureml.core import ScriptRunConfig

args = ['--data-folder', dataset.as_mount(),
        '--batch-size', 64,
        '--first-layer-neurons', 256,
        '--second-layer-neurons', 128,
        '--learning-rate', 0.01]

src = ScriptRunConfig(source_directory=script_folder,
                      script='tf_mnist.py',
                      arguments=args,
                      compute_target=compute_target,
                      environment=tf_env)

경고

Azure Machine Learning는 전체 원본 디렉터리를 복사 하 여 학습 스크립트를 실행 합니다.Azure Machine Learning runs training scripts by copying the entire source directory. 업로드 하지 않으려는 중요 한 데이터가 있는 경우 무시 파일 을 사용 하거나 원본 디렉터리에이 파일을 포함 하지 마세요.If you have sensitive data that you don't want to upload, use a .ignore file or don't include it in the source directory . 대신, Azure ML 데이터 집합을 사용 하 여 데이터에 액세스 합니다.Instead, access your data using an Azure ML dataset.

ScriptRunConfig를 사용 하 여 작업을 구성 하는 방법에 대 한 자세한 내용은 학습 실행 구성 및 제출을 참조 하세요.For more information on configuring jobs with ScriptRunConfig, see Configure and submit training runs.

경고

이전에 TensorFlow 평가기를 사용 하 여 TensorFlow 교육 작업을 구성한 경우 1.19.0 SDK 릴리스를 통해 추정가 사용 되지 않도록 설정 되어 있는지 확인 하세요.If you were previously using the TensorFlow estimator to configure your TensorFlow training jobs, please note that Estimators have been deprecated as of the 1.19.0 SDK release. Azure ML SDK >= 1.15.0를 사용 하 여 심층 학습 프레임 워크를 사용 하는 것을 포함 하 여 학습 작업을 구성 하는 데 ScriptRunConfig가 권장 됩니다.With Azure ML SDK >= 1.15.0, ScriptRunConfig is the recommended way to configure training jobs, including those using deep learning frameworks. 일반적인 마이그레이션 질문은 평가기 To ScriptRunConfig 마이그레이션 가이드를 참조 하세요.For common migration questions, see the Estimator to ScriptRunConfig migration guide.

실행 제출Submit a run

실행 개체 는 작업이 실행 되는 동안 그리고 작업이 완료 된 후 실행 기록에 인터페이스를 제공 합니다.The Run object provides the interface to the run history while the job is running and after it has completed.

run = Experiment(workspace=ws, name='Tutorial-TF-Mnist').submit(src)
run.wait_for_completion(show_output=True)

실행 실행 중 수행 되는 작업What happens during run execution

실행이 실행 되 면 다음 단계를 거칩니다.As the run is executed, it goes through the following stages:

  • 준비: 정의 된 환경에 따라 docker 이미지가 생성 됩니다.Preparing: A docker image is created according to the environment defined. 이미지는 작업 영역 컨테이너 레지스트리로 업로드 되 고 나중에 실행할 수 있도록 캐시 됩니다.The image is uploaded to the workspace's container registry and cached for later runs. 로그는 실행 기록에도 스트리밍되 고 진행률을 모니터링 하기 위해 볼 수 있습니다.Logs are also streamed to the run history and can be viewed to monitor progress. 큐 레이트 환경을 대신 지정 하면 해당 큐 레이트 환경을 지 원하는 캐시 된 이미지가 사용 됩니다.If a curated environment is specified instead, the cached image backing that curated environment will be used.

  • 크기 조정: 클러스터는 현재 사용 가능한 것 보다 더 많은 노드를 실행 하는 Batch AI 클러스터가 필요한 경우 확장을 시도 합니다.Scaling: The cluster attempts to scale up if the Batch AI cluster requires more nodes to execute the run than are currently available.

  • 실행 중: 스크립트 폴더의 모든 스크립트가 계산 대상으로 업로드 되 고, 데이터 저장소가 탑재 되거나 복사 되 고, script 이 실행 됩니다.Running: All scripts in the script folder are uploaded to the compute target, data stores are mounted or copied, and the script is executed. Stdout의 출력과 ./clogs 폴더는 실행 기록으로 스트리밍되 며 실행을 모니터링 하는 데 사용할 수 있습니다.Outputs from stdout and the ./logs folder are streamed to the run history and can be used to monitor the run.

  • 사후 처리: 실행의 ./출력 폴더가 실행 기록에 복사 됩니다.Post-Processing: The ./outputs folder of the run is copied over to the run history.

모델 등록 또는 다운로드Register or download a model

모델을 학습 한 후에는 작업 영역에 등록할 수 있습니다.Once you've trained the model, you can register it to your workspace. 모델 등록을 사용하면 모델을 작업 영역에 저장하고 버전을 지정하여 모델 관리 및 배포를 간소화할 수 있습니다.Model registration lets you store and version your models in your workspace to simplify model management and deployment. 선택 사항: 매개 변수, 및를 지정 하 여 model_framework model_framework_version resource_configuration 코드 없는 모델 배포를 사용할 수 있습니다.Optional: by specifying the parameters model_framework, model_framework_version, and resource_configuration, no-code model deployment becomes available. 이렇게 하면 등록 된 모델에서 모델을 웹 서비스로 직접 배포할 수 있으며, ResourceConfiguration 개체는 웹 서비스에 대 한 계산 리소스를 정의 합니다.This allows you to directly deploy your model as a web service from the registered model, and the ResourceConfiguration object defines the compute resource for the web service.

from azureml.core import Model
from azureml.core.resource_configuration import ResourceConfiguration

model = run.register_model(model_name='tf-mnist', 
                           model_path='outputs/model',
                           model_framework=Model.Framework.TENSORFLOW,
                           model_framework_version='2.0',
                           resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5))

Run 개체를 사용 하 여 모델의 로컬 복사본을 다운로드할 수도 있습니다.You can also download a local copy of the model by using the Run object. 학습 스크립트에서 tf_mnist.py TensorFlow 보호기 개체는 로컬 폴더 (계산 대상의 로컬)에 모델을 유지 합니다.In the training script tf_mnist.py, a TensorFlow saver object persists the model to a local folder (local to the compute target). Run 개체를 사용 하 여 복사본을 다운로드할 수 있습니다.You can use the Run object to download a copy.

# Create a model folder in the current directory
os.makedirs('./model', exist_ok=True)
run.download_files(prefix='outputs/model', output_directory='./model', append_prefix=False)

분산 학습Distributed training

또한 Azure Machine Learning은 학습 워크 로드의 크기를 조정할 수 있도록 다중 노드 distributed TensorFlow 작업을 지원 합니다.Azure Machine Learning also supports multi-node distributed TensorFlow jobs so that you can scale your training workloads. Distributed TensorFlow 작업을 쉽게 실행할 수 있으며 Azure ML은 오케스트레이션을 관리 합니다.You can easily run distributed TensorFlow jobs and Azure ML will manage the orchestration for you.

Azure ML에서는 Horovod 및 TensorFlow의 기본 제공 distributed 교육 API를 사용 하 여 분산 TensorFlow 작업을 실행할 수 있습니다.Azure ML supports running distributed TensorFlow jobs with both Horovod and TensorFlow's built-in distributed training API.

HorovodHorovod

Horovod 는 uber에서 개발한 분산 교육을 위한 오픈 소스를 모두 줄인 프레임 워크입니다.Horovod is an open-source, all reduce framework for distributed training developed by Uber. 이는 학습을 위해 분산 TensorFlow 코드를 작성 하는 쉬운 경로를 제공 합니다.It offers an easy path to writing distributed TensorFlow code for training.

분산 교육을 위해 Horovod를 사용 하 여 교육 코드를 계측 해야 합니다.Your training code will have to be instrumented with Horovod for distributed training. TensorFlow와 함께 Horovod를 사용 하는 방법에 대 한 자세한 내용은 Horovod 설명서를 참조 하세요.For more information using Horovod with TensorFlow, refer to Horovod documentation:

TensorFlow와 함께 Horovod를 사용 하는 방법에 대 한 자세한 내용은 Horovod 설명서를 참조 하세요.For more information on using Horovod with TensorFlow, refer to Horovod documentation:

또한 교육 환경에 horovod 패키지가 포함 되어 있는지 확인 합니다.Additionally, make sure your training environment includes the horovod package. TensorFlow 큐 레이트 환경을 사용 하는 경우 horovod는 이미 종속성 중 하나로 포함 되어 있습니다.If you are using a TensorFlow curated environment, horovod is already included as one of the dependencies. 사용자 고유의 환경을 사용 하는 경우 horovod 종속성이 포함 되어 있는지 확인 합니다. 예를 들면 다음과 같습니다.If you are using your own environment, make sure the horovod dependency is included, for example:

channels:
- conda-forge
dependencies:
- python=3.6.2
- pip:
  - azureml-defaults
  - tensorflow-gpu==2.2.0
  - horovod==0.19.5

Azure ML에서 MPI/Horovod를 사용 하 여 분산 작업을 실행 하려면 distributed_job_config ScriptRunConfig 생성자의 매개 변수에 MpiConfiguration를 지정 해야 합니다.In order to execute a distributed job using MPI/Horovod on Azure ML, you must specify an MpiConfiguration to the distributed_job_config parameter of the ScriptRunConfig constructor. 아래 코드에서는 노드당 하나의 프로세스를 실행 하는 2 노드 분산 작업을 구성 합니다.The below code will configure a 2-node distributed job running one process per node. 노드당 여러 프로세스를 실행 하려는 경우 (즉, 클러스터 SKU에 여러 Gpu가 있는 경우) process_count_per_node MpiConfiguration에서 매개 변수를 추가로 지정 합니다 (기본값은 1 ).If you would also like to run multiple processes per node (i.e. if your cluster SKU has multiple GPUs), additionally specify the process_count_per_node parameter in MpiConfiguration (the default is 1).

from azureml.core import ScriptRunConfig
from azureml.core.runconfig import MpiConfiguration

src = ScriptRunConfig(source_directory=project_folder,
                      script='tf_horovod_word2vec.py',
                      arguments=['--input_data', dataset.as_mount()],
                      compute_target=compute_target,
                      environment=tf_env,
                      distributed_job_config=MpiConfiguration(node_count=2))

Azure ML에서 Horovod로 distributed TensorFlow를 실행 하는 방법에 대 한 전체 자습서는 Horovod를 사용 하는 Distributed TensorFlow를 참조 하세요.For a full tutorial on running distributed TensorFlow with Horovod on Azure ML, see Distributed TensorFlow with Horovod.

tf. 배포tf.distribute

교육 코드에서 네이티브 Distributed TensorFlow (예: TensorFlow 2.X의 API)를 사용 하는 경우 tf.distribute.Strategy Azure ML을 통해 분산 작업을 시작할 수도 있습니다.If you are using native distributed TensorFlow in your training code, e.g. TensorFlow 2.x's tf.distribute.Strategy API, you can also launch the distributed job via Azure ML.

이렇게 하려면 distributed_job_config ScriptRunConfig 생성자의 매개 변수에 TensorflowConfiguration를 지정 합니다.To do so, specify a TensorflowConfiguration to the distributed_job_config parameter of the ScriptRunConfig constructor. 를 사용 하는 경우 tf.distribute.experimental.MultiWorkerMirroredStrategy worker_count 학습 작업에 대 한 노드 수에 해당 하는 TensorflowConfiguration에서을 지정 합니다.If you are using tf.distribute.experimental.MultiWorkerMirroredStrategy, specify the worker_count in the TensorflowConfiguration corresponding to the number of nodes for your training job.

import os
from azureml.core import ScriptRunConfig
from azureml.core.runconfig import TensorflowConfiguration

distr_config = TensorflowConfiguration(worker_count=2, parameter_server_count=0)

model_path = os.path.join("./outputs", "keras-model")

src = ScriptRunConfig(source_directory=source_dir,
                      script='train.py',
                      arguments=["--epochs", 30, "--model-dir", model_path],
                      compute_target=compute_target,
                      environment=tf_env,
                      distributed_job_config=distr_config)

TensorFlow에서는 TF_CONFIG 여러 컴퓨터에 대 한 학습을 위해 환경 변수가 필요 합니다.In TensorFlow, the TF_CONFIG environment variable is required for training on multiple machines. Azure ML은 TF_CONFIG 학습 스크립트를 실행 하기 전에 각 작업자에 대해 변수를 적절 하 게 구성 하 고 설정 합니다.Azure ML will configure and set the TF_CONFIG variable appropriately for each worker before executing your training script. TF_CONFIG를 통해 필요한 경우 학습 스크립트에서에 액세스할 수 있습니다 os.environ['TF_CONFIG'] .You can access TF_CONFIG from your training script if you need to via os.environ['TF_CONFIG'].

TF_CONFIG최고 작업자 노드에 set의 예제 구조:Example structure of TF_CONFIG set on a chief worker node:

TF_CONFIG='{
    "cluster": {
        "worker": ["host0:2222", "host1:2222"]
    },
    "task": {"type": "worker", "index": 0},
    "environment": "cloud"
}'

학습 스크립트에서 분산 학습에 대 한 매개 변수 서버 전략을 사용 하는 경우 (예: 레거시 TensorFlow 1.x의 경우) 작업에서 사용할 매개 변수 서버 수 (예:)도 지정 해야 합니다 distr_config = TensorflowConfiguration(worker_count=2, parameter_server_count=1) .If your training script uses the parameter server strategy for distributed training, i.e. for legacy TensorFlow 1.x, you will also need to specify the number of parameter servers to use in the job, e.g. distr_config = TensorflowConfiguration(worker_count=2, parameter_server_count=1).

TensorFlow 모델 배포Deploy a TensorFlow model

배포 방법에는 모델 등록에 대 한 섹션이 포함 되어 있지만 등록 된 모델이 이미 있기 때문에 배포에 대 한 계산 대상을 직접 만드는 것으로 건너뛸 수 있습니다.The deployment how-to contains a section on registering models, but you can skip directly to creating a compute target for deployment, since you already have a registered model.

모드 코드 없는 모델 배포(Preview) No-code model deployment

기존 배포 경로 대신 TensorFlow에 대 한 비 코드 배포 기능 (미리 보기)을 사용할 수도 있습니다.Instead of the traditional deployment route, you can also use the no-code deployment feature (preview) for TensorFlow. 위에 표시 된 대로, 및 매개 변수를 사용 하 여 모델을 등록 하면 model_framework model_framework_version resource_configuration 단순히 정적 함수를 사용 하 여 모델을 배포할 수 있습니다 deploy() .By registering your model as shown above with the model_framework, model_framework_version, and resource_configuration parameters, you can simply use the deploy() static function to deploy your model.

service = Model.deploy(ws, "tensorflow-web-service", [model])

Azure Machine Learning의 배포에 대 한 자세한 내용을 자세히 설명 합니다.The full how-to covers deployment in Azure Machine Learning in greater depth.

다음 단계Next steps

이 문서에서는 TensorFlow 모델을 학습 하 고 등록 했으며 배포 옵션에 대해 알아보았습니다.In this article, you trained and registered a TensorFlow model, and learned about options for deployment. Azure Machine Learning에 대해 자세히 알아보려면 다음 문서를 참조 하세요.See these other articles to learn more about Azure Machine Learning.