Recursos de entrenamiento de Azure sobre el generador de modelos
A continuación le mostramos una guía para obtener más información sobre los recursos usados para entrenar modelos en Azure con el generador de modelos.
¿Qué es un experimento de Azure Machine Learning?
Un experimento de Azure Machine Learning es un recurso que debe crearse antes de ejecutar el entrenamiento del generador de modelos en Azure.
El experimento encapsula la configuración y los resultados de una o más ejecuciones de entrenamiento de aprendizaje automático. Los experimentos pertenecen a un área de trabajo específica. La primera vez que se crea un experimento, su nombre se registra en el área de trabajo. Todas las ejecuciones posteriores: si se usa el mismo nombre de experimento, se registran como parte del mismo experimento. De lo contrario, se crea un nuevo experimento.
¿Qué es un área de trabajo de Azure Machine Learning?
Un área de trabajo es un recurso de Azure Machine Learning que proporciona una ubicación central para todos los artefactos y recursos de Azure Machine Learning creados como parte de la ejecución de entrenamiento.
Para crear un área de trabajo de Azure Machine Learning, es necesario lo siguiente:
- Nombre: un nombre para el área de trabajo, de entre 3 y 33 caracteres. Los nombres solo pueden contener caracteres alfanuméricos y guiones.
- Región: ubicación geográfica del centro de datos en el que se implementan el área de trabajo y los recursos. Se recomienda que elija una ubicación cercana a donde se encuentren usted o sus clientes.
- Grupo de recursos: un contenedor que aúna todos los recursos relacionados de una solución de Azure.
¿Qué es un proceso de Azure Machine Learning?
Un proceso de Azure Machine Learning es una máquina virtual Linux basada en la nube que se usa para el entrenamiento.
Para crear un proceso de Azure Machine Learning, es necesario lo siguiente:
Nombre: un nombre para el proceso, de entre 2 y 16 caracteres. Los nombres solo pueden contener caracteres alfanuméricos y guiones.
Tamaño de proceso
El generador de modelos puede usar uno de los siguientes tipos de proceso optimizados para GPU:
Tamaño vCPU Memoria: GiB GiB de almacenamiento temporal (SSD) GPU Memoria de GPU: GiB Discos de datos máx. Nº máx. NIC Standard_NC12 12 112 680 2 24 48 2 Standard_NC24 24 224 1440 4 48 64 4 Consulte la documentación de máquinas virtuales Linux de la serie NC para obtener más detalles sobre los tipos de proceso optimizados para GPU.
Prioridad de proceso
- Prioridad baja: adecuada para tareas con un tiempo de ejecución menor. Puede verse afectada por interrupciones y falta de disponibilidad. Normalmente cuesta menos, ya que aprovecha el excedente de capacidad de Azure.
- Dedicada: adecuada para tareas de cualquier duración, pero especialmente trabajos de larga ejecución. No se ve afectada por interrupciones ni falta de disponibilidad. Normalmente cuesta más, ya que reserva un conjunto dedicado de recursos de proceso en Azure para sus tareas.
Aprendizaje
El entrenamiento en Azure solo está disponible para el escenario de clasificación de imágenes del generador de modelos. El algoritmo usado para entrenar estos modelos es una red neuronal profunda basada en la arquitectura ResNet50. El proceso de entrenamiento tarda algún tiempo, y la duración puede variar en función del tamaño del proceso seleccionado, así como de la cantidad de datos. Puede realizar un seguimiento del progreso de las ejecuciones seleccionando el vínculo "Supervisar la ejecución actual en el portal de Azure" en Visual Studio.
Resultados
Una vez completado el entrenamiento, se agregan dos proyectos a la solución con los siguientes sufijos:
ConsoleApp: una aplicación de consola de C# que proporciona código de inicio para compilar la canalización de predicción y realizar predicciones.
Modelo: una aplicación de .NET Standard de C# que contiene los modelos de datos que definen el esquema de datos del modelo de entrada y salida, así como los siguientes recursos:
- bestModel.onnx: versión serializada del modelo en formato Open Neural Network Exchange (ONNX). ONNX es un formato de código abierto para modelos de IA que admite la interoperabilidad entre marcos como ML.NET, PyTorch y TensorFlow.
- bestModelMap.json: lista de categorías utilizadas al crear predicciones para asignar la salida del modelo a una categoría de texto.
- MLModel.zip: versión serializada de la canalización de predicción de ML.NET que usa la versión serializada del modelo bestModel.onnx para hacer predicciones y salidas de asignaciones mediante el archivo
bestModelMap.json
.
Uso del modelo de aprendizaje automático
Las clases ModelInput
y ModelOutput
del proyecto Model definen el esquema de entrada y salida esperadas del modelo, respectivamente.
En un escenario de clasificación de imágenes, ModelInput
contiene dos columnas:
ImageSource
: ruta de acceso de la cadena de la ubicación de la imagen.Label
: categoría a la que pertenece la imagen.Label
solo se usa como entrada cuando se realiza el entrenamiento y no es necesario proporcionarlo al realizar predicciones.
ModelOutput
contiene dos columnas:
Prediction
: categoría de predicción de la imagen.Score
: lista de probabilidades para todas las categorías (la mayor pertenece aPrediction
).
Solución de problemas
No se puede crear el proceso
Si se produce un error durante la creación de un proceso de Azure Machine Learning, el recurso de proceso puede seguir existiendo en un estado de error. Si intenta volver a crear el recurso de proceso con el mismo nombre, se produce un error en la operación. Para corregir este error, hay dos posibilidades:
- Crear un nuevo proceso con otro nombre
- Ir a Azure Portal y quitar el recurso de proceso original