Funcionamiento de Azure Machine Learning: Arquitectura y conceptosHow Azure Machine Learning works: Architecture and concepts

Obtenga información sobre la arquitectura, los conceptos y el flujo de trabajo de Azure Machine Learning.Learn about the architecture, concepts, and workflow for Azure Machine Learning. En el siguiente diagrama se muestran los componentes principales del servicio y se ilustra el flujo de trabajo general al usar el servicio:The major components of the service and the general workflow for using the service are shown in the following diagram:

Arquitectura y flujo de trabajo de Azure Machine Learning

Flujo de trabajoWorkflow

Normalmente, el flujo de trabajo del modelo de Machine Learning sigue estos pasos:The machine learning model workflow generally follows this sequence:

  1. EntrenarTrain

    • Desarrolle scripts de entrenamiento de aprendizaje automático en Python o con el diseñador visual.Develop machine learning training scripts in Python or with the visual designer.
    • Se crea y configura un destino de proceso.Create and configure a compute target.
    • Se envían los scripts al destino de proceso configurado para ejecutarse en ese entorno.Submit the scripts to the configured compute target to run in that environment. Durante el entrenamiento, los scripts pueden leer o escribir en el almacén de datos.During training, the scripts can read from or write to datastore. Y los registros de ejecución se guardan como ejecuciones en el área de trabajo, agrupados en experimentos.And the records of execution are saved as runs in the workspace and grouped under experiments.
  2. Paquete: después de encontrar una ejecución satisfactoria, se registra el modelo guardado en el registro de modelos.Package - After a satisfactory run is found, register the persisted model in the model registry.

  3. Validar - Consulte el experimento para las métricas registradas en ejecuciones actuales y anteriores.Validate - Query the experiment for logged metrics from the current and past runs. Si las métricas no ofrecen el resultado deseado, se vuelve en bucle al paso 1 y se repiten los scripts.If the metrics don't indicate a desired outcome, loop back to step 1 and iterate on your scripts.

  4. Implementar: desarrolle un script de puntuación que usa el modelo e implemente el modelo como un servicio web en Azure, o en un dispositivo 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. Supervisión: supervise el desfase de datos entre el conjunto de datos de entrenamiento y los datos de inferencia de un modelo implementado.Monitor - Monitor for data drift between the training dataset and inference data of a deployed model. Cuando sea necesario, vuelva al paso 1 para volver a entrenar el modelo con nuevos datos de entrenamiento.When necessary, loop back to step 1 to retrain the model with new training data.

Herramientas para Azure Machine LearningTools for Azure Machine Learning

Utilice estas herramientas para Azure Machine Learning:Use these tools for Azure Machine Learning:

Nota

Aunque en este artículo se definen los términos y conceptos que usa Azure Machine Learning, no se definen los términos y conceptos de la plataforma Azure.Although this article defines terms and concepts used by Azure Machine Learning, it does not define terms and concepts for the Azure platform. Para obtener más información sobre la terminología de la plataforma Azure, consulte el glosario de Microsoft Azure.For more information about Azure platform terminology, see the Microsoft Azure glossary.

GlosarioGlossary

ActividadesActivities

Una actividad representa una operación de larga ejecución.An activity represents a long running operation. Las operaciones siguientes son ejemplos de actividades:The following operations are examples of activities:

  • Creación o eliminación de un destino de procesoCreating or deleting a compute target
  • Ejecución de un script en un destino de procesoRunning a script on a compute target

Las actividades pueden proporcionar notificaciones a través del SDK o la interfaz de usuario web para que pueda supervisar fácilmente el progreso de estas operaciones.Activities can provide notifications through the SDK or the web UI so that you can easily monitor the progress of these operations.

Instancia de procesoCompute instance

Nota

Las instancias de proceso solo están disponibles para las áreas de trabajo con una región de Centro y norte de EE. UU. o Sur de Reino Unido.Compute instances are available only for workspaces with a region of North Central US or UK South. Si el área de trabajo se encuentra en otra región, puede seguir creando y usando una máquina virtual de cuadernos en su lugar.If your workspace is in any other region, you can continue to create and use a Notebook VM instead.

Una instancia de proceso de Azure Machine Learning (anteriormente máquina virtual de cuadernos) es una estación de trabajo basada en la nube totalmente administrada que incluye varias herramientas y entornos instalados para el aprendizaje automático.An Azure Machine Learning compute instance (formerly Notebook VM) is a fully managed cloud-based workstation that includes multiple tools and environments installed for machine learning. Las instancias de proceso se pueden usar como destino de proceso para los trabajos de entrenamiento e inferencia.Compute instances can be used as a compute target for training and inferencing jobs. En el caso de tareas de gran tamaño, los clústeres de procesos de Azure Machine Learning con las funcionalidades de escalado de varios nodos es una mejor opción de destino de proceso.For large tasks, Azure Machine Learning compute clusters with multi-node scaling capabilities is a better compute target choice.

Más información sobre las instancias de procesos.Learn more about compute instances.

Destinos de procesoCompute targets

Un destino de proceso le permite especificar el recurso de proceso en el que se ejecuta el script de entrenamiento o se hospeda la implementación del servicio web.A compute target lets you specify the compute resource where you run your training script or host your service deployment. Esta ubicación puede ser su equipo local o un recurso de proceso en la nube.This location may be your local machine or a cloud-based compute resource.

Obtenga más información sobre los destinos de proceso disponibles para el entrenamiento y la implementación.Learn more about the available compute targets for training and deployment.

Conjuntos de datos y almacenes de datosDatasets and datastores

Conjuntos de datos de Azure Machine Learning (versión preliminar) hace que sea más sencillo acceder a los datos y trabajar con ellos.Azure Machine Learning Datasets (preview) make it easier to access and work with your data. Los conjuntos de datos administran datos en varios escenarios, como el entrenamiento de modelos y la creación de canalizaciones.Datasets manage data in various scenarios such as model training and pipeline creation. Con el SDK de Azure Machine Learning, puede acceder al almacenamiento subyacente, explorar los datos y administrar el ciclo de vida de las distintas definiciones de conjuntos de datos.Using the Azure Machine Learning SDK, you can access underlying storage, explore data, and manage the life cycle of different Dataset definitions.

Los conjuntos de datos proporcionan métodos para trabajar con datos en formatos populares, como el uso de from_delimited_files() o to_pandas_dataframe().Datasets provide methods for working with data in popular formats, such as using from_delimited_files() or to_pandas_dataframe().

Para obtener más información, consulte Creación y registro de los conjuntos de datos de Azure Machine Learning.For more information, see Create and register Azure Machine Learning Datasets. Para ver más ejemplos del uso de los conjuntos de datos, consulte los cuadernos de ejemplo.For more examples using Datasets, see the sample notebooks.

Un almacén de datos es una abstracción de almacenamiento en una cuenta de Azure Storage.A datastore is a storage abstraction over an Azure storage account. El almacén de datos puede usar un contenedor de blobs de Azure o un recurso compartido de archivos de Azure como almacenamiento back-end.The datastore can use either an Azure blob container or an Azure file share as the back-end storage. Cada área de trabajo tiene un almacén de datos predeterminado en el que puede registrar almacenes de datos adicionales.Each workspace has a default datastore, and you can register additional datastores. Use la API del SDK de Python o la CLI de Azure Machine Learning para almacenar y recuperar archivos desde el almacén de datos.Use the Python SDK API or the Azure Machine Learning CLI to store and retrieve files from the datastore.

Puntos de conexiónEndpoints

Un punto de conexión es la creación de una instancia del modelo en un servicio web que puede hospedarse en la nube o un módulo de IoT para las implementaciones de dispositivos integrados.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.

Punto de conexión de servicio webWeb service endpoint

Al implementar un modelo como un servicio web, el punto de conexión se puede implementar en Azure Container Instances, Azure Kubernetes Service o FPGA.When deploying a model as a web service the endpoint can be deployed on Azure Container Instances, Azure Kubernetes Service, or FPGAs. El servicio se crea a partir del modelo, el script y los archivos asociados.You create the service from your model, script, and associated files. Estos se colocan en una imagen de contenedor base que contiene el entorno de ejecución para el modelo.These are placed into a base container image which contains the execution environment for the model. La imagen tiene un punto de conexión HTTP de carga equilibrada que recibe solicitudes de puntuación que se envían al servicio web.The image has a load-balanced, HTTP endpoint that receives scoring requests that are sent to the web service.

Azure le ayuda a supervisar el servicio web mediante la recopilación de telemetría de Application Insight o telemetría de modelos, si es que ha optado por habilitar esta característica.Azure helps you monitor your web service by collecting Application Insights telemetry or model telemetry, if you've chosen to enable this feature. Solo usted puede obtener acceso a los datos de telemetría, que se almacenan en las instancias de su cuenta de almacenamiento y Application Insights.The telemetry data is accessible only to you, and it's stored in your Application Insights and storage account instances.

Si ha habilitado el ajuste automático de escala, Azure ajustará automáticamente la escala de su implementación.If you've enabled automatic scaling, Azure automatically scales your deployment.

Para obtener un ejemplo de implementación de un modelo como servicio web, consulte Implementación de un modelo de clasificación de imágenes en Azure Container Instances.For an example of deploying a model as a web service , see Deploy an image classification model in Azure Container Instances.

Puntos de conexión del módulo de IoTIoT module endpoints

Un punto de conexión del módulo de IoT implementado es un contenedor de Docker que incluye el modelo y el script asociado o la aplicación y las dependencias adicionales.A deployed IoT module endpoint is a Docker container that includes your model and associated script or application and any additional dependencies. Estos módulos se implementan con Azure IoT Edge en dispositivos Edge.You deploy these modules by using Azure IoT Edge on edge devices.

Si ha habilitado la supervisión, Azure recopila datos de telemetría desde el modelo que está en el módulo de Azure IoT Edge.If you've enabled monitoring, Azure collects telemetry data from the model inside the Azure IoT Edge module. Solo usted puede obtener acceso a los datos de telemetría, que se almacenan en las instancias de su cuenta de almacenamiento.The telemetry data is accessible only to you, and it's stored in your storage account instance.

Azure IoT Edge garantiza que el módulo se esté ejecutando y supervisa el dispositivo que lo hospeda.Azure IoT Edge ensures that your module is running, and it monitors the device that's hosting it.

EntornosEnvironments

Los entornos de Azure ML se usan para especificar la configuración (Docker/Python/Spark/etc.) que se usa para crear un entorno reproducible para la preparación de datos, el entrenamiento de modelos y la entrega de modelos.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. Son entidades administradas y con control de versiones en el área de trabajo de Azure Machine Learning que permiten flujos de trabajo de aprendizaje automático reproducibles, auditables y portátiles en distintos destinos de proceso.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.

Puede usar un objeto de entorno en el proceso local para desarrollar el script de entrenamiento, volver a usar ese mismo entorno en Proceso de Machine Learning para el entrenamiento de modelos a escala e incluso implementar el modelo con ese mismo entorno.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.

Descubra cómo crear y administrar un entorno de ML reutilizable para el entrenamiento y la inferencia.Learn how to create and manage a reusable ML environment for training and inference.

EstimadoresEstimators

Para facilitar el entrenamiento de modelos con marcos conocidos, la clase Estimator le permite construir fácilmente configuraciones de ejecución.To facilitate model training with popular frameworks, the estimator class allows you to easily construct run configurations. Puede crear y usar un objeto Estimator genérico para enviar scripts de entrenamiento que usen cualquier plataforma de aprendizaje que elija (como scikit-learn).You can create and use a generic Estimator to submit training scripts that use any learning framework you choose (such as scikit-learn).

En las tareas de PyTorch, TensorFlow y Chainer, Azure Machine Learning también proporciona los estimadores PyTorch, TensorFlow y Chainer para simplificar el uso de estos marcos.For PyTorch, TensorFlow, and Chainer tasks, Azure Machine Learning also provides respective PyTorch, TensorFlow, and Chainer estimators to simplify using these frameworks.

Para más información, consulte los siguientes artículos.For more information, see the following articles:

ExperimentosExperiments

Un experimento es una agrupación de varias ejecuciones de un script determinado.An experiment is a grouping of many runs from a specified script. Siempre pertenece a un área de trabajo.It always belongs to a workspace. Cuando envíe una ejecución, proporcione un nombre de experimento.When you submit a run, you provide an experiment name. La información de la ejecución se almacena en ese experimento.Information for the run is stored under that experiment. Si envía una ejecución y especifica un nombre de experimento que no existe, se crea automáticamente un experimento nuevo con ese nombre.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.

Para obtener un ejemplo del uso de un experimento, consulte Tutorial: Entrenamiento del primer modelo.For an example of using an experiment, see Tutorial: Train your first model.

Integración y seguimiento de GitHubGitHub tracking and integration

Cuando se inicia una ejecución de entrenamiento en la que el directorio de origen es un repositorio de GIT local, se almacena información sobre el repositorio en el historial de ejecución.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. Esto funciona con ejecuciones enviadas mediante un estimador, una canalización de aprendizaje automático o una ejecución del script.This works with runs submitted using an estimator, ML pipeline, or script run. También funciona para las ejecuciones enviadas desde el SDK o la CLI de Machine Learning.It also works for runs submitted from the SDK or Machine Learning CLI.

Para más información, consulte Integración de Git con Azure Machine Learning.For more information, see Git integration for Azure Machine Learning.

RegistroLogging

Al desarrollar la solución, use el SDK de Python de Azure Machine Learning en el script de Python para registrar las métricas arbitrarias.When you develop your solution, use the Azure Machine Learning Python SDK in your Python script to log arbitrary metrics. Después de la ejecución, consulte las métricas para determinar si la ejecución ha generado el modelo que quiere implementar.After the run, query the metrics to determine whether the run has produced the model you want to deploy.

Canalizaciones de Machine LearningML Pipelines

Las canalizaciones de aprendizaje automático se usan para crear y administrar flujos de trabajo que unen las fases de aprendizaje automático.You use machine learning pipelines to create and manage workflows that stitch together machine learning phases. Por ejemplo, una canalización podría incluir las fases de preparación de los datos, entrenamiento del modelo, implementación del modelo e inferencia y puntuación.For example, a pipeline might include data preparation, model training, model deployment, and inference/scoring phases. Cada fase puede estar formada por varios pasos, cada uno de los cuales puede ejecutarse en modo desatendido en varios destinos de proceso.Each phase can encompass multiple steps, each of which can run unattended in various compute targets.

Los pasos de canalización se pueden reutilizar y se pueden ejecutar sin volver a ejecutar los pasos subsiguientes si la salida de ese paso no ha cambiado.Pipeline steps are reusable, and can be run without rerunning subsequent steps if the output of that step hasn't changed. Por ejemplo, puede volver a entrenar un modelo sin volver a ejecutar los costosos pasos de preparación de datos si los datos no han cambiado.For example, you can retrain a model without rerunning costly data preparation steps if the data hasn't changed. Las canalizaciones también permiten a los científicos de datos colaborar mientras trabajan en áreas independientes de un flujo de trabajo de Machine Learning.Pipelines also allow data scientists to collaborate while working on separate areas of a machine learning workflow.

Para obtener más información sobre las canalizaciones de aprendizaje automático con este servicio, consulte el artículo Canalizaciones y Azure Machine Learning.For more information about machine learning pipelines with this service, see Pipelines and Azure Machine Learning.

ModelosModels

En su forma más simple, un modelo es un fragmento de código que toma una entrada y genera una salida.At its simplest, a model is a piece of code that takes an input and produces output. El hecho de crear un modelo de Machine Learning implica seleccionar un algoritmo, proporcionarle datos y ajustar los hiperparámetros.Creating a machine learning model involves selecting an algorithm, providing it with data, and tuning hyperparameters. El entrenamiento es un proceso iterativo que genera un modelo entrenado, que encapsula lo que el modelo ha aprendido durante el proceso de aprendizaje.Training is an iterative process that produces a trained model, which encapsulates what the model learned during the training process.

Un modelo se genera mediante una ejecución en Azure Machine Learning.A model is produced by a run in Azure Machine Learning. También puede usar un modelo entrenado fuera de Azure Machine Learning.You can also use a model that's trained outside of Azure Machine Learning. Puede registrar el modelo en un área de trabajo de Azure Machine Learning.You can register a model in an Azure Machine Learning workspace.

Azure Machine Learning es independiente del marco de trabajo.Azure Machine Learning is framework agnostic. Al crear un modelo, puede usar cualquier marco de aprendizaje automático popular, como Scikit-learn, XGBoost, PyTorch, TensorFlow y Chainer.When you create a model, you can use any popular machine learning framework, such as Scikit-learn, XGBoost, PyTorch, TensorFlow, and Chainer.

Para ver un ejemplo de cómo entrenar un modelo con Scikit-learn y un estimador, consulte Tutorial: Entrenamiento de un modelo de clasificación de imágenes con Azure Machine Learning.For an example of training a model using Scikit-learn and an estimator, see Tutorial: Train an image classification model with Azure Machine Learning.

El registro de modelos realiza un seguimiento de todos los modelos del área de trabajo de Azure Machine Learning.The model registry keeps track of all the models in your Azure Machine Learning workspace.

Los modelos se identifican por el nombre y la versión.Models are identified by name and version. Cada vez que registra un modelo con el mismo nombre que uno ya existente, el registro interpreta que se trata de una nueva versión.Each time you register a model with the same name as an existing one, the registry assumes that it's a new version. La versión se incrementa y el nuevo modelo se registra con el nombre en cuestión.The version is incremented, and the new model is registered under the same name.

Una vez registrado el modelo, puede proporcionar etiquetas de metadatos adicionales y, después, usar esas etiquetas al buscar modelos.When you register the model, you can provide additional metadata tags and then use the tags when you search for models.

Sugerencia

Un modelo registrado es un contenedor lógico para uno o varios archivos que componen el modelo.A registered model is a logical container for one or more files that make up your model. Por ejemplo, si tiene un modelo que se almacena en varios archivos, puede registrarlos como un único modelo en el área de trabajo de Azure Machine Learning.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. Después del registro, puede descargar o implementar el modelo registrado y recibir todos los archivos que se registraron.After registration, you can then download or deploy the registered model and receive all the files that were registered.

No se puede eliminar un modelo registrado que esté usando una implementación activa.You can't delete a registered model that is being used by an active deployment.

Para obtener un ejemplo de registro de un modelo, consulte Entrenamiento de un modelo de clasificación de imágenes con Azure Machine Learning.For an example of registering a model, see Train an image classification model with Azure Machine Learning.

EjecucionesRuns

Una ejecución hace referencia a una única ejecución de un script de entrenamiento.A run is a single execution of a training script. Azure Machine Learning registra todas las ejecuciones y almacena la siguiente información:Azure Machine Learning records all runs and stores the following information:

  • Metadatos sobre la ejecución (marca de tiempo, duración, etc.).Metadata about the run (timestamp, duration, and so on)
  • Métricas que el script registra.Metrics that are logged by your script
  • Archivos de salida que recopila automáticamente el experimento o que carga explícitamente usted mismo.Output files that are autocollected by the experiment or explicitly uploaded by you
  • Instantánea del directorio que contiene los scripts antes de la ejecución.A snapshot of the directory that contains your scripts, prior to the run

Una ejecución se produce cuando se envía un script para entrenar un modelo.You produce a run when you submit a script to train a model. Una ejecución puede tener cualquier número de ejecuciones secundarias.A run can have zero or more child runs. Por ejemplo, la ejecución de nivel superior puede tener dos ejecuciones secundarias, cada una de las cuales puede tener sus propias ejecuciones secundarias.For example, the top-level run might have two child runs, each of which might have its own child run.

Configuraciones de ejecuciónRun configurations

Una configuración de ejecución es un conjunto de instrucciones que define cómo se debe ejecutar un script en un destino de proceso determinado.A run configuration is a set of instructions that defines how a script should be run in a specified compute target. Esta configuración incluye un amplio conjunto de definiciones de comportamiento como, por ejemplo, si quiere usar un entorno de Python existente o un entorno de Conda creado a partir de la especificación.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.

Una configuración de ejecución puede conservarse en un archivo del directorio que contiene el script de entrenamiento o puede crearse como un objeto en la memoria y usarse para enviar una ejecución.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.

Para ver configuraciones de ejecución de ejemplo, consulte Selección y uso de un destino de proceso para entrenar el modelo.For example run configurations, see Select and use a compute target to train your model.

InstantáneasSnapshots

Al enviar una ejecución, Azure Machine Learning comprime el directorio que contiene el script como un archivo zip y lo envía al destino de proceso.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. A continuación, el archivo .zip se extrae y el script se ejecuta.The zip file is then extracted, and the script is run there. Azure Machine Learning también almacena el archivo .zip como una instantánea como parte del registro de ejecución.Azure Machine Learning also stores the zip file as a snapshot as part of the run record. Cualquier persona con acceso al área de trabajo puede buscar un registro de ejecución y descargar la instantánea.Anyone with access to the workspace can browse a run record and download the snapshot.

Nota

Para evitar que se incluyan archivos innecesarios en la instantánea, cree un archivo ignore (.gitignore o .amlignore).To prevent unnecessary files from being included in the snapshot, make an ignore file (.gitignore or .amlignore). Ubique este archivo en el directorio de instantáneas y agréguele los nombres de archivo que se deben ignorar.Place this file in the Snapshot directory and add the filenames to ignore in it. El archivo .amlignore usa la misma sintaxis y los mismos patrones que el archivo .gitignore.The .amlignore file uses the same syntax and patterns as the .gitignore file. Si ambos archivos existen, el archivo .amlignore tiene prioridad.If both files exist, the .amlignore file takes precedence.

Scripts de entrenamientoTraining scripts

Para entrenar un modelo, especifique el directorio que contiene el script de entrenamiento y los archivos asociados.To train a model, you specify the directory that contains the training script and associated files. También puede especificar un nombre del experimento que se usará para almacenar la información recopilada durante el entrenamiento.You also specify an experiment name, which is used to store information that's gathered during training. Durante dicho proceso de entrenamiento, se copia todo el directorio en el entorno de entrenamiento (destino de proceso) y se inicia el script que especifique la configuración de ejecución.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. También se almacena una instantánea del directorio en el experimento del área de trabajo.A snapshot of the directory is also stored under the experiment in the workspace.

Si quiere ver un ejemplo, consulte Tutorial: Entrenamiento de un modelo de clasificación de imágenes con Azure Machine Learning.For an example, see Tutorial: Train an image classification model with Azure Machine Learning.

Áreas de trabajoWorkspaces

El área de trabajo es el recurso de nivel superior de Azure Machine Learning.The workspace is the top-level resource for Azure Machine Learning. Proporciona un lugar centralizado para trabajar con todos los artefactos que cree al usar Azure Machine Learning.It provides a centralized place to work with all the artifacts you create when you use Azure Machine Learning. Puede compartir un área de trabajo con otros usuarios.You can share a workspace with others. Para una descripción detallada de las áreas de trabajo, consulte ¿Qué es un área de trabajo de Azure Machine Learning?For a detailed description of workspaces, see What is an Azure Machine Learning workspace?.

Pasos siguientesNext steps

Para una introducción a Azure Machine Learning, consulte:To get started with Azure Machine Learning, see: