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

Сведения об архитектуре и концепциях для машинное обучение Azure.Learn about the architecture and concepts for Azure Machine Learning. В этой статье приводятся общие сведения о компонентах и их взаимодействии, которые помогут в процессе создания, развертывания и обслуживания моделей машинного обучения.This article gives you a high-level understanding of the components and how they work together to assist in the process of building, deploying, and maintaining machine learning models.

Рабочей областиWorkspace

Рабочая область машинного обучения — это ресурс верхнего уровня для машинное обучение Azure.A machine learning workspace is the top-level resource for Azure Machine Learning.

Схема: Машинное обучение Azure архитектура рабочей области и ее компонентов

Рабочая область — это централизованное место:The workspace is the centralized place to:

Рабочая область содержит другие ресурсы Azure, используемые рабочей областью:A workspace includes other Azure resources that are used by the workspace:

  • Реестр контейнеров Azure (запись контроля доступа): регистрирует контейнеры DOCKER, используемые во время обучения и при развертывании модели.Azure Container Registry (ACR): Registers docker containers that you use during training and when you deploy a model. Чтобы сократить затраты, запись контроля доступа создается только при создании образов развертывания.To minimize costs, ACR is only created when deployment images are created.
  • Учетная запись хранения Azure. используется в качестве хранилища данных по умолчанию для рабочей области.Azure Storage account: Is used as the default datastore for the workspace. Здесь также хранятся записные книжки Jupyter, которые используются с Машинное обучение Azureными экземплярами для вычислений.Jupyter notebooks that are used with your Azure Machine Learning compute instances are stored here as well.
  • 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.

Вы можете использовать рабочую область совместно с другими пользователями.You can share a workspace with others.

ВычисляетComputes

Целевой объект вычислений — это любой компьютер или набор компьютеров, используемых для запуска сценария обучения или размещения развертывания службы.A compute target is any machine or set of machines you use to run your training script or host your service deployment. В качестве целевого объекта вычислений можно использовать локальный компьютер или удаленный ресурс вычислений.You can use your local machine or a remote compute resource as a compute target. С помощью целевых объектов вычислений вы можете начать обучение на локальном компьютере, а затем масштабировать его в облако, не меняя сценарий обучения.With compute targets, you can start training on your local machine and then scale out to the cloud without changing your training script.

В Машинное обучение Azure представлены две полностью управляемые облачные виртуальные машины, которые настроены для задач машинного обучения.Azure Machine Learning introduces two fully managed cloud-based virtual machines (VM) that are configured for machine learning tasks:

  • Вычислительный экземпляр. вычислительный экземпляр — это виртуальная машина, которая включает в себя несколько средств и сред, установленных для машинного обучения.Compute instance: A compute instance is a VM that includes multiple tools and environments installed for machine learning. Основное использование вычислительного экземпляра предназначено для рабочей станции разработки.The primary use of a compute instance is for your development workstation. Вы можете начать работу с примерами записных книжек, не требующих настройки.You can start running sample notebooks with no setup required. Вычислительный экземпляр можно также использовать в качестве целевого объекта вычислений для обучения и задания с обработкой.A compute instance can also be used as a compute target for training and inferencing jobs.

  • Кластеры вычислений: кластеры виртуальных машин с возможностями масштабирования с несколькими узлами.Compute clusters: Compute clusters are a cluster of VMs with multi-node scaling capabilities. Кластеры вычислений лучше подходят для целевых платформ вычислений для больших заданий и рабочей среды.Compute clusters are better suited for compute targets for large jobs and production. Кластер автоматически масштабируется при отправке задания.The cluster scales up automatically when a job is submitted. Используйте в качестве цели для обучающих вычислений или для развертывания разработки и тестирования.Use as a training compute target or for dev/test deployment.

Дополнительные сведения о целевых объектах вычислений для обучения см. в разделе обучение целевых вычислений.For more information about training compute targets, see Training compute targets. Дополнительные сведения о целевых объектах для вычислений развертывания см. в разделе цели развертывания.For more information about deployment compute targets, see Deployment targets.

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

Машинное обучение Azure наборы данных упрощают доступ к данным и работу с ними.Azure Machine Learning Datasets make it easier to access and work with your data. Создавая набор данных, вы создаете ссылку на расположение источника данных вместе с копией его метаданных.By creating a dataset, you create a reference to the data source location along with a copy of its metadata. Поскольку данные остаются в существующем расположении, не взимается дополнительная плата за хранение и не рискуйте целостность источников данных.Because the data remains in its existing location, you incur no extra storage cost, and don't risk the integrity of your data sources.

Дополнительные сведения см. в статье Создание наборов данных Машинного обучения Azure.For more information, see Create and register Azure Machine Learning Datasets. Дополнительные примеры использования наборов данных см. в разделе с примерами записных книжек.For more examples using Datasets, see the sample notebooks.

Для безопасного подключения к службам хранилища Azure наборы данных используют хранилища данных.Datasets use datastores to securely connect to your Azure storage services. Хранилища данных хранят сведения о подключении, не помещая при этом учетные данные проверки подлинности и целостность исходного источника.Datastores store connection information without putting your authentication credentials and the integrity of your original data source at risk. Они хранят сведения о подключении, такие как идентификатор подписки и авторизация маркера, в Key Vault, связанных с рабочей областью, поэтому вы можете безопасно получать доступ к хранилищу без необходимости жестко кодировать их в сценарии.They store connection information, like your subscription ID and token authorization in your Key Vault associated with the workspace, so you can securely access your storage without having to hard code them in your script.

СредыEnvironments

Рабочая область > СредыWorkspace > Environments

Среда — это инкапсуляция среды, в которой происходит обучение или оценка модели машинного обучения.An environment is the encapsulation of the environment where training or scoring of your machine learning model happens. Среда определяет пакеты Python, переменные среды и параметры программного обеспечения для сценариев обучения и оценки.The environment specifies the Python packages, environment variables, and software settings around your training and scoring scripts.

Примеры кода см. в разделе "Управление средами" статьи использование сред.For code samples, see the "Manage environments" section of How to use environments.

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

Рабочая область > Эксперименты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 the name doesn't exist when you submit an experiment, a new experiment is automatically created.

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

ЗапускиRuns

Рабочая область > Эксперименты > ВыполнениеWorkspace > Experiments > Run

Выполнение — это однократный запуск скрипта обучения.A run is a single execution of a training script. Обычно эксперимент содержит большое число выполнений.An experiment will typically contain multiple runs.

Машинное обучение Azure записывает все выполнения и сохраняет в эксперименте следующую информацию:Azure Machine Learning records all runs and stores the following information in the experiment:

  • метаданные о запуске (метка времени, длительность и т. д.);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

Рабочая область > Эксперименты > Выполнение > Конфигурация запускаWorkspace > Experiments > Run > Run configuration

Конфигурация запуска определяет, как скрипт должен выполняться в указанном целевом объекте вычислений.A run configuration defines how a script should be run in a specified compute target. Используйте конфигурацию, чтобы указать скрипт, целевой объект вычислений и среду машинного обучения Azure для выполнения, любые распределенные конфигурации заданий и некоторые дополнительные свойства.You use the configuration to specify the script, the compute target and Azure ML environment to run on, any distributed job-specific configurations, and some additional properties. Дополнительные сведения о полном наборе настраиваемых параметров для запусков см. в разделе скриптрунконфиг.For more information on the full set of configurable options for runs, see ScriptRunConfig.

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

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

Рабочая область > Эксперименты > Выполнение > Моментальный снимокWorkspace > Experiments > Run > 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.

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

Машинное обучение Azure автоматически записывает метрики стандартных запусков.Azure Machine Learning automatically logs standard run metrics for you. Однако можно также использовать пакет SDK для Python для регистрации произвольных метрик.However, you can also use the Python SDK to log arbitrary metrics.

Существует несколько способов просмотра журналов: наблюдение за состоянием выполнения в режиме реального времени или просмотр результатов после завершения.There are multiple ways to view your logs: monitoring run status in real time, or viewing results after completion. Дополнительные сведения см. в статье мониторинг и просмотр журналов выполнения машинного обучения.For more information, see Monitor and view ML run logs.

Примечание

Чтобы предотвратить включение ненужных файлов в моментальный снимок, создайте файл Ignore ( .gitignore или .amlignore ) в каталоге.To prevent unnecessary files from being included in the snapshot, make an ignore file (.gitignore or .amlignore) in the directory. Добавьте файлы и каталоги для исключения в этот файл.Add the files and directories to exclude to this file. Дополнительные сведения о синтаксисе, который будет использоваться в этом файле, см. в разделе синтаксис и шаблоны для .gitignore .For more information on the syntax to use inside this file, see syntax and patterns for .gitignore. Этот .amlignore файл использует тот же синтаксис.The .amlignore file uses the same syntax. Если оба файла существуют, .amlignore приоритет имеет файл.If both files exist, the .amlignore file takes precedence.

Отслеживание и интеграция GitGit 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 a script run configuration or ML pipeline. А также для выполнений, отправленных с помощью пакетов 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.

Модели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.You can bring a model that was trained outside of Azure Machine Learning. Или можно обучить модель, отправив выполнение эксперимента в целевой объект вычислений в машинное обучение Azure.Or you can train a model by submitting a run of an experiment to a compute target in Azure Machine Learning. После создания модели вы регистрируете модель в рабочей области.Once you have a model, you register the model in the workspace.

Машинное обучение Azure не зависит от платформы.Azure Machine Learning is framework agnostic. Для создания модели можно использовать любую популярную платформу машинного обучения, например Scikit-learn, XGBoost, PyTorch, TensorFlow или Chainer.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, see Tutorial: Train an image classification model with Azure Machine Learning.

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

Рабочая область > МоделиWorkspace > Models

Реестр Model позволяет вести отслеживание всех моделей в рабочей области машинное обучение Azure.The model registry lets you keep 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.

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

Вы развертываете зарегистрированную модель в качестве конечной точки службы.You deploy a registered model as a service endpoint. Вам потребуются следующие компоненты:You need the following components:

  • Среда.Environment. Эта среда инкапсулирует зависимости, необходимые для выполнения модели для вывода.This environment encapsulates the dependencies required to run your model for inference.
  • Код оценки.Scoring code. Этот скрипт принимает запросы, оценивает запросы с помощью модели и возвращает результаты.This script accepts requests, scores the requests by using the model, and returns the results.
  • Конфигурация вывода.Inference configuration. Конфигурация вывода определяет среду, сценарий входа и другие компоненты, необходимые для запуска модели в качестве службы.The inference configuration specifies the environment, entry script, and other components needed to run the model as a service.

Дополнительные сведения об этих компонентах см. в разделе Развертывание моделей с помощью машинное обучение Azure.For more information about these components, see Deploy models with Azure Machine Learning.

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

Рабочая область > Конечные точкиWorkspace > Endpoints

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

Вы можете включить Application Insights телеметрии или телеметрии моделей для мониторинга веб-службы.You can enable Application Insights telemetry or model telemetry to monitor your web service. Данные телеметрии доступны только вам.The telemetry data is accessible only to you. Он хранится в Application Insights и экземплярах учетной записи хранения.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.

конечные точки для прогнозирования в реальном времени.Real-time endpoints

При развертывании обученной модели в конструкторе эту модель можно развернуть как конечную точку в режиме реального времени.When you deploy a trained model in the designer, you can deploy the model as a real-time endpoint. Конечная точка в реальном времени обычно получает один запрос через конечную точку RESTFUL и возвращает прогноз в режиме реального времени.A real-time endpoint commonly receives a single request via the REST endpoint and returns a prediction in real-time. Это отличается от пакетной обработки, которая обрабатывает несколько значений одновременно и сохраняет результаты после завершения в хранилище данных.This is in contrast to batch processing, which processes multiple values at once and saves the results after completion to a datastore.

Конечные точки конвейераPipeline endpoints

Конечные точки конвейера позволяют программно вызывать конвейеры машинного обучения через конечную точку RESTful.Pipeline endpoints let you call your ML Pipelines programatically via a REST endpoint. Конечные точки конвейера позволяют автоматизировать рабочие процессы конвейера.Pipeline endpoints let you automate your pipeline workflows.

Конечная точка конвейера — это коллекция опубликованных конвейеров.A pipeline endpoint is a collection of published pipelines. Эта логическая организация позволяет управлять и вызывать несколько конвейеров, используя одну и ту же конечную точку.This logical organization lets you manage and call multiple pipelines using the same endpoint. Каждый опубликованный конвейер в конечной точке конвейера имеет версию.Each published pipeline in a pipeline endpoint is versioned. Для конечной точки можно выбрать конвейер по умолчанию или указать версию в вызове функции RESTFUL.You can select a default pipeline for the endpoint, or specify a version in the REST call.

Конечные точки модуля Интернета вещейIoT module endpoints

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

Служба автоматизацииAutomation

Интерфейс командной строки службы "Машинное обучение Azure"Azure Machine Learning CLI

Машинное обучение Azure CLI — это расширение Azure CLI, кросс-платформенный интерфейс командной строки для платформы Azure.The Azure Machine Learning CLI is an extension to the Azure CLI, a cross-platform command-line interface for the Azure platform. Это расширение предоставляет команды для автоматизации действий машинного обучения.This extension provides commands to automate your machine learning activities.

Конвейеры машинного обучения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 the previous steps if the output of those steps 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.

Взаимодействие с рабочей областьюInteracting with your workspace

СтудияStudio

Машинное обучение Azure Studio предоставляет веб-представление всех артефактов в рабочей области.Azure Machine Learning studio provides a web view of all the artifacts in your workspace. Вы можете просматривать результаты и сведения о наборах данных, экспериментах, конвейерах, моделях и конечных точках.You can view results and details of your datasets, experiments, pipelines, models, and endpoints. Вы также можете управлять ресурсами вычислений и хранилищами данных в студии.You can also manage compute resources and datastores in the studio.

В студии также доступны интерактивные средства, которые являются частью Машинное обучение Azure:The studio is also where you access the interactive tools that are part of Azure Machine Learning:

Средства программированияProgramming tools

Важно!

Средства, отмеченные ниже (Предварительная версия), сейчас доступны в общедоступной предварительной версии.Tools marked (preview) below are currently in public preview. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок.The preview version is provided without a service level agreement, and it's not recommended for production workloads. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены.Certain features might not be supported or might have constrained capabilities. Дополнительные сведения см. в статье Дополнительные условия использования предварительных выпусков Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

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

Чтобы быстро начать работу с Машинным обучением Azure, изучите следующие статьи:To get started with Azure Machine Learning, see: