Принципы работы Службы машинного обучения Azure: архитектура и основные понятияHow Azure Machine Learning service works: Architecture and concepts

Дополнительные сведения об архитектуре, основные понятия и рабочий процесс для службы машинного обучения Azure.Learn about the architecture, concepts, and workflow for Azure Machine Learning service. Основные компоненты службы и общий рабочий процесс при использовании службы показаны на следующей схеме:The major components of the service and the general workflow for using the service are shown in the following diagram:

Архитектура и рабочий процесс Службы машинного обучения AzureAzure Machine Learning service architecture and workflow

ДокументооборотWorkflow

Рабочего процесса конечного автомата обучения обычно выполняется в следующей последовательности:The machine learning workflow generally follows this sequence:

  1. Создайте скрипты обучения машинного обучения на Python.Develop machine learning training scripts in Python.
  2. Создайте и настройте целевой объект вычислений.Create and configure a compute target.
  3. Отправьте скрипты в настроенный целевой объект вычислений для запуска в этой среде.Submit the scripts to the configured compute target to run in that environment. Во время обучения скрипты могут считывать данные из хранилища данных или записывать данные в него.During training, the scripts can read from or write to datastore. Записи о выполнении сохраняются в виде данных о запусках в рабочей области и группируются по экспериментам.And the records of execution are saved as runs in the workspace and grouped under experiments.
  4. Отправьте запрос в эксперимент для получения записанных метрик текущего и прошлых запусков.Query the experiment for logged metrics from the current and past runs. Если метрики не указывают желаемый результат, необходимо вернуться обратно к шагу 1 и выполнить итерацию сценариев.If the metrics don't indicate a desired outcome, loop back to step 1 and iterate on your scripts.
  5. После успешного запуска зарегистрируйте сохраненную модель в реестре моделей.After a satisfactory run is found, register the persisted model in the model registry.
  6. Разработать скрипт оценки, который использует эту модель и развертывание модели как веб-службы в Azure или устройство IoT Edge.Develop a scoring script that uses the model and Deploy the model as a web service in Azure, or to an IoT Edge device.

Примечание

Хотя в этой статье определяются термины и понятия, используемые Службой машинного обучения Azure, здесь не приводятся термины и понятия для платформы Azure.Although this article defines terms and concepts used by Azure Machine Learning service, it does not define terms and concepts for the Azure platform. Дополнительные сведения о терминологии платформы Azure см. в статье Словарь терминов Microsoft Azure: словарь терминов, связанных с облаком на платформе Azure.For more information about Azure platform terminology, see the Microsoft Azure glossary.

Рабочая областьWorkspace

Рабочая область — это ресурс верхнего уровня для Службы машинного обучения Azure.The workspace is the top-level resource for Azure Machine Learning service. Она предоставляет централизованное расположение для работы со всеми артефактами, создаваемыми при использовании Службы машинного обучения Azure.It provides a centralized place to work with all the artifacts you create when you use Azure Machine Learning service.

Рабочая область хранит список целевых объектов вычислений, которые могут быть использованы для обучения модели.The workspace keeps a list of compute targets that you can use to train your model. Она также хранит историю обучающих запусков, включая журналы, метрики, выходные данные и моментальный снимок скриптов.It also keeps a history of the training runs, including logs, metrics, output, and a snapshot of your scripts. Используйте эти сведения для выбора обучающего запуска с оптимальной моделью.You use this information to determine which training run produces the best model.

Зарегистрируйте модели в рабочей области.You register models with the workspace. Используйте зарегистрированной модели и оценки сценариев для развертывания модели, экземпляры контейнеров Azure, службе Azure Kubernetes или перепрограммируемые пользователем компоненты массива (FPGA) как конечную точку HTTP на основе REST.You use a registered model and scoring scripts to deploy a model to Azure Container Instances, Azure Kubernetes Service, or to a field-programmable gate array (FPGA) as a REST-based HTTP endpoint. Вы также можете развернуть образ на устройстве Azure IoT Edge как модуль.You can also deploy the image to an Azure IoT Edge device as a module. На внутреннем уровне для размещения развертываемый образ создается образ docker.Internally, a docker image is created to host the deployed image. При необходимости можно указать свой собственный образ.If needed, you can specify your own image.

Вы можете создать несколько рабочих областей, и каждая рабочая область может совместно использоваться несколькими пользователями.You can create multiple workspaces, and each workspace can be shared by multiple people. При предоставлении доступа рабочую область, можно управлять доступом к ней по назначению пользователей в следующие роли:When you share a workspace, you can control access to it by assigning users to the following roles:

  • Владелец.Owner
  • участник;Contributor
  • ЧитательReader

Дополнительные сведения об этих ролях см. в разделе управление доступом к рабочей области машинного обучения Azure статьи.For more information on these roles, see the Manage access to an Azure Machine Learning workspace article.

При создании новой рабочей области она автоматически создает несколько ресурсов Azure, которые используются в рабочей области:When you create a new workspace, it automatically creates several Azure resources that are used by the workspace:

  • Реестр контейнеров Azure. Регистрирует контейнеры Docker, используемые во время обучения и при развертывании модели.Azure Container Registry: Registers docker containers that you use during training and when you deploy a model.
  • Учетная запись хранения Azure. Используется как хранилище данных по умолчанию для рабочей области.Azure storage account: Is used as the default datastore for the workspace.
  • Azure Application Insights. Хранит сведения о мониторинге для моделей.Azure Application Insights: Stores monitoring information about your models.
  • Azure Key Vault. Хранит секреты, используемые целевыми объектами вычисления, и другие конфиденциальные сведения, необходимые рабочей области.Azure Key Vault: Stores secrets that are used by compute targets and other sensitive information that's needed by the workspace.

Примечание

В дополнение к созданию версий можно также использовать имеющиеся службы Azure.In addition to creating new versions, you can also use existing Azure services.

Таксономия рабочей области показана на следующей схеме:A taxonomy of the workspace is illustrated in the following diagram:

Схема рабочей областиWorkspace taxonomy

ЭкспериментExperiment

Эксперимент представляет собой совокупность нескольких запусков указанного сценария.An experiment is a grouping of many runs from a specified script. Он всегда принадлежит рабочей области.It always belongs to a workspace. При отправке запуска укажите имя эксперимента.When you submit a run, you provide an experiment name. Сведения о запуске хранятся в этом эксперименте.Information for the run is stored under that experiment. Если при отправке запуска вы укажете несуществующее имя эксперимента, автоматически создается новый эксперимент с новым указанным именем.If you submit a run and specify an experiment name that doesn't exist, a new experiment with that newly specified name is automatically created.

Пример использования эксперимента приведен в статье Краткое руководство. Начало работы со Службой машинного обучения Azure с помощью портала Azure.For an example of using an experiment, see Quickstart: Get started with Azure Machine Learning service.

МодельModel

В простейшем смысле модель представляет собой фрагмент кода, который принимает входные данные и создает выходные данные.At its simplest, a model is a piece of code that takes an input and produces output. Создание модели машинного обучения включает в себя выбор алгоритма, предоставление ему данных и настройку гиперпараметров.Creating a machine learning model involves selecting an algorithm, providing it with data, and tuning hyperparameters. Обучение — это итеративный процесс, который создает обученную модель, включающую в себя все, чему модель научилась в процессе обучения.Training is an iterative process that produces a trained model, which encapsulates what the model learned during the training process.

Модель создается путем выполнения в машинном обучении Azure.A model is produced by a run in Azure Machine Learning. Вы можете также использовать модель, обученную вне Машинного обучения Azure.You can also use a model that's trained outside of Azure Machine Learning. Вы можете зарегистрировать модель в рабочей области Службы машинного обучения Azure.You can register a model in an Azure Machine Learning service workspace.

Служба машинного обучения Azure не зависит от платформы.Azure Machine Learning service is framework agnostic. При создании модели, можно использовать любой платформы популярных машинного обучения, таких как Scikit-learn, XGBoost, PyTorch, TensorFlow и формирователя цепочки.When you create a model, you can use any popular machine learning framework, such as Scikit-learn, XGBoost, PyTorch, TensorFlow, and Chainer.

Пример обучения модели, см. в разделе руководства: Обучение модели классификации изображений с помощью Службы машинного обучения Azure.For an example of training a model, see Tutorial: Train an image classification model with Azure Machine Learning service.

Реестр моделейModel registry

В реестре моделей хранятся сведения обо всех моделях в рабочей области службы машинного обучения Azure.The model registry keeps track of all the models in your Azure Machine Learning service workspace.

Модели идентифицируются по имени и версии.Models are identified by name and version. При регистрации модели с уже имеющимся именем реестр предполагает, что это новая версия.Each time you register a model with the same name as an existing one, the registry assumes that it's a new version. Номер версии увеличивается, и новая модель регистрируется под тем же именем.The version is incremented, and the new model is registered under the same name.

При регистрации модели вы можете указать дополнительные теги метаданных, а затем использовать эти теги для поиска моделей.When you register the model, you can provide additional metadata tags and then use the tags when you search for models.

Невозможно удалить моделей, которые используются активным развертыванием.You can't delete models that are being used by an active deployment.

Пример регистрации модели см. в статье Руководство по обучению модели классификации изображений с помощью Службы машинного обучения Azure.For an example of registering a model, see Train an image classification model with Azure Machine Learning.

Конфигурация запускаRun configuration

Конфигурация запуска — это набор инструкций, который определяет, как запустить сценарий в указанном целевом объекте вычислений.A run configuration is a set of instructions that defines how a script should be run in a specified compute target. Конфигурация включает широкий набор определений поведения, например, следует ли использовать имеющуюся среду Python или среду Conda, созданную из спецификации.The configuration includes a wide set of behavior definitions, such as whether to use an existing Python environment or to use a Conda environment that's built from a specification.

Конфигурацию запуска можно сохранять в файл внутри каталога, содержащего сценарий обучения, или создать как объект в памяти и использовать для отправки запуска.A run configuration can be persisted into a file inside the directory that contains your training script, or it can be constructed as an in-memory object and used to submit a run.

Пример конфигураций запуска см. в статье Настройка целевых объектов вычислений для обучения моделей.For example run configurations, see Select and use a compute target to train your model.

Набор данныхDataset

Наборы данных (Предварительная версия) обучения Azure машины облегчают доступ и работы с данными.Azure Machine Learning Datasets (preview) make it easier to access and work with your data. Наборы данных, управление данными в различных сценариях, таких как Обучение модели и создания конвейера.Datasets manage data in various scenarios such as model training and pipeline creation. С помощью пакета SDK для Azure Machine Learning, можно получить доступ к базовым хранилищем, изучение и Подготовка данных, а также выполнять их жизненного цикла разные определения набора данных и сравнения между наборами данных, используемых при обучении и в рабочей среде.Using the Azure Machine Learning SDK, you can access underlying storage, explore and prepare data, manage the life cycle of different Dataset definitions, and compare between Datasets used in training and in production.

Наборы данных предоставляет методы для работы с данными в популярных форматах, например с помощью from_delimited_files() или to_pandas_dataframe().Datasets provides methods for working with data in popular formats, such as using from_delimited_files() or to_pandas_dataframe().

Дополнительные сведения см. в разделе Создание и регистрация Azure Machine Learning, наборы данных.For more information, see Create and register Azure Machine Learning Datasets.

Пример использования наборов данных, см. в разделе примеры записных книжек.For an example of using Datasets, see the sample notebooks.

Хранилище данныхDatastore

Хранилище данных — это абстракция хранилища через учетную запись хранения Azure.A datastore is a storage abstraction over an Azure storage account. Хранилище данных может использовать контейнер больших двоичных объектов Azure или файловый ресурс Azure в качестве внутреннего хранилища.The datastore can use either an Azure blob container or an Azure file share as the back-end storage. Каждая рабочая область содержит хранилище данных по умолчанию. Вы можете зарегистрировать дополнительные хранилища данных.Each workspace has a default datastore, and you can register additional datastores.

Используйте API пакета SDK для Python или интерфейс командной строки Машинного обучения Azure для хранения и извлечения файлов из хранилища данных.Use the Python SDK API or the Azure Machine Learning CLI to store and retrieve files from the datastore.

Целевой объект вычисленияCompute target

Целевой объект вычисления — это вычислительный ресурс, используемый для запуска сценария обучения или размещения развертывания службы.A compute target is the compute resource that you use to run your training script or host your service deployment. Поддерживаются следующие целевые объекты вычислений:The supported compute targets are:

Целевой объект вычисленияCompute target ОбучениеTraining РазвертываниеDeployment
Локальный компьютерYour local computer  
Вычислительная среда Машинного обучения AzureAzure Machine Learning compute  
Виртуальная машина Linux в AzureA Linux VM in Azure
(например, виртуальная машина для обработки и анализа данных)(such as the Data Science Virtual Machine)
 
Azure DatabricksAzure Databricks  
Azure Data Lake AnalyticsAzure Data Lake Analytics  
Apache Spark для HDInsightApache Spark for HDInsight  
Экземпляры контейнеров AzureAzure Container Instances  
Служба Azure KubernetesAzure Kubernetes Service  
Edge Интернета вещей AzureAzure IoT Edge  
Программируемые пользователем вентильные матрицы (FPGA).Field-programmable gate array (FPGA)  

Целевые объекты вычисления присоединяются к рабочей области.Compute targets are attached to a workspace. Целевые объекты вычислений, кроме локального компьютера, являются общими для пользователей рабочей области.Compute targets other than the local machine are shared by users of the workspace.

Управляемые и неуправляемые целевые объекты вычисленийManaged and unmanaged compute targets

  • Управляемые целевые объекты вычислений создаются Службой машинного обучения Azure и управляются ею.Managed: Compute targets that are created and managed by Azure Machine Learning service. Эти целевые объекты вычислений оптимизированы для рабочих нагрузок машинного обучения.These compute targets are optimized for machine learning workloads. Вычислительная среда Машинного обучения Azure — единственный управляемый целевой объект вычислений на 4 декабря 2018 года.Azure Machine Learning compute is the only managed compute target as of December 4, 2018. В будущем могут быть добавлены дополнительные управляемые целевые объекты вычислений.Additional managed compute targets may be added in the future.

    Вы можете создавать экземпляры вычислительной среды машинного обучения непосредственно в рабочей области с помощью портала Azure, пакета SDK для Машинного обучения Azure или Azure CLI.You can create machine learning compute instances directly through the workspace by using the Azure portal, the Azure Machine Learning SDK, or the Azure CLI. Все прочие целевые объекты вычислений необходимо создать вне рабочей области, а затем подключить их к ней.All other compute targets must be created outside the workspace and then attached to it.

  • Неуправляемые целевые объекты вычислений не управляются Службой машинного обучения Azure.Unmanaged: Compute targets that are not managed by Azure Machine Learning service. Может потребоваться создать их вне Машинного обучения Azure, а затем подключить эти объекты к рабочей области перед использованием.You might need to create them outside Azure Machine Learning and then attach them to your workspace before use. Для обслуживания неуправляемых целевых объектов вычислений могут потребоваться дополнительные действия или повышение производительности рабочих нагрузок машинного обучения.Unmanaged compute targets can require additional steps for you to maintain or to improve performance for machine learning workloads.

Сведения о выборе целевого объекта вычислений для обучения см. в статье Настройка целевых объектов вычислений для обучения моделей.For information about selecting a compute target for training, see Select and use a compute target to train your model.

Сведения о выборе целевого объекта вычислений для развертывания см. в статье Развертывание моделей с помощью Службы машинного обучения Azure.For information about selecting a compute target for deployment, see the Deploy models with Azure Machine Learning service.

Скрипт обученияTraining script

Чтобы обучить модель, необходимо указать каталог, содержащий скрипт обучения и связанные файлы.To train a model, you specify the directory that contains the training script and associated files. Вы можете также указать имя эксперимента, который используется для хранения сведений, собранных во время обучения.You also specify an experiment name, which is used to store information that's gathered during training. Во время обучения весь каталог копируется в среду обучения (целевой объект вычислений), и запускается сценарий, указанный в конфигурации запуска.During training, the entire directory is copied to the training environment (compute target), and the script that's specified by the run configuration is started. Моментальный снимок каталога также хранится в эксперименте в рабочей области.A snapshot of the directory is also stored under the experiment in the workspace.

Пример см. в статье Руководство. Обучение модели классификации изображений с помощью Службы машинного обучения Azure.For an example, see Tutorial: Train an image classification model with Azure Machine Learning service.

ЗапускRun

Запуск — это запись, которая содержит следующие сведения:A run is a record that contains the following information:

  • метаданные о запуске (метка времени, длительность и т. д.);Metadata about the run (timestamp, duration, and so on)
  • метрики, записанные в журнал с помощью сценария;Metrics that are logged by your script
  • выходные файлы, автоматически собранные экспериментом или явным образом переданные вами;Output files that are autocollected by the experiment or explicitly uploaded by you
  • моментальный снимок каталога, содержащего скрипты, до запуска;A snapshot of the directory that contains your scripts, prior to the run

Вы создаете запуск при отправке сценария для обучения модели.You produce a run when you submit a script to train a model. Запуск может иметь ноль или более дочерних запусков.A run can have zero or more child runs. Например, запуск верхнего уровня может иметь два дочерних запуска, каждый из которых может иметь свои дочерние запуски.For example, the top-level run might have two child runs, each of which might have its own child run.

Пример просмотра запусков при обучении модели приведен в документе Краткое руководство. Начало работы со Службой машинного обучения Azure с помощью портала Azure.For an example of viewing runs that are produced by training a model, see Quickstart: Get started with Azure Machine Learning service.

СнимокSnapshot

При отправке запуска Машинное обучение Azure сжимает каталог, содержащий сценарий, как ZIP-файл и отправляет его в целевой объект вычислений.When you submit a run, Azure Machine Learning compresses the directory that contains the script as a zip file and sends it to the compute target. ZIP-файл затем извлекается, и сценарий выполняется в нем.The zip file is then extracted, and the script is run there. Машинное обучение Azure также сохраняет ZIP-файл в качестве моментального снимка как часть записи о выполнении.Azure Machine Learning also stores the zip file as a snapshot as part of the run record. Любой пользователь с доступом к рабочей области может просмотреть запись о выполнении и загрузить моментальный снимок.Anyone with access to the workspace can browse a run record and download the snapshot.

ДействиеActivity

Действие представляет собой длительную операцию.An activity represents a long running operation. Следующие операции являются примерами действий:The following operations are examples of activities:

  • Создание или удаление целевого объекта вычисленийCreating or deleting a compute target
  • Запуск скрипта на целевом объекте вычисленияRunning a script on a compute target

Действия могут предоставлять уведомления через пакет SDK или веб-интерфейс, чтобы можно было легко отслеживать ход выполнения этих операций.Activities can provide notifications through the SDK or the web UI so that you can easily monitor the progress of these operations.

ImageImage

Образы позволяют надежно развернуть модель, а также все компоненты, необходимые для использования модели.Images provide a way to reliably deploy a model, along with all components you need to use the model. Образ содержит следующие элементы:An image contains the following items:

  • Модель.A model.
  • Скрипт или приложение оценки.A scoring script or application. Используйте этот сценарий для передачи входных данных в модель и возвращения выходных данных из модели.You use the script to pass input to the model and return the output of the model.
  • Зависимости, необходимые модели, сценарию или приложению оценки.The dependencies that are needed by the model or scoring script or application. Например, можно включить файл среды Conda, содержащий зависимости пакетов Python.For example, you might include a Conda environment file that lists Python package dependencies.

Машинное обучение Azure может создавать образы двух типов:Azure Machine Learning can create two types of images:

  • Образ ППВМ: используется при развертывании в программируемую пользователем вентильную матрицу в Azure.FPGA image: Used when you deploy to a field-programmable gate array in Azure.
  • Образ Docker: используется при развертывании в целевые объекты вычислений, отличные от ППВМ.Docker image: Used when you deploy to compute targets other than FPGA. Примерами являются Экземпляры контейнеров Azure и Служба Azure Kubernetes.Examples are Azure Container Instances and Azure Kubernetes Service.

Службы машинного обучения Azure содержит базовый образ, который используется по умолчанию.The Azure Machine Learning service provides a base image, which is used by default. Можно также предоставить собственные настраиваемые образы.You can also provide your own custom images.

Пример создания образа см. в статье Руководство. Развертывание модели классификации изображений в Экземплярах контейнера Azure.For an example of creating an image, see Deploy an image classification model in Azure Container Instances.

Реестр образовImage registry

Реестр образов содержит сведения об образах, созданных из моделей.The image registry keeps track of images that are created from your models. При создании образа можно предоставить дополнительные теги метаданных.You can provide additional metadata tags when you create the image. Теги метаданных хранятся в реестре образов, и вы можете запрашивать их для поиска образа.Metadata tags are stored by the image registry, and you can query them to find your image.

РазвертываниеDeployment

Развертывание выполняется создание экземпляра модели в любом веб-служба может размещаться в облаке или модуль Интернета вещей для развертывания интегрированных устройств.A deployment is an instantiation of your model into either a web service that can be hosted in the cloud or an IoT module for integrated device deployments.

Веб-службаWeb service

Развернутая веб-служба может использовать Экземпляры контейнеров Azure, Службу Azure Kubernetes или ППВМ.A deployed web service can use Azure Container Instances, Azure Kubernetes Service, or FPGAs. Создайте службу из модели, скрипт и связанные файлы.You create the service from your model, script, and associated files. Они инкапсулируются в образ, который предоставляет среду времени выполнения для веб-службы.These are encapsulated in an image, which provides the run time environment for the web service. Образ включает конечную точку HTTP с балансировкой нагрузки, которая получает запросы на оценку, отправляемые в веб-службу.The image has a load-balanced, HTTP endpoint that receives scoring requests that are sent to the web service.

Azure помогает отслеживать развертывание веб-службы путем сбора данных телеметрии Application Insights или данных телеметрии модели, если вы решили включить эту функцию.Azure helps you monitor your web service deployment by collecting Application Insights telemetry or model telemetry, if you've chosen to enable this feature. Данные телеметрии доступны только вам и хранятся в Application Insights и экземплярах учетной записи хранения.The telemetry data is accessible only to you, and it's stored in your Application Insights and storage account instances.

Если вы включили автоматическое масштабирование, Azure будет автоматически масштабировать ваше развертывание.If you've enabled automatic scaling, Azure automatically scales your deployment.

Пример развертывания модели как веб-службы см. в статье Руководство. Развертывание модели классификации изображений в Экземплярах контейнеров Azure.For an example of deploying a model as a web service, see Deploy an image classification model in Azure Container Instances.

Модуль Интернета вещейIoT module

Развернутый модуль Интернета вещей — это контейнер Docker, который содержит вашу модель и соответствующий сценарий или приложение и все дополнительные зависимости.A deployed IoT module is a Docker container that includes your model and associated script or application and any additional dependencies. Эти модули развертывание с помощью Azure IoT Edge на пограничных устройствах.You deploy these modules by using Azure IoT Edge on edge devices.

Если вы включили функцию мониторинга, Azure собирает данные телеметрии из модели в модуле Azure IoT Edge.If you've enabled monitoring, Azure collects telemetry data from the model inside the Azure IoT Edge module. Данные телеметрии доступны только вам и хранятся в вашем экземпляре учетной записи хранения.The telemetry data is accessible only to you, and it's stored in your storage account instance.

Azure IoT Edge гарантирует, что модуль запущен и отслеживает устройство, на котором он размещен.Azure IoT Edge ensures that your module is running, and it monitors the device that's hosting it.

КонвейерPipeline

Используйте конвейеры машинного обучения для создания и управления рабочими процессами, которые совмещают этапы машинного обучения.You use machine learning pipelines to create and manage workflows that stitch together machine learning phases. Например, конвейер может включать подготовку данных, обучение модели, развертывание модели и этапы вывода.For example, a pipeline might include data preparation, model training, model deployment, and inferencing phases. Каждый этап может охватывать несколько шагов, каждый из которых может автоматически выполняться в различных целевых объектах вычисления.Each phase can encompass multiple steps, each of which can run unattended in various compute targets.

Дополнительные сведения о конвейерах машинного обучения этой службы см. в статье Создание конвейеров машинного обучения с помощью Службы машинного обучения Azure.For more information about machine learning pipelines with this service, see Pipelines and Azure Machine Learning.

Ведение журналовLogging

При разработке решения используйте пакет SDK Python для Машинного обучения Azure в сценарии Python для записи произвольных метрик.When you develop your solution, use the Azure Machine Learning Python SDK in your Python script to log arbitrary metrics. После запуска запросите метрики, чтобы определить, удалось ли в ходе запуска создать модель, которую вы хотите развернуть.After the run, query the metrics to determine whether the run has produced the model you want to deploy.

Дальнейшие действияNext steps

Чтобы начать работу со Службой машинного обучения Azure, ознакомьтесь со следующими статьями:To get started with Azure Machine Learning service, see: