¿Qué es un componente de Azure Machine Learning?

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

Un componente de Azure Machine Learning es un fragmento de código independiente que realiza un paso en una canalización de aprendizaje automático. Un componente es análogo a una función: tiene un nombre, entradas, salidas y un cuerpo. Los componentes son los bloques de creación de las canalizaciones de Azure Machine Learning.

Un componente consta de tres partes:

  • Metadatos: nombre, display_name (nombre para mostrar), versión, tipo, etc.
  • Interfaz: especificaciones de entrada/salida (nombre, tipo, descripción, valor predeterminado, etc.).
  • Comando, código y entorno: el comando, el código y el entorno necesarios para ejecutar el componente.

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

Motivos por los que usar un componente

Es un procedimiento recomendado de ingeniería compilar una canalización de aprendizaje automático para dividir una tarea de este tipo en un flujo de trabajo de varios pasos. De este modo, todos pueden trabajar de forma independiente en el paso específico. En Azure Machine Learning, un componente representa un paso reutilizable en una canalización. Los componentes están diseñados para ayudar a mejorar la productividad de la compilación de canalizaciones. En concreto, los componentes ofrecen:

  • Interfaz bien definida: los componentes requieren una interfaz bien definida (entrada y salida). La interfaz permite al usuario crear pasos y conectarlos fácilmente. La interfaz también oculta la compleja lógica de un paso y elimina la carga de entender cómo implementarlo.

  • Uso compartido y reutilización: como bloques de creación de una canalización, los componentes se pueden compartir y reutilizar fácilmente entre canalizaciones, áreas de trabajo y suscripciones. Los componentes creados por un equipo se pueden detectar y usar por otro.

  • Control de versiones: los componentes tienen versiones. Los productores de componentes pueden seguir mejorándolos y publicar nuevas versiones. Los consumidores pueden usar en sus canalizaciones versiones de componentes específicas. Esto les proporciona compatibilidad y reproducibilidad.

Prueba unitaria: un componente es un fragmento de código independiente. Es fácil escribir pruebas unitarias para un componente.

Componente y canalización

Una canalización de aprendizaje automático es el flujo de trabajo para una tarea de aprendizaje automático completa. Los componentes son los bloques de creación de la canalización de Azure Machine Learning. Cuando piense en un componente, debe se en el contexto de la canalización.

Para compilar componentes, lo primero es definir la canalización de aprendizaje automático. Esto requiere dividir la tarea de aprendizaje automático completa en un flujo de trabajo de varios pasos. Cada paso es un componente. Por ejemplo, al tener en cuenta una tarea de aprendizaje automático simple que consista en usar datos históricos para entrenar un modelo de previsión de ventas, puede que quiera compilar un flujo de trabajo secuencial con pasos de procesamiento de datos, entrenamiento de modelos y evaluación de modelos. En el caso de las tareas complejas, es posible que quiera desglosarlas aún más. Por ejemplo, divida un solo paso de procesamiento de datos en pasos de ingesta, limpieza y preprocesamiento de datos y pasos de ingeniería de características.

Una vez definidos los pasos del flujo de trabajo, lo siguiente es especificar cómo se conecta cada uno en la canalización. Por ejemplo, para conectar el paso de procesamiento de datos y el paso de entrenamiento del modelo, puede definir un componente de procesamiento para generar una carpeta que contenga los datos procesados. Un componente de entrenamiento toma una carpeta como entrada y genera otra que contiene el modelo entrenado. Estas entradas y definiciones de salidas se convertirán en parte de la definición de la interfaz del componente.

Ahora, es el momento de desarrollar el código de ejecución de un paso. Puede usar los lenguajes preferidos (Python, R, etc.). Un comando de shell debe poder ejecutar el código. Durante el desarrollo, es posible que quiera agregar algunas entradas para controlar cómo se va a ejecutar este paso. Por ejemplo, para un paso de entrenamiento, puede agregar velocidad de aprendizaje, número de épocas como entradas para controlar el entrenamiento. Estas entradas adicionales, además de las entradas y salidas necesarias para conectarse con otros pasos, son la interfaz del componente. El argumento de un comando de shell se usa para pasar al código entradas y salidas. Es necesario especificar el entorno para ejecutar el comando y el código. El entorno podría ser un entorno mantenido de Azure Machine Learning, una imagen de Docker o un entorno de Conda.

Por último, puedes empaquetar todo, incluyendo el código, el cmd, el entorno, la entrada, la salida y los metadatos, en un componente. A continuación, conecta juntos estos componentes para compilar canalizaciones del flujo de trabajo de aprendizaje automático. Un componente se puede usar en varias canalizaciones.

Para obtener más información sobre cómo compilar un componente, consulte:

Pasos siguientes