Model types
En esta sección, repasamos los tipos de modelos de IA disponibles en MindsDB. Estos son modelos de regresión, modelos de clasificación, modelos de series temporales y modelos de lenguaje de gran tamaño (LLMs).
Descargo de responsabilidad
En esta sección, describimos el comportamiento predeterminado utilizando el motor de ML Lightwood para modelos de regresión, clasificación y series temporales. Otros manejadores de ML pueden comportarse de manera diferente. Por ejemplo, algunos pueden no realizar la validación automáticamente al crear un modelo, ya que numerosos comportamientos son específicos del manejador.
¿Qué es un modelo de IA?
Un modelo de aprendizaje automático (ML) es un programa entrenado utilizando los datos disponibles para aprender a reconocer patrones y comportamientos para predecir datos futuros. Existen varios tipos de modelos de IA que utilizan diferentes paradigmas de aprendizaje, pero los modelos de MindsDB son todos supervisados porque aprenden de pares de datos de entrada y salida esperada.
Ingresas datos en un modelo de IA. Este procesa estos datos de entrada, buscando patrones y correlaciones. Después de eso, el modelo de IA devuelve datos de salida definidos en base a los datos de entrada.
Características
Las características son variables que un modelo de IA utiliza como datos de entrada para buscar patrones y predecir la variable objetivo. En conjuntos de datos tabulares, las características generalmente corresponden a columnas individuales.
Objetivo
El objetivo es una variable de interés que un modelo de IA predice basándose en la información extraída de las características.
Conjunto de datos de entrenamiento
El conjunto de datos de entrenamiento se utiliza durante la fase de entrenamiento de un modelo de IA. Contiene tanto variables de características como una variable objetivo. Como su nombre indica, se utiliza para entrenar un modelo de IA.
El modelo de IA toma todo el conjunto de datos de entrenamiento como entrada. Aprende los patrones y relaciones entre las variables de características y los valores objetivo.
Una vez que se completa el proceso de entrenamiento, se puede pasar a la fase de validación.
Conjunto de datos de validación
El conjunto de datos de validación se utiliza durante la fase de validación de un modelo de IA. Contiene tanto variables de características como una variable objetivo, al igual que el conjunto de datos de entrenamiento. Pero como su nombre indica, se utiliza para validar las predicciones realizadas por un modelo de IA. No tiene superposición con el conjunto de datos de entrenamiento, ya que es un conjunto reservado para simular un escenario real donde el modelo genera predicciones para nuevos datos de entrada.
El modelo de IA toma solo las variables de características del conjunto de datos de validación como entrada. Basándose en lo que el modelo aprende durante el proceso de entrenamiento, hace predicciones para los valores de una variable objetivo.
Ahora viene el paso de validación. Para evaluar la precisión del modelo de IA, se comparan los valores de la variable objetivo del conjunto de datos de validación con los valores de la variable objetivo predichos por el modelo de IA. Cuanto más cercanos sean estos valores entre sí, mejor será la precisión del modelo de IA.
Conjunto de datos de entrada
Después de completar las fases de entrenamiento y validación, se puede proporcionar el conjunto de datos de entrada que consiste solo en las variables de características para predecir los valores de la variable objetivo.
¿Cómo se crea un modelo de IA?
En MindsDB, usamos la declaración CREATE MODEL para crear, entrenar y validar un modelo.
Fase de entrenamiento
Veamos nuestro conjunto de datos de entrenamiento. Contiene tanto características como un objetivo.
Al ejecutar, obtenemos:
Aquí, las características son companyId
, jobType
, degree
, major
, industry
, yearsExperience
, y milesFromMetropolis
.
Y la variable objetivo es salary
.
Vamos a crear y entrenar un modelo de IA usando este conjunto de datos de entrenamiento.
Al ejecutar, obtenemos:
Progreso
Así es como se verifica si el proceso de entrenamiento está completado:
Una vez que el estado es complete
, la fase de entrenamiento está completada.
Fase de validación
Por defecto, la declaración CREATE MODEL
realiza la validación del modelo.
Además, podemos validar el modelo manualmente consultándolo y proporcionando los valores de las características en la cláusula WHERE
de esta manera:
Al ejecutar, obtenemos:
Comparando los valores reales de salario para los individuos definidos y los valores de salario predichos, se puede determinar la precisión del modelo de IA.
Ten en cuenta que MindsDB calcula la precisión del modelo por defecto al ejecutar la declaración CREATE MODEL
. Sin embargo, no se garantiza que todos los motores de ML hagan esto.
Por defecto, la declaración CREATE MODEL
hace lo siguiente:
- crea un modelo,
- divide los datos de entrada en conjuntos de datos de entrenamiento y validación,
- entrena un modelo usando el conjunto de datos de entrenamiento,
- valida un modelo usando el conjunto de datos de validación,
- compara los valores verdaderos y predichos de un objetivo para definir la precisión del modelo.
Veamos los tipos básicos de modelos de IA.
Tipos de modelos de IA
Modelos de regresión
La regresión es un tipo de modelado predictivo que analiza datos de entrada, incluyendo relaciones entre variables dependientes e independientes y la variable objetivo que se va a predecir.
En el caso de los modelos de regresión, la variable objetivo pertenece a un conjunto de valores continuos. Por ejemplo, teniendo datos sobre bienes raíces, como el número de habitaciones, ubicación y precio de alquiler, se puede predecir el precio de alquiler usando regresión. El precio de alquiler se predice basándose en los datos de entrada, y su valor es cualquier valor de un rango entre los valores mínimo y máximo de precio de alquiler de los datos de entrenamiento.
Ejemplo
Primero, veamos nuestros datos de entrada.
Al ejecutar, obtenemos:
Aquí, las características son number_of_rooms
, number_of_bathrooms
, sqft
, location
, days_on_market
, y neighborhood
.
Y la variable objetivo es rental_price
.
Vamos a crear y entrenar un modelo de IA.
Al ejecutar, obtenemos:
Una vez que el proceso de entrenamiento está completado, podemos consultar para obtener predicciones.
Al ejecutar, obtenemos:
Para más detalles, consulta este tutorial.
Modelos de clasificación
La clasificación es un tipo de modelado predictivo que analiza datos de entrada, incluyendo relaciones entre variables dependientes e independientes y la variable objetivo que se va a predecir.
En el caso de los modelos de clasificación, la variable objetivo pertenece a un conjunto de valores discretos. Por ejemplo, teniendo datos sobre cada cliente de una compañía de telecomunicaciones, se puede predecir la posibilidad de abandono usando clasificación. El abandono se predice basándose en los datos de entrada, y su valor es ya sea Yes
o No
. Este es un caso especial llamado clasificación binaria.
Ejemplo
Primero, veamos nuestros datos de entrada.
Al ejecutar, obtenemos:
Aquí, las características soncustomerid
,gender
,seniorcitizen
,partner
,dependents
,tenure
,phoneservice
,multiplelines
,internetservice
,onlinesecurity
,onlinebackup
,deviceprotection
,techsupport
,streamingtv
,streamingmovies
,contract
,paperlessbilling
,paymentmethod
,monthlycharges
, ytotalcharges
.
Y la variable objetivo eschurn
.
Vamos a crear y entrenar modelos de IA.
Al ejecutar, obtenemos:
Una vez que se completa el proceso de entrenamiento, podemos consultar para obtener predicciones.
Al ejecutar, obtenemos:
Para más detalles, consultaeste tutorial.
Modelos de Series Temporales
Los modelos de series temporales caen en la categoría de regresión o clasificación. Pero lo que los distingue es que ordenamos los datos por fecha, hora o cualquier valor que defina el orden secuencial de los eventos. Usualmente, las predicciones hechas por modelos de series temporales se denominanpronósticos.
Un modelo de series temporales predice un objetivo que proviene de un conjunto continuo (regresión) o un conjunto discreto (clasificación).
Hay una cláusula obligatoriaORDER BY
seguida de una columna secuencial, como una fecha. Ordena todas las filas en consecuencia.
Si quieres agrupar tus predicciones, hay una cláusula opcionalGROUP BY
. Al seguir esta cláusula con un nombre de columna, o múltiples nombres de columnas, se pueden hacer predicciones para particiones de datos definidas por estas columnas.
En el caso de los modelos de series temporales, se debe definir cuántas filas de datos se utilizan para entrenar el modelo. La cláusulaWINDOW
seguida de un número entero hace precisamente eso.
Hay una cláusula opcionalHORIZON
donde puedes definir cuántas filas, o qué tan lejos en el futuro, quieres predecir. Por defecto, es uno.
Ejemplo
Primero, veamos nuestros datos de entrada.
Al ejecutar, obtenemos:
Aquí, las características sonsaledate
,type
, ybedrooms
.
Y la variable objetivo esma
.
Vamos a crear y entrenar modelos de IA.
Al ejecutar, obtenemos:
Una vez que se completa el proceso de entrenamiento, podemos consultar para obtener predicciones.
Al ejecutar, obtenemos:
Para más detalles, consultaeste tutorial.
Modelos de Lenguaje Grande
Los modelos de lenguaje grande son sistemas avanzados de inteligencia artificial diseñados para procesar y generar lenguaje similar al humano. Estos modelos aprovechan técnicas de aprendizaje profundo, como las arquitecturas de transformadores, para analizar grandes cantidades de datos de texto y aprender patrones y relaciones complejas dentro del lenguaje.
Los modelos de lenguaje grande tienen aplicaciones en chatbots, generación de contenido, traducción de idiomas, análisis de sentimientos y diversas tareas de procesamiento del lenguaje natural.
Ejemplo
Consulta ejemplos aquí:
Cómo Funciona en el Fondo
MindsDB utiliza el motor ML Lightwood por defecto. Esta sección examina más de cerca cómo este paquete elige automáticamente qué tipo de modelo usar.
Los modelos en Lightwood siguen un patrón de codificador-mezclador-decodificador, donde las representaciones refinadas, o codificadas, de todas las características se mezclan para producir predicciones objetivo. Aquí estánlos mezcladores utilizados por Lightwood.
Ten en cuenta que hay un paso de ensamblaje después de entrenar todos los mezcladores en caso de que se utilicen múltiples mezcladores. Sigue leyendo para saber más.
Para darte algunos detalles sobre cómo MindsDB crea un modelo usando diferentes mezcladores, aquí estáel código completo.
Y aquí viene el desglose:
- Estefragmento de códigoañade mezcladores al array
submodels
dependiendo del tipo de modelo y el tipo de datos de la variable objetivo. - Yaquí, elegimos el mejor de los submodelos para ser utilizado para crear, entrenar y validar nuestros modelos de IA.
Profundicemos en los detalles de cómo MindsDB elige los mezcladores.
Aquí está elfragmento de códigoque se está analizando.
Si tratamos con un par simple de codificador/decodificador realizando la tarea, usamos el mezcladorUnitque puede considerarse como un mezclador de bypass.
Un buen ejemplo es elmodelo Clasificador de Spam de Hugging Faceporque utiliza una sola columna como entrada.
De lo contrario, elegimos entre una gama de otros mezcladores dependiendo de las siguientes condiciones:
-
Si no es un caso de series temporales, usamos el mezcladorNeural. Un buen ejemplo es elmodelo de Abandono de Clientes.
-
Si es un caso de series temporales, usamos el mezcladorNeuralTs. Un buen ejemplo es elmodelo de Ventas de Casas.
Aquí está elfragmento de códigoque se está analizando.
Si tratamos con un par simple de codificador/decodificador realizando la tarea, usamos el mezcladorUnitque puede considerarse como un mezclador de bypass.
Un buen ejemplo es elmodelo Clasificador de Spam de Hugging Faceporque utiliza una sola columna como entrada.
De lo contrario, elegimos entre una gama de otros mezcladores dependiendo de las siguientes condiciones:
-
Si no es un caso de series temporales, usamos el mezcladorNeural. Un buen ejemplo es elmodelo de Abandono de Clientes.
-
Si es un caso de series temporales, usamos el mezcladorNeuralTs. Un buen ejemplo es elmodelo de Ventas de Casas.
Aquí está elfragmento de códigoque se está analizando.
Si no es un caso de series temporales, o es un caso de series temporales con el valor HORIZON siendo uno, y el tipo de variable objetivo no es un array de valores, usamos los mezcladoresLightGBM,XGBoostMixer,Regression, yRandomForest.
Un buen ejemplo es elmodelo de Alquileres de Casas.
De lo contrario, si es un caso de series temporales y el valor HORIZON es mayor que uno, usamos el mezcladorLightGBMArray.
Un buen ejemplo es elmodelo de Ventas de Casas.
Aquí está elfragmento de código siendo analizado.
Si es un caso autorregresivo y el tipo de objetivo es un entero, flotante o cantidad, usamos los SkTime, ETSMixer, y ARIMAMixer mixers.
El caso autorregresivo significa que usamos los valores objetivo (como características codificadas) de tantas filas anteriores como se define en la WINDOW
cláusula.
Un buen ejemplo es el Home Rentals model.
MindsDB puede usar uno o múltiples mixers mientras prepara un modelo. Dependiendo del tipo de modelo y el tipo de datos de la variable objetivo, se elige un mixer o se ensambla un conjunto de mixers para crear, entrenar y validar modelos de IA.
Los tres casos anteriores describen cómo MindsDB elige los candidatos a mixer y los almacena en el submodels
array.
Por defecto, después de entrenar todos los mixers relevantes en el submodels
array, MindsDB usa el BestOf ensemble para seleccionar el mejor mixer como el modelo final.
Pero siempre puedes usar un ensemble diferente que puede agregar múltiples mixers por modelo, como el MeanEnsemble, ModeEnsemble, StackedEnsemble, TsStackedEnsemble, o WeightedMeanEnsemble tipo de ensemble. Aquí, encontrarás implementaciones de todos los tipos de ensemble.
Próximos Pasos
A continuación se encuentran los enlaces para ayudarte a explorar más.