architect

Sintetiza la visión general y analiza tendencias con la función AI.AGG de BigQuery.

Fuente: cloudblog.withgoogle.com 9 min de lectura

Compartir

Sintetiza la visión general y analiza tendencias con la función AI.AGG de BigQuery.

Estás leyendo un resumen. El contenido completo está en cloudblog.withgoogle.com.

Recientemente anunciamos la vista previa de la función BigQuery AI.AGG(). Con AI.AGG(), puedes usar instrucciones en lenguaje natural dentro de una sola línea de SQL para resumir o sintetizar información en millones de filas de datos no estructurados o incluso multimodales. Resume millones de filas con una línea de SQL: AI.AGG. Mientras BigQuery ya ofrece potentes funciones de IA que te ayudan a analizar filas individuales de datos, analizar datos no estructurados a gran escala requiere un enfoque diferente. AI.AGG() te permite hacer preguntas sobre datos no estructurados como registros y documentos, por ejemplo: ¿Cuáles son las tres principales solicitudes de características entre las reseñas de productos negativas? ¿Qué tipo de errores están viendo los usuarios con más frecuencia y cómo debería comenzar a investigarlos? ¿En qué escenarios específicos está fallando consistentemente nuestro agente automatizado para resolver problemas de clientes? En esta publicación, profundizaremos en la función AI.AGG() y veremos algunos de los casos de uso que desbloquea, incluida su combinación con otras funciones de IA gestionadas de BigQuery para un análisis de datos complejo e inteligente.

Analizando registros del sistema con AI.AGG() Un gran ejemplo del poder de AI.AGG() es el análisis de la recopilación de registros del sistema. Los mensajes de registro, advertencias, errores y trazas de pila pueden contener información extremadamente útil para mejorar tu servicio, pero investigar estos manualmente puede ser intensivo en tiempo y mano de obra, especialmente si operas a gran escala y tienes miles de ellos para revisar. Con AI.AGG(), puedes analizar fácilmente muchos registros a la vez, agrupándolos y priorizándolos para decidir cuáles investigar más a fondo primero. De hecho, nuestro equipo de ingeniería de BigQuery utilizó este enfoque exacto al desarrollar AI.AGG(), utilizando la función para ayudar a identificar casos límite relacionados con el manejo de entradas para la función en sí. Para demostrar esto, analicemos un conjunto de datos públicos de registros INFO estándar de Apache Spark disponibles en Loghub. A menudo, los clústeres pueden enfrentar problemas como el thrashing de memoria, la deriva del reloj o cuellos de botella de difusión sin arrojar nunca un error FATAL. Puedes usar AI.AGG() para analizar estos registros que parecen normales en busca de ineficiencias ocultas. Puedes cargar el archivo de datos de muestra en BigQuery utilizando cualquiera de los métodos compatibles, como la interfaz de usuario, CLI o bibliotecas de cliente. El siguiente ejemplo asume que has cargado el archivo de registro en un conjunto de datos llamado bq_logs_demo y en una tabla llamada spark_logs_unstructured. Observa cómo construimos el aviso aquí. Le otorgamos explícitamente al modelo permiso para decir "todo está bien", lo que evita que alucine errores, mientras le instruimos que busque anomalías específicas:

Puedes ver en estos resultados que AI.AGG() reconoce con éxito los mensajes de "operando normalmente" mientras resalta las críticas diagnósticas: El panel de resultados de consulta que muestra las ideas generadas por AI.AGG() sobre el conjunto de datos de registros. Extrayendo categorías de texto no estructurado y datos de imágenes Ahora, veamos algunos casos de uso más que demuestran la flexibilidad de AI.AGG(), utilizando uno de los conjuntos de datos públicos de BigQuery, cymbal_pets, una tienda de suministros para mascotas ficticia. Incluye un catálogo de productos que lleva la tienda, con datos no estructurados como nombres de productos, descripciones e imágenes, lo que lo convierte en un gran ejemplo del poder de las funciones de IA para manejar datos no estructurados. Por ejemplo, supongamos que quieres categorizar los productos en el conjunto de datos. El primer obstáculo en este caso no es aplicar etiquetas a tus productos, sino descubrir qué categorías existen en el catálogo de productos. Con AI.AGG(), puedes pedirle al modelo que analice los nombres y descripciones de los productos para identificar las categorías generales por ti.

Esta consulta devuelve una lista simple de texto plano de categorías: Los resultados de texto plano de las categorías determinadas por AI.AGG() sobre nuestro conjunto de datos de productos. Esta consulta inicial es excelente para el descubrimiento, pero una simple cadena de texto plano no es suficiente para construir un canal de datos automatizado y confiable. Para etiquetar realmente tus datos, necesitas instruir a AI.AGG() que devuelva un formato estructurado, como un arreglo JSON. Luego, puedes usar las categorías estructuradas como un parámetro dentro de otra función de IA, AI.CLASSIFY(), para etiquetar cada producto con su categoría. La siguiente instrucción SQL completa cada uno de estos pasos en un solo script:

Ahora puedes ver la tabla resultante, que incluye una columna assigned_category: Una vista previa de la tabla categorized_products que incluye la nueva columna assigned_category creada por AI.AGG() y AI.CLASSIFY(). Si miras de cerca la tabla intermedia, notarás que las categorías estructuradas cambiaron ligeramente respecto a los resultados iniciales de texto plano. Esto sucede por dos razones: Primero, los LLM son no deterministas, lo que significa que no siempre dan la misma respuesta exacta al mismo aviso. Segundo, el aviso se ajustó para acomodar la nueva estructura de salida. Las categorías de productos devueltas están estructuradas como JSON por AI.AGG() según se solicitó como parte del aviso. Con la tabla ahora etiquetada por categoría, puedes agrupar por las categorías para hacer agregación SQL tradicional o usar AI.AGG() para considerar cada categoría por separado. Por ejemplo, la siguiente consulta obtiene métricas tradicionales (como conteos de filas) al mismo tiempo que un resumen sintetizado de IA sobre lo que estos productos agrupados tienen en común:

Los resultados de la consulta muestran el análisis con AI.AGG() junto con métodos SQL más tradicionales. Los datos no estructurados no se limitan al texto. Debido a que AI.AGG() admite de forma nativa entradas multimodales, puedes devolver ideas agregadas directamente de archivos de imagen. El proyecto de Google Cloud cymbal_pets también contiene un bucket de Cloud Storage lleno de fotos de productos. Al crear una tabla de objeto externa, puedes pasar de forma segura las URIs de las imágenes directamente a AI.AGG() y pedirle al modelo que resuma el contenido visual de toda la colección.

Resultados de consulta que muestran AI.AGG() surfacing categorías de productos analizando las imágenes de producto ubicadas en Google Cloud Storage. Cómo funciona AI.AGG() y mejores prácticas Para usar AI.AGG() de manera efectiva en tu propio entorno, es útil entender cómo procesa datos tras bambalinas. Aquí tienes lo que necesitas saber sobre ventanas de contexto, manejo de errores y optimización de tus canalizaciones.

1. Ventanas de contexto y agregación de múltiples niveles Los LLM tienen una ventana de contexto específica y pueden tener problemas para manejar grandes cantidades de entrada. AI.AGG() resuelve este problema dividiendo automáticamente tus filas de entrada en lotes, agregando esos lotes y luego agregando los resultados de esos lotes en una respuesta final. Esto significa que no tienes que preocuparte por gestionar manualmente la ventana de contexto al pasar una gran cantidad de filas. Ten en cuenta que AI.AGG() no dividirá una fila de datos a través de lotes, así que asegúrate de que cada fila individual sea más pequeña que la ventana de contexto para evitar que se salte la fila. Muchas filas más pequeñas le darán a AI.AGG() más flexibilidad sobre cómo agrupar cada fila.

2. Uso de tokens con agregación de múltiples niveles Dado que AI.AGG() utiliza una estructura de agregación de múltiples niveles, el total de tokens de entrada enviados al modelo puede ser mayor que los tokens en crudo en tu tabla inicial (dependiendo de cuántas rondas de agregación se requieran). Como mejor práctica, siempre reduce el número de tokens de entrada utilizando LIMIT o prefiltrando tus datos aguas arriba antes de pasarlos a AI.AGG().

3. Especificar tu punto final del modelo Si no especificas un punto final del modelo, AI.AGG() usará un modelo reciente por defecto. Sin embargo, para canalizaciones de producción, a menudo deseas tener control explícito: Nombres cortos: puedes usar un punto final de forma corta (por ejemplo, gemini-2.5-flash), en cuyo caso AI.AGG() utilizará ese modelo en la región de ejecución de consulta:

Nombres completamente calificados: si la región de ejecución de la consulta no admite tu modelo deseado, o prefieres usar un punto final global o multirregional, proporciona el nombre del modelo completamente calificado:

4. Modalidades de entrada y salida Entradas: AI.AGG() admite texto (a través de cadenas o referencias a archivos de texto) y datos de imagen. También admite matrices de estos tipos, aunque debes consultar la documentación de problemas conocidos para casos límite respecto a matrices de imágenes. Salidas: La función siempre devolverá una cadena. Si bien puedes solicitar al modelo en tus instrucciones que formatee la salida como JSON o Markdown, ten en cuenta que el motor de la base de datos no impone estrictamente esto. La salida multimodal (por ejemplo, generar una imagen) no es compatible en la actualidad.

5. Tratamiento de NULLs AI.AGG() salta automáticamente las filas de entrada NULL sin procesarlas. Sin embargo, debes tener cuidado al pasar datos estructurados. Al igual que otras funciones de IA de BigQuery, AI.AGG() concatena campos STRUCT de manera similar a la función estándar CONCAT(). Esto significa que si incluso un campo dentro de tu STRUCT es NULL, la fila completa se considera NULL y será omitida. Volvamos a nuestra primera consulta de categorización. ¿Qué pasaría si varias filas de nuestra tabla de productos carecen de su descripción? Debido a la regla de concatenación de NULL, esas filas se omitirían silenciosamente de todo el análisis. Aquí se muestra cómo podemos usar IFNULL() para proporcionar una cadena de respaldo, garantizando que cada producto se tenga en cuenta incluso si su descripción está en blanco:

6. Manejo de errores Si AI.AGG() recibe una entrada no válida o encuentra un error durante el procesamiento de LLM, intentará proporcionar resultados parciales. Las filas que contienen entradas no válidas o que fueron rechazadas por el modelo LLM no serán consideradas en los resultados finales. Puedes revisar exactamente cuántas filas fallaron en el procesamiento revisando las estadísticas de tu trabajo de BigQuery, exactamente como lo harías para funciones de IA gestionadas escalares como AI.IF().

¡Inténtalo! Estos son solo algunos ejemplos de las formas en que AI.AGG() puede ayudar a analizar datos no estructurados. La función AI.AGG() está en vista previa en BigQuery ahora, por lo que está disponible para todos los usuarios de BigQuery. ¡Pruébalo en tus propios casos de uso! También puedes estar interesado en explorar las otras funciones de IA gestionadas de BigQuery, AI.CLASSIFY(), AI.IF() y AI.SCORE(), así como funciones de propósito general como AI.GENERATE(). Esperamos ver lo que construyes con ellas.

Leer el artículo completo en el sitio original

Enlace externo a cloudblog.withgoogle.com

Artículos relacionados