Share via


Entrenamiento de modelos con Azure Machine Learning (v1)

SE APLICA A:SDK de Python azureml v1

Azure Machine Learning proporciona varias maneras de entrenar los modelos, desde soluciones en las que se da prioridad al código con el SDK hasta soluciones con poco código, como el aprendizaje automático automatizado y el diseñador visual. Use la lista siguiente para determinar el método de entrenamiento adecuado para usted:

  • SDK de Azure Machine Learning para Python: el SDK de Python proporciona varias maneras de entrenar modelos, cada una con distintas funcionalidades.

    Método de entrenamiento Descripción
    Configuración de ejecución Una manera típica de entrenar modelos es usar un script de entrenamiento y una configuración de trabajo. La configuración de ejecución proporciona la información necesaria para configurar el entorno de entrenamiento que se usa para entrenar el modelo. Puede especificar el script de entrenamiento, el destino de proceso y el entorno de Azure Machine Learning en la configuración de ejecución y ejecutar un trabajo de entrenamiento.
    Aprendizaje automático automatizado El aprendizaje automático automatizado el permite entrenar modelos sin un amplio conocimiento de programación ni de ciencia de datos. En el caso de las personas con conocimientos de programación y de ciencia de datos, proporciona una manera de ahorrar tiempo y recursos mediante la automatización de la selección de algoritmos y la optimización de los hiperparámetros. No tiene que preocuparse de definir una configuración de ejecución al usar el aprendizaje automático automatizado.
    Canalización de aprendizaje automático Las canalizaciones no son un método de entrenamiento distinto, sino una manera de definir un flujo de trabajo con pasos modulares y reutilizables, que puede incluir el entrenamiento como parte del flujo de trabajo. Las canalizaciones de aprendizaje automático admiten el uso de aprendizaje automático automatizado y configuración de ejecución para entrenar modelos. Como las canalizaciones no se centran específicamente en el entrenamiento, las razones para usar una canalización son más variadas que los demás métodos de entrenamiento. Por lo general, puede usar una canalización cuando:
    * Quiere programar procesos desatendidos, como trabajos de entrenamiento de larga duración o la preparación de los datos.
    * Use varios pasos coordinados entre ubicaciones de almacenamiento y recursos de proceso heterogéneos.
    * Use la canalización como una plantilla reutilizable para escenarios específicos, como el reentrenamiento o la puntuación por lotes.
    * Haga seguimiento y realice versiones de sus orígenes de datos, entradas y salidas del flujo de trabajo.
    * El flujo de trabajo lo implementan distintos equipos que trabajan en pasos específicos de manera independiente. Luego, los pasos se pueden reunir en una canalización para implementar el flujo de trabajo.
  • Diseñador: el diseñador de Azure Machine Learning proporciona un punto de entrada sencillo al aprendizaje automático para crear una prueba de conceptos o para los usuarios que no tengan mucha experiencia en la codificación. Permite entrenar modelos mediante una interfaz de usuario basada en web de arrastrar y colocar. Puede usar el código de Python como parte del diseño o entrenar modelos sin necesidad de escribir nada de código.

  • CLI de Azure: la CLI de Machine Learning proporciona comandos para tareas comunes con Azure Machine Learning y se usa a menudo para las tareas de script y automatización. Por ejemplo, una vez que haya creado una canalización o un script de entrenamiento, puede usar la CLI de Azure para iniciar un trabajo de entrenamiento según una programación o cuando se actualicen los archivos de datos usados para el entrenamiento. En el caso de los modelos de entrenamiento, proporciona comandos que envían trabajos de entrenamiento. Puede enviar trabajos mediante configuraciones de ejecución o canalizaciones.

Cada uno de estos métodos de entrenamiento puede usar distintos tipos de recursos de proceso para el entrenamiento. En conjunto, estos recursos se conocen como destinos de proceso. Un destino de proceso puede ser una máquina local o un recurso de nube, como una instancia de proceso de Azure Machine Learning, Azure HDInsight o una máquina virtual remota.

SDK de Python

El SDK de Azure Machine Learning para Python permite compilar y ejecutar flujos de trabajo de aprendizaje automático con Azure Machine Learning. Puede interactuar con el servicio desde una sesión de Python interactiva, instancias de Jupyter Notebook, Visual Studio Code u otro IDE.

Configuración de ejecución

Se puede definir un trabajo de entrenamiento genérico con Azure Machine Learning mediante ScriptRunConfig. A continuación, se usa la configuración de ejecución del script junto con los scripts de entrenamiento para entrenar un modelo en un destino de proceso.

Puede empezar con una configuración de ejecución para el equipo local y, a continuación, cambiar a una para un destino de proceso basado en la nube según sea necesario. Al cambiar el destino de proceso, solo se cambia la configuración de ejecución que se usa. Una ejecución también registra información sobre el trabajo de entrenamiento, como las entradas, las salidas y los registros.

Automated Machine Learning

Defina las iteraciones, la configuración de hiperparámetros, la caracterización y otras opciones. Durante el entrenamiento, Azure Machine Learning intenta diferentes algoritmos y parámetros en paralelo. El entrenamiento se detiene una vez que alcanza los criterios de salida definidos.

Sugerencia

Además del SDK de Python, también puede usar el aprendizaje automático automatizado a través de Azure Machine Learning Studio.

Canalización de aprendizaje automático

Las canalizaciones de aprendizaje automático pueden usar los métodos de entrenamiento mencionados anteriormente. Las canalizaciones tienen más que ver con la creación de un flujo de trabajo, por lo que abarcan algo más que solo el entrenamiento de los modelos. En una canalización, puede entrenar un modelo mediante el aprendizaje automático automatizado o las configuraciones de ejecución.

Descripción de lo que ocurre cuando se envía un trabajo de entrenamiento

El ciclo de vida de entrenamiento de Azure consta de los pasos siguientes:

  1. Comprimir los archivos de la carpeta del proyecto y omitir los especificados en .amlignore o .gitignore
  2. Escalar verticalmente el clúster de proceso
  3. Compilar o descargar el Dockerfile en el nodo de proceso
    1. El sistema calcula un valor de hash de:
    2. El sistema utiliza este valor de hash como clave en una búsqueda de la instancia de Azure Container Registry (ACR) del área de trabajo.
    3. Si no la encuentra, busca una coincidencia en la instancia de ACR global.
    4. Si no existe, el sistema genera una imagen (que se almacenará en la memoria caché y se registrará en la instancia de ACR del área de trabajo).
  4. Descargar el archivo de proyecto comprimido en el almacenamiento temporal del nodo de proceso.
  5. Descomprimir el archivo de proyecto.
  6. El nodo de proceso que ejecuta python <entry script> <arguments>.
  7. Guardar registros, archivos de modelo y otros archivos escritos en ./outputs en la cuenta de almacenamiento asociada con el área de trabajo.
  8. Reducir verticalmente el proceso, incluida la eliminación del almacenamiento temporal.

Si elige entrenar en la máquina local ("configurar como ejecución local"), no es necesario usar Docker. Si lo prefiere, puede usar Docker localmente (consulte Configurar de la canalización de ML para ver un ejemplo).

Diseñador de Azure Machine Learning

El diseñador permite entrenar modelos mediante una interfaz de arrastrar y colocar en el explorador web.

Azure CLI

La CLI de Machine Learning es una extensión para la CLI de Azure. Proporciona comandos de la CLI multiplataforma para trabajar con Azure Machine Learning. Por lo general, se usa la CLI para automatizar las tareas, como entrenar un modelo de aprendizaje automático.

Pasos siguientes

Obtenga información acerca de cómo configurar una ejecución de entrenamiento.