Принципы работы Службы машинного обучения 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:

Архитектура Azure службы машинного обучения и рабочий процесс

Рабочий процессWorkflow

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

  1. ОбучениеTrain

    • Разработка машинного обучения, обучение скрипты в Python или в визуальный интерфейс.Develop machine learning training scripts in Python or with the visual interface.
    • Создайте и настройте целевой объект вычислений.Create and configure a compute target.
    • Отправьте скрипты в настроенный целевой объект вычислений для запуска в этой среде.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.
  2. Пакет — когда обнаружен категории "Удовлетворительно" запуск, регистрация сохраненной модели в реестра модели.Package - After a satisfactory run is found, register the persisted model in the model registry.

  3. Проверка - запроса эксперимента для метрики журнала текущих и прошлых запусков.Validate - 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.

  4. Развертывание -разработать скрипт оценки, который использует эту модель и развертывание модели как веб-службы в Azure или устройство IoT Edge.Deploy - Develop a scoring script that uses the model and Deploy the model as a web service in Azure, or to an IoT Edge device.

  5. Монитор -мониторинг для данные о смещении между обучающих наборов данных и вывод данных развернутой модели.Monitor - Monitor for data drift between the training dataset and inference data of a deployed model. При необходимости, цикл обратно к выполнению этапа 1, чтобы переобучить модель новыми данными обучения.When necessary, loop back to step 1 to retrain the model with new training data.

Средства для машинного обучения AzureTools for Azure Machine Learning

Эти средства можно используйте для машинного обучения Azure:Use these tools for Azure Machine Learning:

Глоссарий основные понятияGlossary of concepts

Примечание

Хотя в этой статье определяются термины и понятия, используемые Службой машинного обучения 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.

Рабочие областиWorkspaces

Рабочая область — это ресурс верхнего уровня для службы машинного обучения 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.

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

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

Дополнительные сведения о рабочих областях см. в разделе Какова рабочей областью машинного обучения Azure?.For more information about workspaces, see What is an Azure Machine Learning workspace?.

ЭкспериментыExperiments

Эксперимент представляет собой совокупность нескольких запусков указанного сценария.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.

МоделиModels

В простейшем смысле модель представляет собой фрагмент кода, который принимает входные данные и создает выходные данные.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.

Реестра модели следит за всех моделей в рабочей области службы машинного обучения 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.

Совет

Зарегистрированной модели — это логический контейнер для одного или нескольких файлов, которые входят в модель.A registered model is a logical container for one or more files that make up your model. Например если у вас есть модель, которая хранится в нескольких файлах, можно зарегистрировать их как одну модель в рабочей области машинного обучения Azure.For example, if you have a model that is stored in multiple files, you can register them as a single model in your Azure Machine Learning workspace. После регистрации можно затем загрузке или развертывании зарегистрированной модели и получать все файлы, которые были зарегистрированы.After registration, you can then download or deploy the registered model and receive all the files that were registered.

Невозможно удалить зарегистрированный модели, который используется с активным развертыванием.You can't delete a registered model that is 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 configurations

Конфигурация запуска — это набор инструкций, который определяет, как запустить сценарий в указанном целевом объекте вычислений.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.

Наборы данных и хранилища данныхDatasets and datastores

Наборы данных Azure Machine Learning (Предварительная версия) облегчают доступ и работы с данными.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 more examples using Datasets, see the sample notebooks.

Объект хранилище данных — это абстракция хранилища через учетную запись хранилища 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 targets

Объект целевого объекта вычислений позволяет указать вычислительный ресурс, на котором выполняется сценарий обучения или узел развертывания службы.A compute target lets you to specify the compute resource where you run your training script or host your service deployment. Это расположение может быть на локальном компьютере или облачных вычислительных ресурсов.This location may be your local machine or a cloud-based compute resource. Целевые объекты вычисления позволяют легко изменить среду службы вычислений без изменения кода.Compute targets make it easy to change your compute environment without changing your code.

Дополнительные сведения о целевых объектов вычислений, доступных для обучения и развертывания.Learn more about the available compute targets for training and deployment.

Сценарии обученияTraining scripts

Чтобы обучить модель, необходимо указать каталог, содержащий скрипт обучения и связанные файлы.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.

ЗапускиRuns

Запуск — это запись, которая содержит следующие сведения: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.

Отслеживание GitHub и интеграцииGitHub tracking and integration

При запуске обучения, выполните, где исходный каталог является локальный репозиторий Git, сведения о хранилище хранятся в журнале выполнения.When you start a training run where the source directory is a local Git repository, information about the repository is stored in the run history. Например текущих Идентификаторов фиксаций репозитория, регистрируется как часть журнала.For example, the current commit ID for the repository is logged as part of the history. Это работает с запуском, отправленного с помощью оценщика, конвейер машинного Обучения или выполнения скрипта.This works with runs submitted using an estimator, ML pipeline, or script run. Она также работает для запусков, отправленных из пакета SDK или Machine Learning CLI.It also works for runs submitted from the SDK or Machine Learning CLI.

Моментальные снимкиSnapshots

При отправке запуска Машинное обучение 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.

Примечание

Чтобы предотвратить ненужные файлы, включаемого в моментальном снимке, сделайте с файлом игнорирования (.gitignore или .amlignore).To prevent unnecessary files from being included in the snapshot, make an ignore file (.gitignore or .amlignore). Поместите этот файл в каталоге моментальных снимков и добавьте имена файлов, чтобы игнорировать его.Place this file in the Snapshot directory and add the filenames to ignore in it. Файл .amlignore использует тот же синтаксис и шаблоны, что файл .gitignore.The .amlignore file uses the same syntax and patterns as the .gitignore file. Если существуют оба файла, файл .amlignore имеет приоритет.If both files exist, the .amlignore file takes precedence.

ДействияActivities

Действие представляет собой длительную операцию.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.

ИзображенийImages

Образы позволяют надежно развернуть модель, а также все компоненты, необходимые для использования модели.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.

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

Имеющиеся образы реестр образов в рабочей области.Images are cataloged in the image registry in your workspace. Можно предоставить дополнительные теги метаданных при создании образа, таким образом, вы можете запрашивать их поиск нужного образа позже.You can provide additional metadata tags when you create the image, so that you can query them to find your image later.

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

Пример развертывания модели с помощью пользовательского образа, см. в разделе развертывание модели с помощью пользовательского образа Docker.For an example of deploying a model using a custom image, see How to deploy a model using a custom Docker 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 deployments

Развернутая веб-служба может использовать Экземпляры контейнеров 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 deployments

Развернутый модуль Интернета вещей — это контейнер 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.

Конвейеры машинного обученияML Pipelines

Используйте конвейеры машинного обучения для создания и управления рабочими процессами, которые совмещают этапы машинного обучения.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 inference/scoring 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: