Что такое Машинное обучение Azure конвейеров?What are Azure Machine Learning pipelines?

Машинное обучение Azure Конвейеры позволяют создавать рабочие процессы в проектах машинного обучения.Azure Machine Learning pipelines allow you to create workflows in your machine learning projects. Эти рабочие процессы имеют ряд преимуществ.These workflows have a number of benefits:

  • ПростотаSimplicity
  • СкоростьSpeed
  • ПовторяемостьRepeatability
  • ГибкостьFlexibility
  • Управление версиями и отслеживаниеVersioning and tracking
  • МодульностьModularity
  • Контроль качестваQuality assurance
  • Управление затратамиCost control

Эти преимущества становятся значительными, как только проект машинного обучения перейдет за пределы чистого исследования и в итерацию.These benefits become significant as soon as your machine learning project moves beyond pure exploration and into iteration. Даже простые одноэтапные конвейеры могут быть полезными.Even simple one-step pipelines can be valuable. Проекты машинного обучения часто находятся в сложном состоянии, и это может быть простым процессом выполнения простого процесса.Machine learning projects are often in a complex state, and it can be a relief to make the precise accomplishment of a single workflow a trivial process.

Узнайте, как создать свой первый конвейер.Learn how to create your first pipeline.

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

Какую технологию конвейера Azure следует использовать?Which Azure pipeline technology should I use?

Облако Azure предоставляет несколько других конвейеров с разными целями.The Azure cloud provides several other pipelines, each with a different purpose. В следующей таблице перечислены различные конвейеры и их использование.The following table lists the different pipelines and what they are used for:

КонвейерPipeline Что будет сделаноWhat it does Канонический каналCanonical pipe
Конвейеры Машинное обучение AzureAzure Machine Learning pipelines Определяет рабочие процессы машинного обучения для повторного использования, которые можно использовать в качестве шаблона для сценариев машинного обучения.Defines reusable machine learning workflows that can be used as a template for your machine learning scenarios. Модель > данныхData -> model
Конвейеры фабрики данных AzureAzure Data Factory pipelines Группирует действия перемещения данных, преобразования и управления, необходимые для выполнения задачи.Groups data movement, transformation, and control activities needed to perform a task. Данные > данныхData -> data
Azure PipelinesAzure Pipelines Непрерывная интеграция и доставка приложения в любую платформу или любое облакоContinuous integration and delivery of your application to any platform/any cloud > Приложения или службы кодаCode -> app/service

Что могут выполнять конвейеры машинного обучения Azure?What can Azure ML pipelines do?

Конвейер Машинное обучение Azure — это независимый исполняемый рабочий процесс полной задачи машинного обучения.An Azure Machine Learning pipeline is an independently executable workflow of a complete machine learning task. Подзадачи инкапсулируются в последовательность шагов в конвейере.Subtasks are encapsulated as a series of steps within the pipeline. Конвейер Машинное обучение Azure может быть таким же простым, как и тот, который вызывает сценарий Python, поэтому может выполнять практически любые действия.An Azure Machine Learning pipeline can be as simple as one that calls a Python script, so may do just about anything. Конвейеры должны сосредоточиться на задачах машинного обучения, таких как:Pipelines should focus on machine learning tasks such as:

  • подготовка данных, включая импорт, проверку, очистку, изменение, преобразование, нормализацию и промежуточное хранение;Data preparation including importing, validating and cleaning, munging and transformation, normalization, and staging
  • настройка обучения, включая параметризацию аргументов, путей, а также конфигураций ведения журналов и отчетности;Training configuration including parameterizing arguments, filepaths, and logging / reporting configurations
  • эффективные и повторяемые процессы обучения и проверки, которые могут включать настройку подмножеств данных и аппаратных вычислительных ресурсов, распределенную обработку и отслеживание хода выполнения;Training and validating efficiently and repeatably, which might include specifying specific data subsets, different hardware compute resources, distributed processing, and progress monitoring
  • развертывание, включая управление версиями, масштабирование, подготовку и управление доступом;Deployment, including versioning, scaling, provisioning, and access control

Независимые шаги позволяют нескольким специалистам по обработке данных работать в одном конвейере одновременно без чрезмерных ресурсов вычислений.Independent steps allow multiple data scientists to work on the same pipeline at the same time without over-taxing compute resources. Отдельные шаги также упрощают использование различных типов вычислений и размеров для каждого шага.Separate steps also make it easy to use different compute types/sizes for each step.

После создания конвейера часто нужно выполнить более тонкую настройку его цикла обучения.After the pipeline is designed, there is often more fine-tuning around the training loop of the pipeline. При повторном запуске конвейера выполняется переход к шагам, которые необходимо повторить, например обновленному сценарию обучения.When you rerun a pipeline, the run jumps to the steps that need to be rerun, such as an updated training script. Шаги, которые не нужно повторять, пропускаются.Steps that do not need to be rerun are skipped. Тот же анализ применяется к неизмененным сценариям, используемым для достижения шага.The same analysis applies to unchanged scripts used for the accomplishment of the step. Эти функции повторного использования позволяют избежать выполнения дорогостоящих и ресурсоемких действий, таких как прием и преобразование данных, если базовые данные не изменились.This reuse functionality helps to avoid running costly and time-intensive steps like data ingestion and transformation if the underlying data hasn't changed.

С помощью Машинное обучение Azure можно использовать различные наборы средств и платформы, такие как PyTorch или TensorFlow, для каждого шага в конвейере.With Azure Machine Learning, you can use various toolkits and frameworks, such as PyTorch or TensorFlow, for each step in your pipeline. Azure координирует различные используемые целевые объекты вычислений , чтобы обеспечить общий доступ к промежуточным данным с помощью подчиненных целевых объектов вычислений.Azure coordinates the various compute targets you use, so your intermediate data can be shared with the downstream compute targets.

Метрики для экспериментов конвейера можно отслеживаниь непосредственно в портал Azure или на целевой странице рабочей области (Предварительная версия).You can track the metrics for your pipeline experiments directly in Azure portal or your workspace landing page (preview). После публикации конвейера можно настроить конечную точку RESTFUL, которая позволит перезапустить конвейер из любой платформы или стека.After a pipeline has been published, you can configure a REST endpoint, which allows you to rerun the pipeline from any platform or stack.

Вкратце, все сложные задачи жизненного цикла машинного обучения можно использовать с конвейерами.In short, all of the complex tasks of the machine learning lifecycle can be helped with pipelines. Другие технологии конвейера Azure обладают собственными преимуществами, такими как конвейеры фабрики данных Azure для работы с данными и Azure pipelines для непрерывной интеграции и развертывания.Other Azure pipeline technologies have their own strengths, such as Azure Data Factory pipelines for working with data and Azure Pipelines for continuous integration and deployment. Но если ваше внимание уделяется машинному обучению, Машинное обучение Azure конвейеры, скорее всего, будут лучшим выбором для нужд рабочего процесса.But if your focus is machine learning, Azure Machine Learning pipelines are likely to be the best choice for your workflow needs.

Что такое конвейеры машинного обучения Azure?What are Azure ML pipelines?

Конвейер машинного обучения Azure выполняет полный логический рабочий процесс с упорядоченной последовательностью шагов.An Azure ML pipeline performs a complete logical workflow with an ordered sequence of steps. Каждый шаг является дискретным действием обработки.Each step is a discrete processing action. Конвейеры выполняются в контексте Машинное обучение Azure эксперимента.Pipelines run in the context of an Azure Machine Learning Experiment.

На самых ранних стадиях проекта машинного обучения очень удобно иметь одну записную книжку Jupyter или сценарий Python, который выполняет всю работу рабочей области Azure и конфигурации ресурсов, подготовку данных, настройку запуска, обучение и проверку.In the very early stages of an ML project, it's fine to have a single Jupyter notebook or Python script that does all the work of Azure workspace and resource configuration, data preparation, run configuration, training, and validation. Но так же, как функции и классы быстро становятся предпочтительными для одного императивного блока кода, рабочие процессы ML быстро становятся предпочтительными для монолитных записных книжек или сценариев.But just as functions and classes quickly become preferable to a single imperative block of code, ML workflows quickly become preferable to a monolithic notebook or script.

По разделение задачам машинного обучения конвейеры поддерживают императивную технику, которую компонент должен «делать (только) один».By modularizing ML tasks, pipelines support the Computer Science imperative that a component should "do (only) one thing well." Модульность является очевидной для успешного выполнения проекта при программировании в группах, но даже при работе с ним даже в небольших проектах машинного обучения требуется отдельная задача, каждая из которых имеет хороший уровень сложности.Modularity is clearly vital to project success when programming in teams, but even when working alone, even a small ML project involves separate tasks, each with a good amount of complexity. К задачам относятся: Конфигурация рабочей области и доступ к данным, подготовка данных, определение модели, Настройка и развертывание.Tasks include: workspace configuration and data access, data preparation, model definition and configuration, and deployment. Хотя выходные данные одной или нескольких задач формируют входные данные в другой, точная информация о реализации любой из задач является, в лучшей степени, несущественными вычитаниями в следующем.While the outputs of one or more tasks form the inputs to another, the exact implementation details of any one task are, at best, irrelevant distractions in the next. В худшем случае вычислительное состояние одной задачи может вызвать ошибку в другой.At worst, the computational state of one task can cause a bug in another.

Анализ зависимостейAnalyzing dependencies

Многие экосистемы программирования имеют средства для управления зависимостями ресурсов, библиотек или компиляции.Many programming ecosystems have tools that orchestrate resource, library, or compilation dependencies. Как правило, эти средства используют метки времени файлов для вычисления зависимостей.Generally, these tools use file timestamps to calculate dependencies. При изменении файла только он и его зависимые элементы обновляются (скачаны, перекомпилированы или упакованы).When a file is changed, only it and its dependents are updated (downloaded, recompiled, or packaged). Конвейеры машинного обучения Azure значительно расширяют эту концепцию.Azure ML pipelines extend this concept dramatically. Как и традиционные средства сборки, конвейеры вычисляют зависимости между шагами и выполняют только необходимые повторные вычисления.Like traditional build tools, pipelines calculate dependencies between steps and only perform the necessary recalculations.

Анализ зависимостей в конвейерах машинного обучения Azure более сложен по сравнению с простыми метками времени.The dependency analysis in Azure ML pipelines is more sophisticated than simple timestamps though. Каждый шаг может выполняться в различных аппаратных и программных средах.Every step may run in a different hardware and software environment. Подготовка данных может быть трудоемким процессом, но не нужно работать на оборудовании с мощными графическими процессорами. для некоторых шагов может потребоваться программное обеспечение, предназначенное для конкретной операционной системы, можно использовать распределенное обучение и т. д.Data preparation might be a time-consuming process but not need to run on hardware with powerful GPUs, certain steps might require OS-specific software, you might want to use distributed training, and so forth. Хотя экономия затрат на оптимизацию ресурсов может быть значительной, она может привести к невозможности ручного изменения всех различных вариантов аппаратных и программных ресурсов.While the cost savings for optimizing resources may be significant, it can be overwhelming to manually juggle all the different variations in hardware and software resources. Все это еще сложнее сделать, не внося ошибки в данные, передаваемые между шагами.It's even harder to do all that without ever making a mistake in the data you transfer between steps.

Эта проблема решается конвейерами.Pipelines solve this problem. Машинное обучение Azure автоматически управляет всеми зависимостями между этапами конвейера.Azure Machine Learning automatically orchestrates all of the dependencies between pipeline steps. Это может привести к ускорению и понижению работы образов DOCKER, подключению и отсоединению вычислений и перемещению данных между действиями в единообразном и автоматическом режиме.This orchestration might include spinning up and down Docker images, attaching and detaching compute resources, and moving data between the steps in a consistent and automatic manner.

Повторное использование результатовReusing results

Кроме того, выходные данные шага могут, если вы решили, использовать повторно.Additionally, the output of a step may, if you choose, be reused. Если вы задаете повторное использование в качестве возможности и не используете восвычисление, то служба конвейера будет использовать кэшированную версию результатов этого шага.If you specify reuse as a possibility and there are no upstream dependencies triggering recalculation, the pipeline service will use a cached version of the step's results. Такое повторное использование может значительно снизить время разработки.Such reuse can dramatically decrease development time. При наличии сложной задачи подготовки данных вы, вероятно, перезапустите ее чаще, чем это необходимо.If you have a complex data preparation task, you probably rerun it more often than is strictly necessary. Конвейеры отменяют эту заботу: при необходимости шаг будет выполнен, если нет, это не так.Pipelines relieve you of that worry: if necessary, the step will run, if not, it won't.

Все эти анализ зависимостей, согласование и активация обрабатываются Машинное обучение Azure при создании экземпляра объекта конвейера , перед передачей в Experimentи вызова submit().All of this dependency analysis, orchestration, and activation are handled by Azure Machine Learning when you instantiate a Pipeline object, pass it to an Experiment, and call submit().

Координация необходимых действийCoordinating the steps involved

При создании и запуске объекта Pipeline выполняются следующие общие действия.When you create and run a Pipeline object, the following high-level steps occur:

  • Для каждого шага служба вычисляет требования для:For each step, the service calculates requirements for:
    • Аппаратные ресурсы для вычисленийHardware compute resources
    • Ресурсы ОС (образы DOCKER)OS resources (Docker image(s))
    • Ресурсы программного обеспечения (зависимости Conda и Virtualenv)Software resources (Conda / virtualenv dependencies)
    • Входные данныеData inputs
  • Служба определяет зависимости между шагами, что приводит к динамическому графу выполненияThe service determines the dependencies between steps, resulting in a dynamic execution graph
  • При выполнении каждого узла в графе выполнения:When each node in the execution graph runs:
    • Служба настраивает необходимую аппаратную и программную среду (возможно, повторное использование существующих ресурсов).The service configures the necessary hardware and software environment (perhaps reusing existing resources)
    • Этот шаг выполняется, предоставляя сведения о ведении журнала и наблюдении за содержащимся в нем объектом ExperimentThe step runs, providing logging and monitoring information to its containing Experiment object
    • После завершения шага его выходные данные подготавливаются в качестве входных данных для следующего шага и (или) записи в хранилище.When the step completes, its outputs are prepared as inputs to the next step and/or written to storage
    • Ресурсы, которые больше не нужны, завершаются и отсоединяютсяResources that are no longer needed are finalized and detached

Этапы конвейера

Создание конвейеров с помощью пакета SDK для PythonBuilding pipelines with the Python SDK

В пакете SDK для машинное обучение Azure Pythonконвейер — это объект Python, определенный в модуле azureml.pipeline.core.In the Azure Machine Learning Python SDK, a pipeline is a Python object defined in the azureml.pipeline.core module. Объект конвейера содержит упорядоченную последовательность из одного или нескольких объектов пипелинестеп .A Pipeline object contains an ordered sequence of one or more PipelineStep objects. Класс PipelineStep является абстрактным, и фактические шаги будут подклассами, такими как естиматорстеп, писонскриптстепили дататрансферстеп.The PipelineStep class is abstract and the actual steps will be of subclasses such as EstimatorStep, PythonScriptStep, or DataTransferStep. Класс модулестеп содержит многократно используемую последовательность действий, которые могут совместно использоваться в конвейерах.The ModuleStep class holds a reusable sequence of steps that can be shared among pipelines. Pipeline выполняется как часть Experiment.A Pipeline runs as part of an Experiment.

Конвейер машинного обучения Azure связан с рабочей областью Машинное обучение Azure, а этап конвейера связан с целевым объектом вычислений, доступным в этой рабочей области.An Azure ML pipeline is associated with an Azure Machine Learning workspace and a pipeline step is associated with a compute target available within that workspace. Дополнительные сведения см. в статьях создание рабочих областей машинное обучение Azure и управление ими в портал Azure или целевые объекты вычислений в машинное обучение Azure?.For more information, see Create and manage Azure Machine Learning workspaces in the Azure portal or What are compute targets in Azure Machine Learning?.

В Машинное обучение Azure целевой объект вычислений — это среда, в которой выполняется этап машинного обучения.In Azure Machine Learning, a compute target is the environment in which an ML phase occurs. Программная среда может быть удаленной виртуальной машиной, Машинное обучение Azure вычислений, Azure Databricks, пакетной службы Azure и т. д.The software environment may be a Remote VM, Azure Machine Learning Compute, Azure Databricks, Azure Batch, and so on. Аппаратная среда также может сильно различаться в зависимости от поддержки GPU, памяти, хранилища и т. д.The hardware environment can also vary greatly, depending on GPU support, memory, storage, and so forth. Вы можете указать целевой объект вычислений для каждого шага, что обеспечивает детальное управление затратами.You may specify the compute target for each step, which gives you fine-grained control over costs. Для конкретного действия, объема данных и требований к производительности проекта можно использовать больше или менее мощных ресурсов.You can use more- or less- powerful resources for the specific action, data volume, and performance needs of your project.

Создание конвейеров с помощью конструктораBuilding pipelines with the designer

Разработчики, предпочитающие визуальную область конструктора, могут использовать конструктор Машинное обучение Azure для создания конвейеров.Developers who prefer a visual design surface can use the Azure Machine Learning designer to create pipelines. Доступ к этому средству можно получить с помощью выбора конструктора на домашней странице рабочей области.You can access this tool from the Designer selection on the homepage of your workspace. Конструктор позволяет перетаскивать шаги в область конструктора.The designer allows you to drag and drop steps onto the design surface. Для быстрой разработки можно использовать существующие модули во множестве задач машинного обучения. существующие модули охватывают все от преобразования данных до выбора алгоритма для обучения развертыванию.For rapid development, you can use existing modules across the spectrum of ML tasks; existing modules cover everything from data transformation to algorithm selection to training to deployment. Кроме того, можно создать полностью настраиваемый конвейер, объединив собственные шаги, определенные в скриптах Python.Or you can create a fully custom pipeline by combining your own steps defined in Python scripts.

При визуальном проектировании конвейеров входные и выходные данные шага отображаются как видимые.When you visually design pipelines, the inputs and outputs of a step are displayed visibly. Можно перетаскивать подключения к данным, что позволяет быстро понять и изменить поток данных конвейера.You can drag and drop data connections, allowing you to quickly understand and modify the dataflow of your pipeline.

Пример конструктора Машинного обучения Azure

Основные сведения о графике выполненияUnderstanding the execution graph

Действия в конвейере могут зависеть от других шагов.The steps within a pipeline may have dependencies on other steps. Служба конвейера машинного обучения Azure выполняет работу по анализу и координации этих зависимостей.The Azure ML pipeline service does the work of analyzing and orchestrating these dependencies. Узлы в результирующем графе выполнения представляют шаги по обработке.The nodes in the resulting "execution graph" are processing steps. Каждый шаг может содержать создание или повторное использование определенного сочетания оборудования и программного обеспечения, повторное использование кэшированных результатов и т. д.Each step may involve creating or reusing a particular combination of hardware and software, reusing cached results, and so on. Координация и оптимизация этого графа выполнения службы может значительно ускорить этап машинного обучения и снизить затраты.The service's orchestration and optimization of this execution graph can significantly speed up an ML phase and reduce costs.

Поскольку шаги выполняются независимо, объекты для хранения входных и выходных данных, передаваемых между шагами, должны быть определены извне.Because steps run independently, objects to hold the input and output data that flows between steps must be defined externally. Это роль Reference, пипелинедатаи связанных классов.This is the role of DataReference, PipelineData, and associated classes. Эти объекты данных связаны с объектом DataStore , который инкапсулирует конфигурацию хранилища.These data objects are associated with a Datastore object that encapsulates their storage configuration. Базовый класс PipelineStep всегда создается с name строкой, списком inputsи списком outputs.The PipelineStep base class is always created with a name string, a list of inputs, and a list of outputs. Обычно он также содержит список arguments и часто имеет список resource_inputs.Usually, it also has a list of arguments and often it will have a list of resource_inputs. Подклассы, как правило, также имеют дополнительные аргументы (например, PythonScriptStep требует имя файла и путь к выполняемому сценарию).Subclasses will generally have additional arguments as well (for instance, PythonScriptStep requires the filename and path of the script to run).

Граф выполнения — ациклический, но конвейеры можно запускать по повторяющемуся расписанию и запускать скрипты Python, которые могут записывать сведения о состоянии в файловую систему, что делает возможным создание сложных профилей.The execution graph is acyclic, but pipelines can be run on a recurring schedule and can run Python scripts that can write state information to the file system, making it possible to create complex profiles. При проектировании конвейера, чтобы определенные шаги могли выполняться параллельно или асинхронно, Машинное обучение Azure прозрачно обрабатывает анализ зависимостей и координацию развертывания и вращения.If you design your pipeline so that certain steps may run in parallel or asynchronously, Azure Machine Learning transparently handles the dependency analysis and coordination of fan-out and fan-in. Как правило, не нужно беспокоиться о деталях графа выполнения, но он доступен через атрибут конвейера. Graph .You generally don't have to concern yourself with the details of the execution graph, but it's available via the Pipeline.graph attribute.

Простой конвейер PythonA simple Python Pipeline

В этом фрагменте кода показаны объекты и вызовы, необходимые для создания и запуска базового Pipeline.This snippet shows the objects and calls needed to create and run a basic Pipeline:

ws = Workspace.from_config() 
blob_store = Datastore(ws, "workspaceblobstore")
compute_target = ws.compute_targets["STANDARD_NC6"]
experiment = Experiment(ws, 'MyExperiment') 

input_data = DataReference(
    datastore=Datastore(ws, blob_store),
    data_reference_name="test_data",
    path_on_datastore="20newsgroups/20news.pkl")

output_data = PipelineData(
    "output_data",
    datastore=blob_store,
    output_name="output_data1")

steps = [ PythonScriptStep(
    script_name="train.py",
    arguments=["--input", input_data, "--output", output_data],
    inputs=[input_data],
    outputs=[output_data],
    compute_target=compute_target,
    source_directory="myfolder"
) ]

pipeline = Pipeline(workspace=ws, steps=steps)

pipeline_run = experiment.submit(pipeline)
pipeline_run.wait_for_completion()

Фрагмент кода начинается с общих объектов Машинное обучение Azure, Workspace, Datastore, ComputeTargetи Experiment.The snippet starts with common Azure Machine Learning objects, a Workspace, a Datastore, a ComputeTarget, and an Experiment. Затем код создает объекты для хранения input_data и output_data.Then, the code creates the objects to hold input_data and output_data. Массив steps содержит один элемент, PythonScriptStep, который будет использовать объекты данных и выполняться на compute_target.The array steps holds a single element, a PythonScriptStep that will use the data objects and run on the compute_target. Затем код создает экземпляр объекта Pipeline, передавая его в массив рабочей области и шага.Then, the code instantiates the Pipeline object itself, passing in the workspace and steps array. Вызов experiment.submit(pipeline) начинает выполнение конвейера машинного обучения Azure.The call to experiment.submit(pipeline) begins the Azure ML pipeline run. Вызов wait_for_completion() блокируется до завершения конвейера.The call to wait_for_completion() blocks until the pipeline is finished.

Рекомендации по использованию конвейеровBest practices when using pipelines

Как видите, создание конвейера машинного обучения Azure немного сложнее, чем запуск скрипта.As you can see, creating an Azure ML pipeline is a little more complex than starting a script. Для конвейеров требуется настроить и создать несколько объектов Python.Pipelines require a few Python objects be configured and created.

В некоторых ситуациях рекомендуется использовать конвейер:Some situations that suggest using a pipeline:

  • В среде рабочей группы: Разделите задачи машинного обучения на несколько независимых шагов, чтобы разработчики могли работать и развивать свои программы независимо друг от друга.In a team environment: divide ML tasks into multiple independent steps so that developers can work and evolve their programs independently.

  • При развертывании в или близком: наследите конфигурацию и используйте операции, управляемые событиями, чтобы остаться в изменяющихся данных.When in or near deployment: nail down the configuration and use scheduled and event-driven operations to stay on top of changing data.

  • На ранних стадиях проекта ML или только для работы: используйте конвейеры для автоматизации сборки.In the early stages of an ML project or working alone: use pipelines to automate the build. Если вы начали беспокоиться о повторном создании конфигурации и вычислительном состоянии перед реализацией новой идеи, это сигнал, который можно использовать для автоматизации рабочего процесса с помощью конвейера.If you've started worrying about recreating the configuration and computational state before implementing a new idea, that's a signal that you might consider using a pipeline to automate the workflow.

Можно легко стать энтузиазмом о повторном использовании кэшированных результатов, детализированном управлении затратами на вычисление и изоляции процессов, но у конвейеров есть затраты.It's easy to become enthusiastic about reusing cached results, fine-grained control over compute costs, and process isolation, but pipelines do have costs. Ниже приведены некоторые антишаблоны.Some anti-patterns include:

  • Использование конвейеров в качестве единственного способа разделения проблем.Using pipelines as the sole means to separate concerns. Встроенные функции, объекты и модули Python позволяют избежать путаницы в программном состоянии!Python's built-in functions, objects, and modules go a long way to avoid confusing programmatic state! Этап конвейера гораздо дороже, чем вызов функции.A pipeline step is much more expensive than a function call.

  • Высокая связь между этапами конвейера.Heavy coupling between pipeline steps. Если для рефакторинга зависимого шага часто требуется изменение выходных данных предыдущего шага, вполне вероятно, что отдельные шаги в настоящее время являются более затратными, чем преимущество.If refactoring a dependent step frequently requires modifying the outputs of a previous step, it's likely that separate steps are currently more of a cost than a benefit. Еще один признак того, что шаги имеют более тесное связывание, — это аргументы для шага, которые не являются данными, но флаги для управления обработкой.Another clue that steps are overly coupled is arguments to a step that are not data but flags to control processing.

  • Преждевременно оптимизировать ресурсы для вычислений.Prematurely optimizing compute resources. Например, часто существует несколько этапов подготовки данных, и один из них часто может видеть «о том, где можно использовать MpiStep для параллельного программирования, но здесь я могу использовать PythonScriptStep с менее мощным целевым объектом вычислений» и т. д.For instance, there are often several stages to data preparation and one can often see "Oh, here's a place where I could use an MpiStep for parallel-programming but here's a place where I could use a PythonScriptStep with a less-powerful compute target," and so forth. И, возможно, в долгосрочном запуске создание детализированных действий, таких как, может оказаться целесообразным, особенно если есть возможность использовать кэшированные результаты, а не всегда перечислять.And maybe, in the long run, creating fine-grained steps like that might prove worthwhile, especially if there's a possibility to use cached results rather than always recalculating. Но конвейеры не предназначены для замены модуля multiprocessing.But pipelines are not intended to be a substitute for the multiprocessing module.

Пока проект не станет большим или близким к развертыванию, конвейеры должны быть грубыми, а не детализированными.Until a project gets large or nears deployment, your pipelines should be coarser rather than fine-grained. Если вы считаете, что проект машинного обучения включает в себя этапы и конвейер, и предоставляет полный рабочий процесс для перемещения на определенном этапе, вы находитесь по нужному пути.If you think of your ML project as involving stages and a pipeline as providing a complete workflow to move you through a particular stage, you're on the right path.

Ключевые преимуществаKey advantages

Основные преимущества использования конвейеров для рабочих процессов машинного обучения:The key advantages of using pipelines for your machine learning workflows are:

Ключевое преимуществоKey advantage ОписаниеDescription
Автоматические выполненияUnattended runs Планирование выполнения шагов параллельно или в последовательности в надежном и автоматическом режиме.Schedule steps to run in parallel or in sequence in a reliable and unattended manner. Подготовка и моделирование данных могут быть за последние дни или недели, а Конвейеры позволяют сосредоточиться на других задачах во время выполнения процесса.Data preparation and modeling can last days or weeks, and pipelines allow you to focus on other tasks while the process is running.
Разнородных вычисленийHeterogenous compute Используйте несколько конвейеров, которые надежно скоординированы между разнородными и масштабируемыми вычислительными ресурсами и местами хранения.Use multiple pipelines that are reliably coordinated across heterogeneous and scalable compute resources and storage locations. Эффективно используйте доступные вычислительные ресурсы, выполняя отдельные этапы конвейера для различных целевых объектов вычислений, таких как HDInsight, виртуальные машины обработки и анализа данных GPU, а также кирпичы.Make efficient use of available compute resources by running individual pipeline steps on different compute targets, such as HDInsight, GPU Data Science VMs, and Databricks.
Повторное использованиеReusability Создание шаблонов конвейера для конкретных сценариев, таких как переобучение и пакетная оценка.Create pipeline templates for specific scenarios, such as retraining and batch-scoring. Активация опубликованных конвейеров из внешних систем с помощью простых вызовов RESTFUL.Trigger published pipelines from external systems via simple REST calls.
Отслеживание и управление версиямиTracking and versioning Вместо отслеживания данных и папок результатов вручную при выполнении итераций используйте пакет SDK для конвейеров, чтобы присваивать имена и определять версии источников данных, входных и выходных данных.Instead of manually tracking data and result paths as you iterate, use the pipelines SDK to explicitly name and version your data sources, inputs, and outputs. Вы можете также отдельно управлять сценариями и данными для повышения эффективности.You can also manage scripts and data separately for increased productivity.
МодульностьModularity Отделение областей проблем и изоляция изменений позволяет программному обеспечению развиваться быстрее с более высоким качеством.Separating areas of concerns and isolating changes allows software to evolve at a faster rate with higher quality.
ВзаимодействиеCollaboration Конвейеры позволяют специалистам по обработке и анализу данных совместно работать во всех областях процесса разработки машинного обучения, в то же время одновременно работая с этапами конвейера.Pipelines allow data scientists to collaborate across all areas of the machine learning design process, while being able to concurrently work on pipeline steps.

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

Конвейеры машинного обучения Azure — это мощное средство, которое начинает доставку ценности на стадии раннего развертывания.Azure ML pipelines are a powerful facility that begins delivering value in the early development stages. Значение увеличивается по мере роста группы и проекта.The value increases as the team and project grows. В этой статье объясняется, как указать конвейеры с помощью пакета SDK для Машинное обучение Azure Python и в Azure.This article has explained how pipelines are specified with the Azure Machine Learning Python SDK and orchestrated on Azure. Вы увидели простой исходный код и предоставили несколько доступных PipelineStep классов.You've seen some basic source code and been introduced to a few of the PipelineStep classes that are available. Вы должны иметь представление о том, когда следует использовать конвейеры машинного обучения Azure и как они работают в Azure.You should have a sense of when to use Azure ML pipelines and how Azure runs them.