Este post forma parte de una serie sobre BigQuery ML que hemos desarrollado en IKAUE. Puedes acceder a todos los post de la serie en: "BigQuery ML"
¿Te gustaría empezar aplicar IA o Machine Learning a tus datos pero la complejidad de la programación y las herramientas de data science no son para ti? ¿Se te quedan cortas? ¿Te da pereza empezar a conectarte a servidores o crear enromes y lentos notebooks? En ese caso, deberías empezar a mirarte BigQuery ML (BQML).
Me ha quedado una entradilla muy de anuncio, pero creo que resume muy bien el potencial de lo que vamos a hablar en este post. BigQuery ML es una extensión de BigQuery con la que puedes usar Gemini (la IA generativa de Google), crear modelos predictivos, clasificar información y realizar análisis avanzados sin necesidad de ser un experto en programación ni tener por qué lidiar con notebooks, Rstudio o con Google Colab en Python. Tan solo usando sentencias SQL podrás hacer de forma cómoda y escalable todo lo que necesitas con tus datos. ¿No me crees? Sigue leyendo…
El Data Science es una disciplina analítica apasionante pero que supone una barrera de entrada enorme (para muchos llamada Python) y además consume grandes cantidades de tiempo de los equipos creando flujos e industrializando los datos para poder usarlos. Para colmo, en muchas ocasiones acaba en multitud de scripts y procesos adhoc que deben lanzarse manualmente y resultan muy poco escalables. Para todo esto es para lo que BigQuery ML resulta un soplo de aire fresco que puede hacer que veas con otros ojos iniciarte en este tipo de retos.
En este post, te guiare paso a paso para que descubras el poder de BQML y lo apliques a tus propios proyectos. Se trata, eso sí, solo de una introducción. Ojalá tuviese la capacidad de explicar todo BigQuery ML en un solo post o vídeo. El objetivo de hoy es que estés preparado para lidiar con las posibilidades de ML pero tendrás que esperar a llegar al final del post para encontrar los tutoriales concretos con los que realizar distintos análisis.
En este post te explicaré:
- Qué es BQML exáctamente (pasando por Google Cloud, BigQuery, Vertex AI, etc.)
- Cuales son sus grandes ventajas y sus retos.
- Como configurar tu BigQuery para poder crear hoy mismo modelos y aplicarlos.
- La gestión de permisos, el control de costes y las claves de las queries de BQML.
- Todas las funciones que están a tu alcance (al menos las que conocemos en IKAUE a día de hoy)
- Acceso a varios tutoriales para empezar a sacarle partido a la IA, el análisis semántico, la clusterización y las predicciones de datos y comportamientos.
Poco a poco y desde el principio:
Conceptos y herramientas que debes conocer antes de empezar.
Empezaremos por mencionar y resumir las herramientas y tecnologías en las que nos vamos a meter al trabajar con BigQuery ML, ya que si eres un usuario común de Google BigQuery, explicar ML es bastante sencillo, pero si no trabajas mucho (o nada) con la herramienta, todo esto es más complejo de entender. Lo dejo a tu criterio, si ves que un capítulo no te aporta porque ya te lo sabes: ¡Sáltatelo!
¿Qué es Google Cloud?
Antes de sumergirnos en BigQuery ML, es importante entender dónde se encuentra. Google Cloud (la nube de de Google) es como un universo gigante que ofrece una amplia gama de servicios digitales en la nube. Imagina un lugar donde puedes almacenar datos, ejecutar aplicaciones, analizar información, aplicar la IA y mucho más, todo sin necesidad de tener tus propios servidores físicos. Todo autoadministrado y autoescalable. Eso es Google Cloud: Magia.
GCP (Google Cloud platform), es una plataforma equivalente en muchos sentidos a Amazon AWS (muchos servicios son similares) pero en este caso, centrada en el ecosistema Google. Podremos crear servidores, almacenar datos y lanzar funciones sin servidor. Pero además tendremos acceso a sus dos armas secretas más importantes: BigQuery y Vertex AI. En estos dos campos (base de datos orientada a terabytes y simplifcación de la IA) es donde destaca especialmente sobre su competencia.
¿Y qué es BigQuery?
Dentro de este universo digital, BigQuery es una de las estrellas más brillantes. Es un servicio de almacenamiento de datos que se caracteriza por su escalabilidad (puedes crecer hasta donde quieras), velocidad (consultas complejas en segundos) y economía (pagas solo por lo que procesas). Piensa en BigQuery como un almacén masivo donde puedes guardar todos tus datos, desde registros de ventas hasta interacciones de usuarios en tu sitio web. Lo mejor de todo es que BigQuery te permite analizar estos datos con una velocidad increíble, lo que lo convierte en una herramienta ideal tanto para el análisis de grandes volúmenes de información (donde no encontrarás límites ni tendrás problemas de estructura) como para análisis sencillos (donde el coste se reducirá a céntimos).
BigQuery es además una base de datos con esteroides. No se trata solo de que sea un sistema SQL estándar en el cual es sencillo entrar (es aprender SQL sin preocuparte demasiado de administrar bases de datos). Sino que te aporta cada vez más añadidos que son opcionales pero que a medida que los vas dominando te alegran la vida y te dan acceso a más y más posibilidades.
- Interfaz y herramientas en la propia web (sin instalar nada).
- Carga de datos desde cada vez más fuentes (incluso desde Google Sheets)
- Conectividad con herramientas Google: Google Sheets, Looker, Looker Studio, Notebooks de Google Cloud, etc.
- Programación de tareas ybrecarga de datos automática
- Posibilidad de crearle funciones propias (incluso en Js)
- Herramientas de control de costes
- Autoborrado de datos
- Uso, mediante API, en la mayoria de softwares de datos que existen
- Machine Learning e IA integrados en la herramienta
BigQuery ML: Machine Learning e IA sin código
Entre estos añadidos, es donde entra en juego BigQuery ML (BQML). BQML es un conjunto de funciones que te permiten crear, entrenar y utilizar modelos de Machine Learning e Inteligencia Artificial directamente en BigQuery. Lo revolucionario de BQML es que no necesitas escribir código complejo en lenguajes como Python o R. En su lugar, puedes usar SQL, un lenguaje de consulta mucho más accesible, para aplicar algoritmos de aprendizaje automático a tus datos.
- Subes tus datos a BigQuery (csv, sheets, storage, integraciones)
- Lanzas 2 o 3 queries
- Y ya tienes el resultado de aplicar estas complejas herramientas listo para usar.
Para que te hagas una idea, es algo como usar notebooks pero sin código, sin APIs, y sin límites de datos (que todos sabemos que un Colab a la que le metes demasiados datos te dice que «gracias, pero no…».
Con BQML, puedes realizar tareas como:
- Crear modelos predictivos: por ejemplo, predecir la probabilidad de que un cliente realice una compra o abandone tu web.
- Clasificar información: por ejemplo, clasificar correos electrónicos como spam o no spam, o autoasignar categorías y redirecciones automáticamente.
- Agrupar datos en clústeres: por ejemplo, segmentar clientes en grupos con características similares, o entender tus productos por su rentabilidad o afinidad a tu tráfico, o autoclasificar todas tus keywords por sus significados reales.
- Realizar análisis de series temporales: por ejemplo, predecir las ventas futuras en función de las ventas pasadas, o simplemente crear el forecast del año que viene.
- Aplicar prompts a los modelos de Gemini (flash, pro, etc.) masivamente con queries: Imagina que quieres generar descripciones de productos para tu catálogo online. Con BQML y Gemini, puedes escribir un prompt lleno de variables que definan el estilo y la información que necesitas, y luego aplicarlo a miles de productos con una sola consulta.
- Trabajar con embeddings y todo su potencial: Los embeddings son representaciones vectoriales de datos, como texto o imágenes, que capturan su significado semántico. BQML te permite generar y utilizar embeddings para tareas como la búsqueda semántica, la recomendación de productos o el análisis de sentimiento.
Vertex AI: ¿Qué es y qué tiene que ver con BigQuery ML?
Vertex AI es la plataforma de Inteligencia Artificial y ML unificada de Google Cloud. Te permite usar las últimas IAs de Google, conectarte a algunas IAs libres (Meta, Gemma, etc) e incluso usar Claude de Anthropic dentro de una sola interfaz. Con Vertex también podrás crear, entrenar y desplegar modelos de Machine Learning de forma completa y sin restricciones. Es el aglutinador de IAs de Google que cada día crece más.
Puedes usar Vertex AI para:
- Entrenar modelos con frameworks populares como TensorFlow, PyTorch y scikit-learn.
- Utilizar AutoML para entrenar modelos sin necesidad de escribir código.
- Desplegar modelos como endpoints para realizar predicciones en tiempo real.
- Monitorizar el rendimiento de los modelos y gestionarlos a lo largo de su ciclo de vida.
Localízalo en tu cuenta de Google Cloud. Lo verás en el menú de herramientas de la izquierda (el que despliegas bajo el logo).
Desde ahí podrás probar los modelos de Gemini o de Model Garden y muchas cosas más.
Vertex Ai además es una de las piezas que BigQuery ML es capaz de integrar. No completa (en Vertex se pueden hacer más cosas que en BigQuery ML) pero si bastante amplia.
Qué es la Gestión de permisos y APIs en Google Cloud
Para acabar con esta introducción de conceptos y pese a que tu solo deseas empezar a trastear con BigQuery ML, es obligatorio hablar de dos partes de Google Cloud en las que tendrás que entrar para poder trabajar. Entrarás muy poco y en este post de diré exactamente lo que tienes que hacer ahí, pero es fácil que te atasques si no las conoces o no las sabes ubicar.
Los localizarás también en el menú de herramientas de Google Cloud:
IAM (Identity and Access Management)
IAM es el servicio de Google Cloud que te permite controlar el acceso a tus recursos. En esencia, IAM te ayuda a responder la pregunta «¿Quién tiene permiso para hacer qué dentro de mi proyecto de Google Cloud?«.
Con IAM puedes gestionar la autenticación (verificar la identidad de un usuario) y la autorización (determinar qué acciones puede realizar un usuario). Esto, a pesar de que es tedioso, es fundamental para la seguridad de tus datos y aplicaciones en Google Cloud.
Algunos conceptos clave de IAM son:
- Cuentas de servicio: son cuentas de usuario especiales que se utilizan para que las aplicaciones puedan acceder a los servicios de Google Cloud. Son usuarios con emails muy largos que se usan solo internamente para que las apps hablen entre ellas.
- Roles: son colecciones de permisos que definen qué acciones puede realizar un usuario en un recurso. Por ejemplo, el rol «BigQuery Data Editor» permite a un usuario crear, modificar y eliminar datos en BigQuery.
- Permisos unitarios: cada uno de los tipos de accesos que existen. Un Rol contiene muchos servicios de golpe pero en empresas serias se suelen definir a medida («tu tienes acceso para lanzar queries pero no para generar tablas», por ejemplo).
IAM te permite otorgar permisos a nivel de proyecto, organización o recurso o usuario individual. Puedes usar IAM para controlar el acceso a una amplia gama de servicios de Google Cloud, incluyendo BigQuery, Vertex AI y Storage. Y, en definitiva, dado que queremos hacer que BigQuery hable con Vertex AI, nos tocará tocar un poco esta parte para darles permiso para que se hablen.
Habilitación de APIs (Application Programming Interfaces)
Las APIs son interfaces que permiten que diferentes aplicaciones se comuniquen entre sí. Son como mensajeros que permiten que los programas intercambien información y realicen acciones de forma estandarizada.
Las APIs suelen estar organizadas en torno a colecciones de métodos que realizan acciones específicas. Por ejemplo, la API de BigQuery incluye métodos para insertar filas, listar tablas y ejecutar consultas SQL.
Por seguridad Google Cloud no trae todas las APIs conectadas por defecto. En desarrollo se suele seguir la norma de que si no usas algo es mejor que no se pueda usar (prohibirlo).
Así que para poder trabajar en algunas partes profundas de Google Cloud nos tocará entrar en este servicio y activar algunas APIs. Por suerte esto es algo sencillisimo: entras en la biblioteca de APIs en el menú de herramientas de Google Cloud, buscas la que quieres y le das a habilitar.
Empecemos a entender lo que implica usar BigQuery ML
Pros: Las Ventajas de BigQuery ML
Si estás valorando si meterte en este plus especial que ofrece BigQuery, déjame que te resuma los puntos más importantes sobre todo lo que vas a ganar. Por separado las ventajas son muchas y poco claras, pero podemos sintetizarlas en estos puntos clave:
- Simplicidad:
No necesitas aprender nuevos lenguajes de programación ni configurar infraestructuras complejas. No necesitas planificar paso a paso y función a función lo que vas a hacer con los datos. Puedes usar SQL para realizar análisis avanzados y corregirlos cambiando unas pocas palabras. - Escalabilidad:
BQML hereda la capacidad de BigQuery para manejar grandes volúmenes de datos. Puedes trabajar con terabytes de información sin problemas. Esta claro que a más información más tiempo tardará en crear los modelos (y más caro te saldrá usar tanta información) pero te sorprenderá gratamente como rinde en situaciones donde otros no llegan - Integración:
BQML se integra perfectamente con BigQuery y Vertex AI, la suite de Google Cloud para trabajar con IA. Los datos se guardan en BigQuery y de ahí las opciones para consultarlos son enormes (casi cualquier herramienta). - Eficiencia:
al trabajar directamente en BigQuery, se reduce la necesidad de mover datos entre diferentes plataformas. Si haces de BigQuery tu datamart o data lake estás casi obligado a probar esta solución. - Accesibilidad:
BQML democratiza el Machine Learning al ponerlo al alcance de usuarios sin experiencia en programación. Las queries y modelos son reusables haciendo que los avances de unos impacten en el trabajo del resto.
Contras: Riesgos y desafíos que supone empezar con BigQuery ML
Aunque BQML ofrece muchas ventajas, para empezar con él es aún más importante ser conscientes de algunos posibles desafíos a los que te vas a enfrentar si lo usas. Cosas que tienes que tener en cuenta y que van a suponerte un reto.
- Complejidad de las queries:
Las funciones de BQML pueden ser más complejas que las consultas SQL tradicionales. Es necesario comprender cómo funcionan los modelos, las funciones de tabla y cómo preparar los datos para ellas. No, no se trata de «SELECT url WHERE …» pero tampoco de hacer un master de ciencia infusa. - Configuración de permisos:
si no estás familiarizado con Google Cloud, la configuración de permisos puede ser confusa. Es importante comprender cómo otorgar los permisos necesarios para crear y usar modelos de BQML. - Control de costes:
BigQuery es un servicio de pago por uso, y BQML añade un coste adicional a tener en cuenta. Es importante monitorizar el gasto para evitar sorpresas tanto de bigquery como de los modelos que usas. Esto es fácil de hacer pero deberás generar tu propio protocolo de validación. Recuerda que para usuarios nuevos, Google te da tu cuota gratuita que da de sobras para saber si la tecnología te convence sin gastar un solo Euro.
¿Te ayudo con los problemas clásicos para empezar con BQML? Claro que sí.
He vivido en mis carnes lo frustrantes que pueden ser los primeros pasos en este mundillo del ML. Así que, para ayudarte a empezar a quemar las primeras etapas con BQML, vamos a abordar algunos problemas comunes a los que te enfrentarás, solucionando cómo abordar cada uno de ellos:
1. Los modelos de IA y ML deben crearse antes de usarse
Para poder trabajar con Inteligencia Artificial y Machine Learing en BigQuery vas a tener que aprender a crear modelos. Los modelos son los sistemas y algoritmos ya entrenados y configurados que aplicarás a tus datos para enriquecerlos.
- Un modelo puede dedicarse a completar tu tendencia de conversiones. Pero esto lo hará en base al entrenamiento de tus conversiones anteriores.
- Otro modelo puede autoclasificar tus URLs en grupos con semejanzas semánticas. Esto lo conseguirá a partir de la definición que hagas y de los datos de muestra que le diste.
- Otro modelo más podría autogenerar textos o soluciones con Gemini Flash. Y esto lo haría en base a los modelos existentes en Vertex AI que deberemos importar a BigQuery.
Por lo tanto, para usar un modelo, primero tienes que crearlo. Y para crear un modelo debes usar un Query concreta. La sintáxis de esta Query es la misma para todos los tipos de modelos, pero los datos que le darás o las variables de configuración que uses en cada uno serán distintos.
Para crear un modelo en BigQuery, utilizamos la función CREATE OR REPLACE MODEL
. Por ejemplo, para crear un modelo de regresión lineal:
SQL:
CREATE OR REPLACE MODEL `mi_dataset.mi_regresion_lineal`
OPTIONS(
model_type='linear_reg'
)
AS
SELECT
*
FROM
`mi_dataset.mi_tabla_con_datos_históricos`
En este ejemplo, estamos creando un modelo llamado «mi_regresion_lineal» en el dataset «mi_dataset«. El modelo utilizará el algoritmo de regresión lineal y se entrenará con todos los datos (*) de la tabla «mi_tabla_con_datos_históricos«.
Documentación sobre la función CREATE MODEL
(En la imagen: Captura de varios modelos ya creados en BigQuery, tal cual se ven en la interfaz)
Una vez tenemos ese modelo creado, ya si que podremos lanzar funciones de ML como ML.PREDIC() para predecir los datos en una fecha futura.
2. Las funciones de tabla ¿Sabías que existían?
En SQL, estamos acostumbrados a las funciones «escalares». Funciones que actúan sobre un único dato y lo transforman en otro. Por ejemplo,
- COUNT(DISTINCT landings) : Cuenta URLs de landings disitntas en la tabla.
- SUM(transactions) : Suma el total de transaciones de la tabla.
Estas funciones se utilizan en la cláusula SELECT
de una consulta (o en otras partes) y las aprovechamos para cambiar los daros; sumarlos, dividiros, concatenarlos, generar coincidencias, clusterizarlos manualmente con un CASE, etc.
BQML añade una nueva colección de funciones entre las que encontramos una gran cantidad de funciones escalares, pero también utiliza funciones de «tabla», que se utilizan en la cláusula FROM
y generan por si solas la tabla con la que luego trabaja la query.
Es decir, al usar estas funciones, no consultamos directamente una tabla, sino que generamos una tabla con la función y la tabla resultante, después de que el modelo de IA o ML haya actuado sobrelso datos, es la que consultamos con el SELECT.
Un ejemplo sencillo de función de tabla que si que igual has usado (sobre todo si has trabajado con BigQuery para GA4) y no forma parte de BQML sería UNNEST():
SQL:
SELECT
numbers.*
FROM
UNNEST([1, 2, 3]) AS numbers
Esta función UNNEST() trabaja con datos, los desagrega, y devuelve una tabla de 3 filas, que es la que realmente consultamos con el SELECT.
Las funciones de tabla de BQML se utilizan de forma similar. Por ejemplo, para generar respuestas de Gemini a partir de una tabla de prompts, utilizaríamos una función de tabla en el FROM
. Esta función añadiría columnas a nuestra tabla con las respuestas generadas por la IA.
SQL:
SELECT
content,
ml_generate_text_result -- este campo de datos es el resultado de la función
FROM
ML.GENERATE_TEXT( ... definción de la tabla con los prompts que enviamos a la IA ...)
Puedes ver como en realidad no usamos la función GENERATE_TEXT() en el SELECT sino que la tabla que consultamos en el FROM es el resultado de aplicar esta función GENERATE_TEXT.
Bien, pues así se lanzan la mayor parte de modelos de BigQuery ML. Tenlo en cuenta y no intentes hacer cosas raras porque no funcionarán.
3. ¿Cómo averiguo y consulto todas las funciones que existen en la librería BigQuery ML?
Un reto que no debería serlo pero que por desgracia lo es… ¿Dónde está la página de referencia de Google que me indica todas las funciones de BigQuery ML que existen? Pues no existe como tal. Google nos tiene acostumbrado a documentaciones parciales, pero en este caso, si bien la documentación de cada función existe, esta separada por funcionalidades en una doc dificil de seguir.
Lo primeo que debes saber es que, salvo la propia función de CREATE MODEL, el resto de funciones de BigQuery ML empiezan todas por «ML.», por ejemplo antes veíamos «ML.PREDICT()» y «ML.GENERATE_TEXT()», siempre con el «ML.» delante. Y está bien que así sea pues eso nos ayuda a identificarlas.
El problema es que dentro de esta librería encontraremos tanto funciones de tabla que llaman a modelos como funciones escalares que evaluan o sacan datos de estos modelos o incluso funciones y alias que estan creadas para las operaciones comunes que se suelen usar con estos modelos (ahí estaría por ejemplo la famosa ML.DISTANCE() que nos ayuda entre otras cosas a calcular la distancia de coseno).
Un pequeño caos con el que vamos a tener que lidiar hasta que Google ponga orden en su documentación (si es que lo hace).
Para ayudarte con esto te voy a dar tres referencias:
1. La propia documentación de introducción a Google BigQuery ML. Donde no están las funciones listadas, pero que leyendola y navegando por ella encontrarás las más importantes de ellas.
>> Documentación de BQML en Google.
2. El link a la primera documentación (la de CREATE MODEL), que si bien no es el índice de ninguna referencia (no existe tal página de índice, al menos de momento) si que es la primera página de la referencia. Entrando en ella verás un menú a la izquierda que contiene distintas secciones de funciones de ML y dentro de cada sección podrás localizar la mayoría de ellas.
>> Referencia de BQML en Google
3. Un Google Sheets que he creado con mucho mimo y cuidado para documentar este listado que no existe completo en la doc de Google.
El Sheets seguramente te ayude como referencia, pero un aviso: No es oficial y no puedo responsabilizarme de que no falten detalles o alguna función no cambie con el tiempo. Tómatelo más como una guía interna de IKAUE que como una documentación oficial.
>> Referencia de funciones BigQuery ML por IKAUE
4. Permisos y habilitación de APIs
Para trabajar con BQML, necesitas tener los permisos adecuados en Google Cloud. Los permlsos son lo que le dice a Google Cloud que un usuario o aplicación tienen derecho a hacer lo que está intentnado hacer. Hay 2 formas de darlos:
1. Darte un rol (que te dará un conjunto de permisos de golpe).
En ese caso, debes tener un rol mínimo de «BigQuery Data Editor».
2. O darte los permisos unitarios uno a uno.
En ese caso debes tener al menos estos permisos:
bigquery.models.create
bigquery.models.use
bigquery.routines.create
bigquery.routines.use
Si no tienes estos permisos ya concedidos, cuando intentes crear modelos de BigQuery ML el sistema te avisará de que no puedes o no tienes permiso para realizar esa operacion. En ese caso, debes ir a IAM (Identity and Access Management) y gestionarlos para tu usuario.
Como decíamos más arriba, IAM es el servicio de Google Cloud que te permite controlar quién tiene acceso a qué recursos y lo encontrarás en el menú de la derecha de herramientas de BigQuery. Entra, busca tu usuario o grupo de usuarios en la tabla y concédele estos permisos. Si no puedes darte esos permisos deberás pedirle a tu administrador de Google Cloud que te los gestione.
Además de los permisos, debes asegurarte de que las APIs necesarias para que BQML funcione estén habilitadas en tu proyecto de Google Cloud. Las APIs son las interfaces que permiten que aplicaciones se hablen entre sí, y si no existen y estan habilitadas los sistemas no pueden hablarse. Las APIs que necesitas que estén activas son:
- BigQuery API (Vertex AI API (link para revisarla activarla)
Para habilitar las APIs, debes ir a los links que te indico arriba o a la consola de Google Cloud y buscar el servicio «APIs y servicios». Allí podrás buscar y habilitar las APIs que necesitas. En cada una dale al botón de habilitar y ya estarás listo para trabajar. Igual que antes, si tu no puedes habilitarlas, deberás pedir a tu administrador que lo haga.
5. Aprender a controlar los costes de BigQuery ML y Vertex AI
Cuando trabajas con BigQuery aprendes como mínimo a hacer 2 tipos de control:
– Reactivo:
Control de facturación de BIgQuery: con un seguimiento periódico y creando alertas que te avisen si algo que haces empieza a incrementar la facturación por encima de lo que esperabas.
– Proactivo:
En cada query, mirando los GB que va a consultar antes de lanzarla (sabiendo que consultar 1 Terabyte son aproximadamente 6,5 dolares).
Cuando trabajes con BigQuery ML tendrás que sumar 2 acciones más:
– Reactivo:
Control de facturación de Vertex AI. Igual que antes, pero controlando el gasto en Vertex, no solo en BigQuery. Esto nos dirá el dinero gastado en cada modelo.
– Proactivo:
Afinando las consultas siempre con un LIMIT bajito (LIMIT 5 por ejemplo) para validar que lo que hacemos tiene sentido a muy bajo coste. Cuando acabemos con las pruebas quitamos el LIMIT y lanzamos la query o el modelo sobre el total de datos.
Además siempre, siempre, siempre debemos plantearnos usar un «CREATE TABLE AS» al usar funciones de BigQuery ML. ¿por qué? Pues porque cada vez que lanzamos las consultas las funciones de ML se aplican y generan coste, así que para que solo paguemos por el modelado de datos o la IA una vez, lo suyo es generar una tabla ya procesada y a partir de ahí ya no volvemos a modelar los datos.
CREATE OR REPLACE TABLE `nombre_del_conjunto_de_datos.nombre_de_la_tabla` AS SELECT ... (tu query)
Solo tenemos que añadir esa línea delante de la SELECT cuando vayamos a lanzarla con los datos finales y se generará la tabla.
Otra opción válida, pero más arriesgada (pues todos tenemos olvidos) es acordarse de darle a «Guardar Resultado como Tabla» de BigQuery. Este es un botón que aparece cuando BigQuery nos da resultados. Así que se trataría de darle a lanzar query y a ese botón nada más ver el resultado.
En la práctica ambos sistemas provocan lo mismo (solo pagar por el modelado una vez), pero de una forma actualizarás la tabla cada vez que lances la query y de la otra es más mecánico y puedes olvidarte.
Sobretodo ten en cuenta eso: cada vez que lances una query con ML se lanzará el modelo y se te facturará por cada fila que el modelo procese.
6. Conectar BigQuery con con Vertex AI para poder usar los modelos de Vertex
Vertex AI ofrece una amplia gama de herramientas para crear, entrenar y desplegar modelos de IA. Si quieres usar modelos que no están integrados de forma nativa en BigQuery (y creeme que si que quieres), necesitas crear una conexión con Vertex AI.
Si no realizas este paso estarás limitado a los modelos integrados en BigQuery. Podrás usar Kmeans, Forecasting y Regresiones lineales, pero no podrás usar Gemini, Embedings, NPL ni modelos entrenados en Vertex AI. Decide en función de lo que quieras hacer.
Los pasos para conectar con Vertex AI son:
1. Añadir un recurso de tipo «conexión» en BigQuery.
Esto lo hacemos con el botón AGREGAR que está arriba del todo en el menú lateral de la consola de BigQuery.
2. En el panel lateral que aparece, seleccionar Vertex AI como el servicio al que queremos conectar.
En el panel lateral que aparecerá seleccionamos la opción de «Conexiones a fuentes de datos Externas».
1. En la configuración del tipo de conexión seleccionamos «Modelos remotos de Vertex AI, funciones remotas, etc.».
2. Le ponemos un nombre a nuestra conexión (es el que aparecerá listado en BigQuery, así que pon un nombre descriptivo).
3, Y por último hay que asegurarse de que la ubicación de la conexión sea la misma que la del dataset de BigQuery donde tenemos (o vamos a tener) los datos para modelar.
En este sentido Google nos recomienda siempre «US multiregion» o «EU multiregión» y debes saber que los modelos (sobre todo los de Vertex AI) no existen en todas las regiones así que si algo falla puede ser por la región seleccionada. Vamos, que si pones «EU» «multiregión» te curas en salud y te aseguras de que todos los modelos existen y los datos están legalmente bien situados.
3. Al crear la conexión, se generará una «service account» a la que debes darle permisos para hablar con distintos servicios. Como mínimo con Vertex AI.
Una service account es una cuenta de usuario especial que se utiliza para que las aplicaciones puedan acceder a los servicios de Google Cloud y tiene una serie de datos identificativos. Sobre todo nos tenemos que fijar en dos de estos datos:
- ID de conexión: Es un path que debemos guardar y que usaremos como «endpoint» al usar la función CREATE MODEL.
- Id de la cuenta de servicio: Es el email con el que se identifica dentro de Google Cloud a esta conexión. Así que es el email al que tienes que darle permisos de acceso a lo que quieras que BigQuery pueda acceder (fundamentalmente Vertes AI)
Debes copiar el ID de service account (el que tiene formato de email).
Luego debes entrar en IAM (menú de herramientas de Google Cloud) y «otorgar un nuevo acceso» a esta cuenta.
Ahí indicaremos en «Principales» el mail copiado (el que identifica a la service account) y le otorgaremos el rol de «Usuario de Vertex AI».
Valida que tu nueva conexión aparece en la lista antes de salir de la sección de IAM.
Ahora, espera al menos 2 minutos antes de hacer nada (por mucho que veas la conexión creada y con permisos en los paneles, Google Cloud tarda un poco en realizar todos los cambios).
Con la conexión creada y el servicio con el rol que toca, ya puedes crear un modelo en BigQuery que utilice la conexión a Vertex AI.
¡Acabas de abrir a BigQuery la posibiliadd de usar una gran cantidad de IAs y modelos preentrenados!
Ya lo tienes todo ¡Ahora a trabajar!
Ahora si que estás en disposición de trabajar con BigQuery ML. Repasemos todo lo que tienes a mano:
- Las APIs y permisos ya habilitados para poder crear modelos.
- Una conexión con Vertex AI, con una service Account que tiene permisos sobre Vertex, y que te permite crear tanto modelos internos como externos.
- Conocimiento sobre las funciones de CREATE MODEL, así como las funciones de tabla (en el FROM) para luego lanzar los modelos.
- Una referencia de las funciones que existen para ir probando cosas y la propia doc de Google para ver tus posibilidades.
- Una guía (breve, pero algo es algo), sobe cómo controlar los costes y no tener sustos.
Ya solo queda empezara a aplicar modelos ¿no? Pues a eso iremos con los siguientes posts:
- Tutorial para usar Gemini en BigQuery ML (pendiente, en breve).
- Tutorial de clusterización automática con K-means en BigQuery ML (pendiente, en breve).
- Tutorial para usar embeddings en BigQuery ML (pendiente, en breve).
- Tutorial de predicción de métricas en en BigQuery ML (pendiente, en breve).
- Tutorial para analizar con PNL en BigQuery ML (pendiente, en breve).
- Tutorial de autoclasificación con ML en BigQuery ML (pendiente, en breve).
Conclusiones
BigQuery ML es una herramienta poderosa que pone el Machine Learning al alcance de todos (al menos de todos los que nos metemos en BigQuery). Con BQML, puedes realizar análisis avanzados sin necesidad de escribir código, aprovechando la escalabilidad y la facilidad de uso de BigQuery. Si trabajas con datos y quieres empezar a aplicar la IA en tu día a día, BQML es una excelente opción.
Vas a tener que aprender cosas, vas a tener que lidiar un poco con Google Cloud, pero en una sola tarde ya te verás aplicando modelos sobre tus datos. ¿A qué esperas?
Te invitamos a seguir leyendo nuestro blog de IKAUE para aprender más sobre BigQuery ML y otras herramientas de análisis de datos. Y si tienes alguna pregunta o necesitas ayuda con tu proyecto, no dudes en contactarnos.