Automatizar el entrenamiento del modelo con la CLI de ML.NET
Artículo
La CLI de ML.NET automatiza la generación de modelos para desarrolladores de .NET.
Para usar la API de ML.NET por sí misma (sin la CLI de AutoML de ML.NET) debe elegir un instructor (implementación de un algoritmo de aprendizaje automático para una tarea determinada) y el conjunto de transformaciones de datos (ingeniería de características) para aplicar a los datos. La canalización óptima puede variar para cada conjunto de datos y seleccionar el algoritmo óptimo entre todas las opciones agrega complejidad. Aún más, cada algoritmo tiene un conjunto de hiperparámetros que se deben optimizar. Por lo tanto, puede ahorrar semanas y a veces meses en la optimización del modelo de Machine Learning intentando encontrar las mejores combinaciones de ingeniería de características, algoritmos de aprendizaje e hiperparámetros.
La CLI de ML.NET simplifica este proceso mediante el aprendizaje automático automatizado (AutoML).
Nota
En este artículo se hace referencia a la CLI de ML.NET y AutoML de ML.NET, que se encuentran actualmente en versión preliminar, y el material puede estar sujeto a cambios.
¿Qué es la herramienta de la interfaz de la línea de comandos (CLI) de ML.NET?
La CLI de ML.NET es una herramienta de .NET. Una vez instalada, se proporciona una tarea de aprendizaje automático y un conjunto de datos de entrenamiento, y genera un modelo de ML.NET, así como el código de C# que se va a ejecutar para usar el modelo en la aplicación.
Tal y como se muestra en la siguiente imagen, es fácil generar un modelo de ML.NET de alta calidad (archivo .zip del modelo serializado) además del código de C# de ejemplo para ejecutar o calificar dicho modelo. Además, el código de C# para crear o entrenar dicho modelo también se genera automáticamente para que pueda investigar e iterar en el algoritmo y la configuración que se usan para ese "mejor modelo" generado.
Puede generar dichos recursos desde sus propios conjuntos de datos sin necesidad de codificarlos usted, lo cual mejora también su productividad incluso si ya conoce ML.NET.
Actualmente, las tareas de Machine Learning compatibles con la CLI de ML.NET son:
clasificación
Regresión
recomendación
clasificación de imágenes
pronóstico
entrenar
La CLI de ML.NET se puede instalar en función del sistema operativo y su arquitectura con el siguiente comando:
dotnet tool install --global mlnet-<OS>-<ARCH>
Por ejemplo, la versión x64 de Windows se puede instalar con:
También hay un comando en el que puede entrenar mediante un archivo mbconfig. El archivo mbconfig se crea al iniciar una sesión de Model Builder.
Se puede ejecutar de la misma manera en Windows PowerShell, macOS/Linux bash o Windows CMD. Sin embargo, Autocompletar tabular (sugerencias de parámetro) no funcionará en Windows CMD.
Recursos de salida generados
Los comandos de tarea de ML de la CLI generan los siguientes recursos en la carpeta de salida:
Solución de C# con:
Una aplicación de consola para ejecutar o calificar dicho modelo generado (para realizar predicciones en las aplicaciones del usuario final con ese modelo).
Una consola de aplicación con el código de entrenamiento utilizado para generar ese modelo (con fines de aprendizaje o posibilidad de volver a entrenar el modelo).
Este modelo serializado ("mejor modelo") también se proporciona en forma de archivo .zip comprimido que está listo para usarse para ejecutar predicciones.
Un archivo mbconfig, que contiene datos de configuración que le permiten abrir el modelo en Model Builder.
Archivo de registro con información de todas las iteraciones o barridos en varios algoritmos evaluados, incluida su canalización o configuración detallada.
Los dos primeros recursos se pueden usar directamente en las aplicaciones de usuario final (por ejemplo, aplicaciones web, servicios y aplicaciones de escritorio de ASP.NET Core) para realizar predicciones con ese modelo de aprendizaje automático generado.
El tercer recurso, el código de aprendizaje, le muestra el código de la API de ML.NET que utilizó la CLI para entrenar el modelo generado, de modo que pueda volver a entrenar el modelo e investigar e iterar en qué hiperparámetros y algoritmos o instructores específicos seleccionó la CLI y AutoML en el interior.
Descripción de la calidad del modelo
Al generar un "modelo mejor" con la herramienta de la CLI, verá métricas de calidad (como precisión y R cuadrado) según corresponda a la tarea de ML que tiene como destino.
Aquí se resumen esas métricas agrupadas por tareas de ML para que pueda comprender la calidad de su "mejor modelo" autogenerado.
Métricas para modelos de clasificación
En la imagen siguiente se muestra la lista de métricas de clasificación para los cinco modelos principales encontrados por la CLI:
La precisión es una métrica popular en los problemas de clasificación, pero no siempre es la mejor métrica para seleccionar el mejor modelo, tal y como se explica en las siguientes referencias. Hay casos donde es necesario evaluar la calidad del modelo con métricas adicionales.
Métricas para modelos de regresión y recomendación
Un modelo de regresión se ajusta bien a los datos si las diferencias entre los valores observados y los valores de predicción del modelo son pequeñas y no están sesgadas. La regresión se puede evaluar con determinadas métricas.
Verá una lista similar de métricas para los cinco modelos de calidad principales encontrados por la CLI, pero en este caso, están relacionados con una tarea de ML de regresión:
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Administre la ingesta y preparación de datos, el entrenamiento y la implementación de modelos, y la supervisión de soluciones de aprendizaje automático con Python, Azure Machine Learning y MLflow.
En este tutorial se muestra cómo crear un modelo de regresión mediante ML.NET Generador de modelos para predecir precios, en concreto, tarifas de taxi de la ciudad de Nueva York.
ML.NET ofrece la capacidad de agregar aprendizaje automático a aplicaciones .NET, en escenarios en línea o sin conexión. Con esta funcionalidad, puede realizar predicciones automáticas mediante los datos disponibles para la aplicación sin tener que conectarse a una red para usar ML.NET. En este artículo se explican los conceptos básicos del aprendizaje automático en ML.NET.
Aprenda a usar ML.NET de código abierto para crear modelos de aprendizaje automático personalizados e integrarlos en aplicaciones. Tutoriales, ejemplos de código y mucho más le muestran cómo hacerlo.
En este tutorial se muestra cómo crear una aplicación Razor Pages que clasifica los sentimientos de los comentarios del sitio web y toma las medidas oportunas. La clasificación usa el escenario de clasificación de texto de la extensión Model Builder de Visual Studio.