Принципы работы Машинное обучение Azure: Архитектура и основные понятияHow Azure Machine Learning works: Architecture and concepts

Сведения об архитектуре, концепциях и рабочем процессе для Машинное обучение Azure.Learn about the architecture, concepts, and workflow for Azure Machine Learning. Основные компоненты службы и общий рабочий процесс при использовании службы показаны на следующей схеме: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 designer.
    • Создайте и настройте целевой объект вычислений.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:

Примечание

Хотя в этой статье определяются термины и понятия, используемые Машинное обучение Azure, он не определяет термины и понятия для платформы Azure.Although this article defines terms and concepts used by Azure Machine Learning, 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.

ГлоссарийGlossary

Действия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.

Виртуальная машина записной книжкиNotebook VM

Виртуальная машина для записной книжки машинное обучение Azure — это полностью управляемая облачная Рабочая станция, которая включает в себя несколько средств и сред, установленных для машинного обучения.An Azure Machine Learning Notebook VM is a fully managed cloud-based workstation that includes multiple tools and environments installed for machine learning. Виртуальные машины записной книжки можно использовать в качестве целевого объекта вычислений для небольших заданий обучения и обучению.Notebook VMs can be used as a compute target for smaller training and inferencing jobs. Для больших задач машинное обучение Azureные кластеры с возможностями масштабирования с несколькими узлами являются лучшим выбором целевого объекта вычислений.For large tasks, Azure Machine Learning compute clusters with multi-node scaling capabilities is a better compute target choice.

Дополнительные сведения о виртуальных машинах записных книжек.Learn more about Notebook VMs.

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

Целевой объект вычислений позволяет указать ресурс вычислений, в котором выполняется сценарий обучения, или разместите развертывание службы.A compute target lets you 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.

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

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

Машинное обучение 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 можно получить доступ к базовому хранилищу, исследовать данные и управлять жизненным циклом различных определений наборов данных.Using the Azure Machine Learning SDK, you can access underlying storage, explore data, and manage the life cycle of different Dataset definitions.

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

Дополнительные сведения см. в разделе Создание и регистрация машинное обучение Azure наборов данных.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.

Конечные точкиEndpoints

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

При развертывании модели в качестве веб-службы конечная точка может быть развернута в службе "экземпляры контейнеров Azure", "служба Kubernetes Azure" или "FPGA".When deploying a model as a web service the endpoint can be deployed on Azure Container Instances, Azure Kubernetes Service, or FPGAs. Служба создается из модели, скрипта и связанных файлов.You create the service from your model, script, and associated files. Они помещаются в базовый образ контейнера, который содержит среду выполнения для модели.These are placed into a base container image which contains the execution environment for the model. Образ включает конечную точку 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 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.

Конечные точки модуля IoTIoT module endpoints

Развернутая конечная точка модуля IoT — это контейнер DOCKER, который включает в себя модель и связанный скрипт или приложение, а также любые дополнительные зависимости.A deployed IoT module endpoint 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.

средами;Environments

Среды машинного обучения Azure используются для указания конфигурации (DOCKER/Python/Spark/т. д.), используемой для создания воспроизводимой среды для подготовки данных, обучения модели и обслуживания модели.Azure ML Environments are used to specify the configuration (Docker / Python / Spark / etc.) used to create a reproducible environment for data preparation, model training and model serving. Это управляемые и версии сущностей в рабочей области Машинное обучение Azure, которые позволяют воспроизводимые, отслеживаемые и переносимые рабочие процессы машинного обучения в различных целевых объектах вычислений.They are managed and versioned entities within your Azure Machine Learning workspace that enable reproducible, auditable, and portable machine learning workflows across different compute targets.

Объект среды можно использовать в локальных средах вычислений для разработки сценария обучения, повторного использования этой же среды на Машинное обучение Azure вычислений для обучения модели и даже для развертывания модели в этой же среде.You can use an environment object on your local compute to develop your training script, reuse that same environment on Azure Machine Learning Compute for model training at scale, and even deploy your model with that same environment.

Узнайте, как создать повторно используемую среду ML и управлять ею для обучения и вывода.Learn how to create and manage a reusable ML environment for training and inference.

ИнтуициейEstimators

Для упрощения обучения модели с помощью популярных платформ класс оценщик позволяет легко создавать конфигурации запуска.To facilitate model training with popular frameworks, the estimator class allows you to easily construct run configurations. Вы можете создать и использовать универсальный оценщик для отправки сценариев обучения, использующих любую выбранную платформу обучения (например, scikit-учиться).You can create and use a generic Estimator to submit training scripts that use any learning framework you choose (such as scikit-learn).

Для задач PyTorch, TensorFlow и Chain Машинное обучение Azure также предоставляет соответствующие средства оценки PyTorch, TensorFlowи формирователя цепочки для упрощения использования этих платформ.For PyTorch, TensorFlow, and Chainer tasks, Azure Machine Learning also provides respective PyTorch, TensorFlow, and Chainer estimators to simplify using these frameworks.

Дополнительные сведения см. в следующих статьях:For more information, see the following articles:

Эксперименты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.

Пример использования эксперимента см. в разделе учебник. обучение первой модели.For an example of using an experiment, see Tutorial: Train your first model.

Отслеживание и интеграция GitHubGitHub 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. Это работает с запусками, отправленными с помощью средства оценки, конвейера ML или запуска скрипта.This works with runs submitted using an estimator, ML pipeline, or script run. Он также работает для запусков, отправленных из пакета SDK или Машинное обучение CLI.It also works for runs submitted from the SDK or Machine Learning CLI.

Дополнительные сведения см. в статье Интеграция Git для машинное обучение Azure.For more information, see Git integration for 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.

Конвейеры машинного обучения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.

Этапы конвейера можно многократно использовать и могут выполняться без повторного выполнения последующих шагов, если выходные данные этого шага не изменились.Pipeline steps are reusable, and can be run without rerunning subsequent steps if the output of that step hasn't changed. Например, можно переучить модель без повторного выполнения подготовительных шагов подготовки данных, если данные не изменялись.For example, you can retrain a model without rerunning costly data preparation steps if the data hasn't changed. Кроме того, конвейеры позволяют специалистам по обработке и анализу данных работать в разных областях рабочего процесса машинного обучения.Pipelines also allow data scientists to collaborate while working on separate areas of a machine learning workflow.

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

Модели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 workspace.

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

Пример обучения модели с помощью Scikit — изучение и оценка см. в разделе учебник. Обучение модели классификации изображений с машинное обучение Azure.For an example of training a model using Scikit-learn and an estimator, see Tutorial: Train an image classification model with Azure Machine Learning.

Реестр модели отслеживает все модели в рабочей области машинное обучение Azure.The model registry keeps track of all the models in your Azure Machine Learning 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.

ЗапускиRuns

Запуск — это однократный запуск сценария обучения.A run is a single execution of a training script. Машинное обучение Azure записывает все запуски и сохраняет следующие сведения:Azure Machine Learning records all runs and stores 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.

Конфигурации запуска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.

Моментальные снимки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.

Примечание

Чтобы предотвратить включение ненужных файлов в моментальный снимок, создайте файл Ignore (. gitignore или. амлигноре).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. Файл. амлигноре использует тот же синтаксис и шаблоны, что и файл gitignore.The .amlignore file uses the same syntax and patterns as the .gitignore file. Если оба файла существуют, приоритет имеет файл. амлигноре.If both files exist, the .amlignore file takes precedence.

Сценарии обучения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.

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

Рабочая область — это ресурс верхнего уровня для машинное обучение Azure.The workspace is the top-level resource for Azure Machine Learning. Он предоставляет централизованное место для работы со всеми артефактами, создаваемыми при использовании Машинное обучение Azure.It provides a centralized place to work with all the artifacts you create when you use Azure Machine Learning. Вы можете предоставить общий доступ к рабочей области другим пользователям.You can share a workspace with others. Подробное описание рабочих областей см. в разделе что такое Рабочая область машинное обучение Azure?.For a detailed description of workspaces, see What is an Azure Machine Learning workspace?.

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

Чтобы приступить к работе с Машинное обучение Azure, см.:To get started with Azure Machine Learning, see: