Automatizar el entrenamiento del modelo con la CLI de ML.NET
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:
dotnet tool install --global mlnet-win-x64
Para más información, consulte la guía paso a paso Instalación de la CLI de ML.NET.
Ejemplo de uso (escenario de clasificación):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10
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.
Para explorar y comprender las métricas que son el resultado de la CLI, consulte Métricas de evaluación de clasificación.
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:
Para explorar y comprender las métricas que son el resultado de la CLI, consulte Métricas de evaluación de regresión.