Use ML.NET Model Builder en Visual Studio para entrenar y usar su primer modelo de Machine Learning con ML.NET.
Instale la CLI de ML.NET y, a continuaci贸n, entrene y use su primer modelo de Machine Learning con ML.NET.
Ninguna.
macOS 10.15 o versiones posteriores.
10 minutos + tiempo de descarga/instalaci贸n
Una aplicaci贸n que puede predecir si el texto de las opiniones de los clientes es negativo o positivo.
Descargar e instalar Visual Studio 2022.
Durante la instalaci贸n, se debe seleccionar la carga de trabajo Desarrollo de escritorio de .NET junto con el componente de ML.NET Model聽Builder opcional. El uso del v铆nculo anterior debe preseleccionar todos los requisitos previos correctamente, como se muestra en la siguiente imagen:
Si ya tiene Visual Studio 2022, puede agregar la carga de trabajo de desarrollo de escritorio de .NET:
Una vez que haya habilitado ML.NET Model Builder en Visual Studio, descargue e instale la versi贸n m谩s reciente.
Descargar la versi贸n m谩s reciente de Model Builder
Este tutorial est谩 optimizado para la 煤ltima versi贸n de Visual Studio. Si ya tiene Visual Studio 2022, puede comprobar si hay actualizaciones:
Para compilar aplicaciones .NET, es necesario descargar e instalar el SDK (kit de desarrollo de software) de .NET聽7.
Descarga del SDK de .NET 7 (64 bits)
Descarga de Arm64
Si est谩 en un equipo Mac con un chip M1 de Apple, debe instalar la versi贸n Arm64 del SDK.
La interfaz de la l铆nea de comandos聽(CLI) ML.NET proporciona herramientas para crear modelos de aprendizaje autom谩tico con ML.NET.
Nota: ML.NET CLI se encuentra actualmente en fase de vista previa.
Una vez que haya instalado el SDK de .NET聽7, abra una nueva terminal y ejecute el siguiente comando si est谩 en un equipo x64:
dotnet tool install -g mlnet-linux-x64
Para arquitecturas de chip ARM64, ejecute el siguiente comando en su lugar:
dotnet tool install -g mlnet-linux-arm64
Si la herramienta se instala con 茅xito, deber铆a ver el siguiente mensaje de salida donde [arch]
es la arquitectura del chip:
You can invoke the tool using the following command: mlnet
Tool 'mlnet-linux-[arch]' (version '16.13.9') was successfully installed.
dotnet tool install -g mlnet-osx-x64
Para arquitecturas de chip ARM64, ejecute el siguiente comando en su lugar:
dotnet tool install -g mlnet-osx-arm64
Si la herramienta se instala con 茅xito, deber铆a ver el siguiente mensaje de salida donde [arch]
es la arquitectura del chip:
You can invoke the tool using the following command: mlnet
Tool 'mlnet-osx-[arch]' (version '16.13.5') was successfully installed.
Nota: si est谩 utilizando una consola distinta de Bash (por ejemplo, zsh, que es la nueva predeterminada para macOS), entonces tendr谩 que conceder permisos de ejecuci贸n a mlnet
e incluir mlnet
en la ruta del sistema. Las instrucciones sobre c贸mo hacer esto deber铆an aparecer en la terminal cuando instala mlnet (o cualquier herramienta global).
Como alternativa, puede intentar usar el siguiente comando para ejecutar la herramienta mlnet:
~/.dotnet/tools/mlnet
Si el comando sigue dando un error, utilice el bot贸n Me encontr茅 con un problema que aparece a continuaci贸n para informar del problema y obtener ayuda para solucionarlo.
Abra Visual Studio y cree una nueva aplicaci贸n de consola .NET:
myMLApp
.Program.cs
.Haga clic con el bot贸n derecho en el proyecto myMLApp
en el Explorador de soluciones y seleccione Agregar > Modelo de aprendizaje autom谩tico.
Cambie el campo Nombre a SentimentModel.mbconfig
y seleccione el bot贸n Agregar.
Un nuevo archivo denominado SentimentModel.mbconfig
se agrega a la soluci贸n y la interfaz de usuario de Model Builder se abre en una nueva ventana de herramientas acoplada en Visual Studio. mbconfig es simplemente un archivo JSON que realiza un seguimiento del estado de la interfaz de usuario.
Model聽Builder le guiar谩 por el proceso de creaci贸n de un modelo de aprendizaje autom谩tico en los pasos siguientes.
En el terminal, ejecute los siguientes comandos:
mkdir myMLApp
cd myMLApp
El comando mkdir
crea un nuevo directorio llamado myMLApp
, y el comando cd myMLApp
le permite un directorio de aplicaciones reci茅n creado.
El c贸digo de entrenamiento del modelo se generar谩 en los pr贸ximos pasos.
Para generar el modelo, primero debe seleccionar el escenario de aprendizaje autom谩tico. Model Builder admite varios escenarios:
Nota: Si las capturas de pantalla del tutorial no coinciden con lo que ve, es posible que necesite actualizar la versi贸n de Model聽Builder. Vaya a Extensiones > Administrar extensiones para asegurarse de que no hay actualizaciones disponibles para Model聽Builder. La versi贸n utilizada en este tutorial es la 16.14.0.
En este caso, predecir谩 su opini贸n en funci贸n del contenido (texto) de las opiniones de los clientes.
En la pantalla de Escenario del Model Builder, seleccione el escenario Clasificaci贸n de datos, ya que est谩 prediciendo en qu茅 categor铆a cae un comentario (positivo o negativo).
Despu茅s de seleccionar el escenario de Clasificaci贸n de datos, debe elegir su entorno de entrenamiento. Aunque algunos escenarios admiten la formaci贸n en Azure, actualmente la clasificaci贸n solo admite la formaci贸n local, as铆 que mantenga seleccionado el entorno Local y siga al paso Datos.
Para generar el modelo, debe seleccionar el escenario de aprendizaje autom谩tico.
Hay varios escenarios de ML compatibles con la CLI de ML.NET:
En este caso, predecir谩 la opini贸n en funci贸n del contenido (texto) de las opiniones de los clientes, por lo que usar谩 clasificaci贸n.
Descargue los conjuntos de datos Sentiment Labelled Sentences del repositorio UCI Machine Learning Repository. Descomprima sentiment labelled sentences.zip
y guarde el archivo yelp_labelled.txt
en el directorio myMLApp
.
Cada fila de yelp_labelled.txt
representa una revisi贸n diferente de un restaurante que deja un usuario en Yelp. La primera columna representa el comentario que deja el usuario y la segunda columna representa la sensaci贸n expresada por el texto (0 es negativo, 1 es positivo). Las columnas est谩n separadas por tabulaciones y el conjunto de datos no tiene encabezado. Los datos tienen un aspecto similar al siguiente:
Wow... Loved this place. 1
Crust is not good. 0
Not tasty and the texture was just nasty. 0
En Model聽Builder, puede agregar datos de un archivo local o conectarse a una base de datos SQL聽Server. En este caso, agregar谩 yelp_labelled.txt
desde un archivo.
Seleccione Archivo como tipo de origen de datos de entrada.
Busque yelp_labelled.txt
. Una vez que seleccione el conjunto de datos, aparecer谩 una vista previa de los datos en la secci贸n Vista previa de datos. Dado que el conjunto de datos no tiene un encabezado, los encabezados se generan autom谩ticamente ("col0" y "col1").
En Columna para predecir (Etiqueta), seleccione "col1". La etiqueta es lo que est谩 pronosticando, que en este caso es el sentimiento que se encuentra en la segunda columna ("col1") del conjunto de datos.
Las columnas que se usan para ayudar a predecir la etiqueta se denominan Caracter铆sticas. Todas las columnas del conjunto de datos adem谩s de la etiqueta se seleccionan autom谩ticamente como Caracter铆sticas. En este caso, la columna de comentario de revisi贸n ("col0") es la columna Caracter铆stica. Puede actualizar las columnas de caracter铆stica y modificar otras opciones de carga de datos en Opciones avanzadas de datos, pero no es necesario para este ejemplo.
Despu茅s de agregar sus datos, vaya al paso Entrenar.
Ahora, entrenar谩 el modelo con el set de datos yelp_labelled.txt
.
Model Builder eval煤a muchos modelos con distintos algoritmos y configuraciones en funci贸n de la cantidad de tiempo de entrenamiento proporcionado para compilar el modelo de mejor rendimiento.
Cambiar el Tiempo de entrenamiento, que es la cantidad de tiempo que le gustar铆a que Model Builder explore varios modelos, a 60 segundos (puede intentar aumentar este n煤mero si no se encuentra ning煤n modelo despu茅s del entrenamiento). Tenga en cuenta que, para conjuntos de datos m谩s grandes, el tiempo de entrenamiento ser谩 m谩s largo. Model Builder ajusta autom谩ticamente el tiempo de entrenamiento en funci贸n del tama帽o del conjunto de datos.
Seleccione Iniciar el entrenamiento para iniciar el proceso de entrenamiento. Una vez iniciado el entrenamiento, puede ver el tiempo restante.
Una vez finalizado el entrenamiento, puede ver un resumen de los resultados del entrenamiento.
Si lo desea, puede ver m谩s informaci贸n sobre la sesi贸n de entrenamiento en la ventana Machine Learning Salida.
Una vez finalizado el entrenamiento del modelo, vaya al paso Evaluar.
En el terminal, ejecute el siguiente comando (en la carpeta myMLApp
):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --name SentimentModel --train-time 60
El comando mlnet classification
se ejecuta ML.NET con AutoML para explorar muchas iteraciones de modelos de clasificaci贸n en la cantidad determinada de tiempo de entrenamiento con distintas combinaciones de transformaciones de datos, algoritmos y opciones de algoritmo y, a continuaci贸n, elige el modelo de mayor rendimiento.
yelp_labelled.txt
como conjunto de datos (internamente, la CLI dividir谩 el conjunto de datos en conjuntos de datos de entrenamiento y de prueba).Mientras la CLI de ML.NET est谩 explorando diferentes modelos, muestra los siguientes datos:
Si lo desea, puede ver m谩s informaci贸n sobre la sesi贸n de entrenamiento en el archivo de registro generado por la CLI.
El paso Evaluar muestra el algoritmo de mejor rendimiento y la mejor precisi贸n, y le permite probar el modelo en la interfaz de usuario.
Puede realizar predicciones en la entrada de ejemplo en la secci贸n Probar el modelo. El cuadro de texto se rellena previamente con la primera l铆nea de datos del conjunto de datos, pero puede cambiar la entrada y seleccionar Predecir para probar diferentes predicciones de opiniones.
En este caso, 0 significa opini贸n negativa y 1 significa opini贸n positiva.
Nota: Si el modelo no est谩 funcionando bien (por ejemplo, si la Precisi贸n es baja o si el modelo solo predice valores "1"), puede intentar agregar m谩s tiempo y entrenar de nuevo. Esta es una muestra que utiliza un conjunto de datos muy peque帽o; para los modelos a nivel de producci贸n, querr谩 agregar muchos m谩s datos y tiempo de entrenamiento.
Despu茅s de evaluar y probar el modelo, pase al paso Consumir.
Despu茅s de que la CLI de ML.NET seleccione el mejor modelo, mostrar谩 el Resumen de entrenamiento, que le muestra un resumen del proceso de exploraci贸n, incluido cu谩ntos modelos se exploraron en el tiempo de entrenamiento dado.
Si bien la CLI de ML.NET genera c贸digo para el modelo de mayor rendimiento, tambi茅n muestra los mejores modelos (hasta 5) con la mayor precisi贸n que encontr贸 en el tiempo de exploraci贸n determinado. Muestra varias m茅tricas de evaluaci贸n para esos modelos superiores, incluidos AUC, AUPRC y F1-score. Para obtener m谩s informaci贸n, consulte M茅tricas de ML.NET.
Una vez completado el entrenamiento, se agregan autom谩ticamente tres archivos como c贸digo subyacente a SentimentModel.mbconfig
:
SentimentModel.zip
: este archivo es el modelo de ML.NET entrenado, que es un archivo ZIP serializado.SentimentModel.consumption.cs
: este archivo contiene las clases de entrada y salida del modelo y un m茅todo Predict
que se puede usar para el uso del modelo.SentimentModel.training.cs
: este archivo contiene la canalizaci贸n de entrenamiento (transformaciones de datos, algoritmos y par谩metros de algoritmo) usada para entrenar el modelo final.En el paso Consumir de Model Builder, se proporciona un fragmento de c贸digo que crea una entrada de ejemplo para el modelo y usa el modelo para realizar una predicci贸n en esa entrada.
Model Builder tambi茅n ofrece Plantillas de proyecto que puede agregar opcionalmente a su soluci贸n. Hay dos plantillas de proyecto (una aplicaci贸n de consola y una API web), ambas consumen el modelo entrenado.
La CLI de ML.NET agrega tanto el modelo de aprendizaje autom谩tico como el c贸digo para entrenar y consumir el modelo, que incluye lo siguiente:
Program.cs
: este archivo contiene c贸digo para ejecutar el modelo.SentimentModel.consumption.cs
: este archivo contiene las clases de entrada y salida del modelo y un m茅todo Predict
que se puede usar para el uso del modelo.SentimentModel.mbconfig
: este archivo es un archivo JSON que mantiene un registro de las configuraciones y resultados de su entrenamiento.SentimentModel.training.cs
: este archivo contiene la canalizaci贸n de entrenamiento (transformaciones de datos, algoritmos y par谩metros de algoritmo) usada para entrenar el modelo final.SentimentModel.zip
: este archivo es el modelo de ML.NET entrenado, que es un archivo ZIP serializado.Para probar el modelo, puede ejecutar la aplicaci贸n de consola para predecir la opini贸n de una sola declaraci贸n con el modelo.
El 煤ltimo paso es consumir el modelo entrenado en la aplicaci贸n del usuario final.
Reemplace el c贸digo Program.cs
en su proyecto myMLApp
con el c贸digo siguiente:
using MyMLApp;
// Add input data
var sampleData = new SentimentModel.ModelInput()
{
Col0 = "This restaurant was wonderful."
};
// Load model and predict output of sample data
var result = SentimentModel.Predict(sampleData);
// If Prediction is 1, sentiment is "Positive"; otherwise, sentiment is "Negative"
var sentiment = result.PredictedLabel == 1 ? "Positive" : "Negative";
Console.WriteLine($"Text: {sampleData.Col0}\nSentiment: {sentiment}");
Ejecutar myMLApp
(seleccionar Ctrl+F5 o Depurar > Iniciar sin depurar). Deber铆a ver la siguiente salida, prediciendo si la declaraci贸n de entrada es positiva o negativa.
La CLI de ML.NET ha generado el modelo entrenado y el c贸digo para usted, por lo que ahora puede utilizar el modelo en aplicaciones .NET (por ejemplo, su aplicaci贸n de consola SentimentModel
) siguiendo estos pasos:
consumeModelApp
.
cd SentimentModel
Abra el Program.cs
en cualquier editor de c贸digo e inspeccione el c贸digo. El c贸digo debe ser similar al siguiente:
using System;
namespace SentimentModel.ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Add input data
SentimentModel.ModelInput sampleData = new SentimentModel.ModelInput()
{
Col0 = @"Wow... Loved this place."
};
// Make a single prediction on the sample data and print results
var predictionResult = SentimentModel.Predict(sampleData);
Console.WriteLine("Using model to make single prediction -- Comparing actual Col1 with predicted Col1 from sample data...\n\n");
Console.WriteLine($"Col0: @{"Wow... Loved this place."}");
Console.WriteLine($"Col1: {1F}");
Console.WriteLine($"\n\nPredicted Col1: {predictionResult.PredictedLabel}\n\n");
Console.WriteLine("=============== End of process, hit any key to finish ===============");
Console.ReadKey();
}
}
}
Ejecute el SentimentModel.ConsoleApp
. Puede hacerlo ejecutando el siguiente comando en la terminal (aseg煤rese de estar en el directorio SentimentModel
):
dotnet run
La salida debe tener un aspecto similar al siguiente:
Using model to make single prediction -- Comparing actual Col1 with predicted Col1 from sample data...
Col0: Wow... Loved this place.
Col1: 1
Predicted Col1: 1
=============== End of process, hit any key to finish ===============
Enhorabuena, ha creado su primer modelo de aprendizaje autom谩tico con ML.NET Model Builder.
Ahora que ya tiene los fundamentos, contin煤e con este m贸dulo de aprendizaje autoguiado en Microsoft Learn, donde utilizar谩 los datos de los sensores para detectar si un dispositivo de fabricaci贸n est谩 roto.
Microsoft Learn: entrenar un modelo de mantenimiento predictivo
Permita que Pranav le presente el concepto de aprendizaje autom谩tico, lo que puede hacer con 茅l y c贸mo empezar con ML.NET:
Es posible que tambi茅n le interese...
Enhorabuena, ha creado su primer modelo de aprendizaje autom谩tico con la CLI de ML.NET.
Ahora que ha usado la CLI de ML.NET para la clasificaci贸n (en concreto, el an谩lisis de sentimiento), puede probar otros escenarios. Pruebe un escenario de regresi贸n (espec铆ficamente la predicci贸n de precios) mediante el conjunto de datos Taxi Fare para seguir creando modelos de ML.NET con la CLI de ML.NET.
Descarga del conjunto de datos de Taxi聽Fare
Permita que Pranav le presente el concepto de aprendizaje autom谩tico, lo que puede hacer con 茅l y c贸mo empezar con ML.NET:
Es posible que tambi茅n le interese...