Descripción general de la inferencia de modelos
En este documento, se describen los tipos de inferencia que admite BigQuery ML.
La inferencia de aprendizaje automático es el proceso de ejecutar datos en un modelo de aprendizaje automático para calcular un resultado, como una sola puntuación numérica. Este proceso también se conoce como “poner en funcionamiento un modelo de aprendizaje automático” o “poner en producción un modelo de aprendizaje automático”.
La inferencia de aprendizaje automático en BigQuery ML incluye tareas de aprendizaje automático como las siguientes:
- Predicción
- Previsión
- Recomendación
- Detección de anomalías
- Visión artificial
- Traducción automática
- Procesamiento de lenguaje natural
Para obtener información sobre los tipos de modelos compatibles y las funciones de SQL para cada tipo de inferencia, consulta el Recorrido de usuario de extremo a extremo de cada modelo.
Predicción
En las siguientes secciones, se describen las formas disponibles de realizar predicciones en BigQuery ML.
Inferencia con modelos entrenados de BigQuery ML
La predicción en BigQuery ML se usa no solo para los modelos de aprendizaje supervisado, sino también para los modelos de aprendizaje no supervisado. Se usa solo para modelos entrenados con datos independientes e idénticamente distribuidos (IID). Para los datos de series temporales que no son ID, se usa el término previsión. Consulta la sección Previsión a continuación.
BigQuery ML admite las funcionalidades de predicción a través de la función ML.PREDICT
con los siguientes modelos:
Categoría del modelo | Tipos de modelos | ¿Qué hace ML.PREDICT ? |
---|---|---|
Aprendizaje supervisado |
Regresión lineal y logística Árboles mejorados Bosque aleatorio Redes neuronales profundas Algoritmo de amplitud y profundidad AutoML Tables |
Predice la etiqueta, ya sea un valor numérico para las tareas de regresión o un valor categórico para las tareas de clasificación. |
Aprendizaje no supervisado | k-means | Asigna el clúster a la entidad. |
PCA | Aplica la reducción de la dimensionalidad a la entidad mediante la transformación en el espacio que abarcan los eigenvectores. | |
Codificador automático | Transforma la entidad en el espacio incorporado. |
Para la inferencia de modelos de factorización de matrices, consulta Recomendación.
Inferencia con modelos importados
Con este enfoque, creas y entrenas un modelo fuera de BigQuery, lo importas con la sentencia CREATE MODEL
y, luego, ejecutas la inferencia mediante la función ML.PREDICT
.
Todo el procesamiento de inferencia se produce en BigQuery mediante los datos de BigQuery. Los modelos importados pueden realizar un aprendizaje supervisado o no supervisado.
BigQuery ML es compatible con los siguientes tipos de modelos importados:
- Open Neural Network Exchange (ONNX) para modelos entrenados en PyTorch, scikit-learn y otros frameworks de AA populares.
- TensorFlow
- TensorFlow Lite
- XGBoost
Usa este enfoque para usar modelos personalizados desarrollados con una variedad de frameworks de AA y, al mismo tiempo, aprovechar la velocidad de inferencia y la ubicación conjunta de BigQuery ML con los datos.
Para obtener más información, prueba uno de los siguientes instructivos:
- Haz predicciones con modelos de TensorFlow importados
- Haz predicciones con modelos de scikit-learn en formato ONNX
- Haz predicciones con modelos de PyTorch en formato ONNX
Inferencia con modelos remotos
Con este enfoque, puedes crear una referencia para un modelo alojado en una predicción de Vertex AI mediante la sentencia CREATE MODEL
y, luego, ejecutas la inferencia con la función ML.PREDICT
.
Todo el procesamiento de inferencia se produce en Vertex AI mediante los datos de BigQuery. Los modelos remotos pueden realizar un aprendizaje supervisado o no supervisado.
Usa este enfoque para ejecutar inferencias en modelos grandes que requieren la compatibilidad con hardware de GPU que proporciona Vertex AI. Si la mayoría de los modelos están alojados en Vertex AI, esto también te permite ejecutar inferencias en estos modelos mediante SQL, sin tener que compilar canalizaciones de datos de forma manual para tomar datos en Vertex AI y devolver los resultados de la predicción a BigQuery.
Para obtener instrucciones paso a paso, consulta Realiza predicciones con modelos remotos en Vertex AI.
Previsión
La previsión es una técnica que usa datos históricos como entradas para realizar estimaciones informadas en el futuro. En BigQuery ML, la previsión se aplica a los datos de series temporales. Para los datos IID, consulta Predicción.
BigQuery ML admite funcionalidades de previsión a través de la función ML.FORECAST
con los modelos ARIMA_PLUS y ARIMA_PLUS_XREG. El modelo de serie temporal no es un modelo único, sino una canalización de modelado de series temporales que incluye varios modelos y algoritmos. Consulta la Canalización de modelado de series temporales para obtener más detalles.
Recomendación
Los sistemas de recomendador son una de las aplicaciones más exitosas y generalizadas de tecnología de aprendizaje automático para empresas. Un sistema de recomendación ayuda a los usuarios a encontrar contenido atractivo en un gran cuerpo de trabajo. Por ejemplo, Google Play Store ofrece millones de apps, mientras que YouTube proporciona miles de millones de videos, y cada día se agregan más apps y videos. Para encontrar nuevo contenido atractivo, los usuarios pueden usar la búsqueda, pero un motor de recomendaciones puede mostrar contenido que los usuarios podrían no haber considerado buscar por su cuenta. Para obtener más información, consulta la Descripción general de los sistemas de recomendación.
Los algoritmos de aprendizaje automático en los sistemas de recomendador, por lo general, se clasifican en dos categorías: métodos de filtrado colaborativo y basado en el contenido.
Tipo | Definición | Ejemplo |
---|---|---|
filtrado basado en el contenido | Usa la similitud entre elementos para recomendar elementos similares a lo que le gusta al usuario. | Si el usuario A mira dos videos tiernos de gatos, el sistema puede recomendar videos tiernos de animales a ese usuario. |
filtrado colaborativo | Usa las similitudes entre consultas y elementos de forma simultánea para proporcionar recomendaciones. | Si el usuario A es similar al usuario B y al usuario B le gusta el video 1, el sistema puede recomendar el video 1 al usuario A (incluso si el usuario A no vio ningún video similar al video 1). |
El modelo de factorización de matrices se usa ampliamente como un método de filtrado colaborativo para los sistemas de recomendación. BigQuery ML admite la función ML.RECOMMEND
para facilitar el uso de la factorización de matrices con fines de recomendación.
Para obtener más información sobre la aplicación de la factorización de matrices a la recomendación, consulta Factorización de matrices.
En los motores de recomendaciones modernos, se usan mucho los modelos de red neuronal profunda (DNN), incluidos los modelos profundos y amplios. Se puede ver como una extensión del filtrado colaborativo basado en la factorización de matrices. Puede incorporar atributos de consulta y de elementos para mejorar la relevancia de las recomendaciones. Para obtener más información, lee Recomendación mediante modelos de redes neuronales profundas, Redes neuronales profundas para las recomendaciones de YouTube o Aprendizaje profundo y amplio para sistemas de recomendador. También vale la pena mencionar que se pueden usar modelos de aprendizaje supervisado para las tareas de recomendación.
Detección de anomalías
La detección de anomalías es un paso en la extracción de datos que identifica datos, eventos y observaciones que se desvían del comportamiento normal de un conjunto de datos. Los datos anómalos pueden indicar incidentes críticos, como problemas técnicos, u oportunidades, como cambios en el comportamiento de los consumidores.
Un desafío con la detección de anomalías es identificar y definir la anomalía.
Los datos etiquetados con anomalías conocidas te permiten elegir entre tipos de modelos de aprendizaje automático supervisado que ya son compatibles con BigQuery ML.
Sin un tipo de anomalía conocido o datos etiquetados, aún puedes usar el aprendizaje automático no supervisado para detectar anomalías. Según si tus datos de entrenamiento son series temporales o no, puedes detectar anomalías en los datos de entrenamiento o en los datos de entrada nuevos mediante la función ML.DETECT_ANOMALIES
con los siguientes modelos:
Tipo de datos | Tipos de modelos | Qué hace ML.DETECT_ANOMALIES |
---|---|---|
Series temporales | ARIMA_PLUS | Detecta las anomalías en las series temporales. |
Variables aleatorias independientes e idénticamente distribuidas (IID) | k-means | Detecta anomalías según la distancia más corta entre las distancias normalizadas de los datos de entrada a cada centroide del clúster. Para obtener una definición de distancias normalizadas, consulta ML.DETECT_ANOMALIES . |
Codificador automático | Detecta anomalías según la pérdida de reconstrucción en términos de error cuadrático medio. Para obtener más información, consulta ML.RECONSTRUCTION_LOSS . ML.RECONSTRUCTION_LOSS puede recuperar todos los tipos de pérdidas de reconstrucción. |
|
PCA | Detecta anomalías según la pérdida de reconstrucción en términos de error cuadrático medio. |
Visión artificial
Para crear una referencia a la API de Cloud Vision, puedes crear un modelo remoto con un REMOTE_SERVICE_TYPE
de CLOUD_AI_VISION_V1
y, luego, usar la función con valor de tabla (TVF) ML.ANNOTATE_IMAGE
para anotar imágenes mediante ese servicio. ML.ANNOTATE_IMAGE
funciona con tablas de objetos. Todo el procesamiento de inferencia se produce en Vertex AI mediante los datos de BigQuery. Los resultados se almacenan en BigQuery.
Usa este enfoque para ejecutar inferencias con los modelos de visión de Google sin tener que aprender Python ni desarrollar conocimientos sobre la API de Vision.
Para obtener más información, prueba Anota imágenes de tablas de objetos con la función ML.ANNOTATE_IMAGE
.
Traducción automática
A fin de crear una referencia para la API de Cloud Translation, puedes crear un modelo remoto con un REMOTE_SERVICE_TYPE
de CLOUD_AI_TRANSLATE_V3
y, luego, usar la TVF ML.TRANSLATE
para interactuar con ese servicio. ML.TRANSLATE
funciona con tablas estándar. Todo el procesamiento de inferencia se produce en Vertex AI mediante los datos de BigQuery. Los resultados se almacenan en BigQuery.
Usa este enfoque para ejecutar inferencias con los modelos de traducción de texto de Google sin tener que aprender Python ni desarrollar conocimientos sobre la API de Cloud Translation.
Para obtener más información, prueba Traduce texto con la función ML.TRANSLATE
.
Procesamiento de lenguaje natural
Para crear una referencia a la API de Cloud Natural Language, puedes crear un modelo remoto con un REMOTE_SERVICE_TYPE
de CLOUD_AI_NATURAL_LANGUAGE_V1
, y luego, usar la TVF ML.UNDERSTAND_TEXT
para interactuar con ese servicio. ML.UNDERSTAND_TEXT
funciona con tablas estándar. Todo el procesamiento de inferencia se produce en Vertex AI mediante los datos de BigQuery. Los resultados se almacenan en BigQuery.
Usa este enfoque para ejecutar inferencias con los modelos de traducción de texto de Google sin tener que aprender Python ni desarrollar conocimientos sobre la API de Natural Language.
Para obtener más información, prueba Interpreta texto con la función ML.UNDERSTAND_TEXT
.