Descripción general de la IA generativa
En este documento, se describen las funciones de inteligencia artificial (IA) generativas que admite BigQuery. Estas funciones aceptan entradas de lenguaje natural y usan modelos de Vertex AI previamente entrenados y modelos integrados de BigQuery.
BigQuery ofrece una variedad de funciones de IA para ayudarte con tareas como las siguientes:
- Generar contenido creativo
- Analizar, detectar opiniones y responder preguntas sobre texto o datos no estructurados, como imágenes
- Resumir las ideas o impresiones clave que transmite el contenido
- Extraer datos estructurados del texto
- Clasificar texto o datos no estructurados en categorías definidas por el usuario
- Generar incorporaciones para buscar texto, imágenes y videos similares
- Calificar entradas para clasificarlas por calidad, similitud o algún otro criterio
Las funciones de IA se agrupan en las siguientes categorías para ayudarte a realizar estas tareas:
Funciones de IA de uso general: Estas funciones te brindan control total y transparencia sobre la elección del modelo, la instrucción y los parámetros que se usarán.
Realizar inferencias de LLM, por ejemplo, para responder preguntas sobre tus datos
AI.GENERATEes la función de inferencia más flexible, que te permite analizar cualquier dato estructurado o no estructurado.AI.GENERATE_TEXTes una versión con valor de tabla deAI.GENERATEque también admite modelos de socios y modelos abiertos.
Generar resultados estructurados, como extraer nombres, direcciones o descripciones de objetos de texto, documentos o imágenes.
AI.GENERATE, cuando especificas un esquema de salidaAI.GENERATE_TABLEes una versión con valor de tabla deAI.GENERATEque llama a un modelo remoto y te permite especificar un esquema de salida personalizado.- Si tu esquema de salida tiene un solo campo, puedes usar una de las funciones especializadas:
AI.GENERATE_BOOL,AI.GENERATE_DOUBLEoAI.GENERATE_INT.
Generar incorporaciones para la búsqueda semántica y el agrupamiento en clústeres
AI.EMBED: Crea una incorporación a partir de datos de texto o imágenes.AI.GENERATE_EMBEDDING: Es una función con valor de tabla que agrega una columna de datos de texto, imagen, audio, video o documento incorporados a tu tabla.
Funciones de IA administradas: Estas funciones tienen una sintaxis optimizada y están optimizadas para el costo y la calidad. Con el modo optimizado (vista previa), estas funciones se ajustan a millones o miles de millones de filas.
Filtrar tus datos con condiciones de lenguaje natural
AI.IF
Calificar la entrada, por ejemplo, por calidad o opinión
AI.SCORE
Clasificar la entrada en categorías definidas por el usuario
AI.CLASSIFY
Funciones de utilidad: Usa la
AI.COUNT_TOKENSfunción para estimar la cantidad de tokens en una instrucción de entrada antes de ejecutar una consulta.Funciones específicas para tareas: Estas funciones usan las APIs de IA de Cloud para ayudarte a realizar tareas como el procesamiento de lenguaje natural, la traducción automática, el procesamiento de documentos, la transcripción de audio y la visión artificial.
Funciones de IA de uso general
Las funciones de IA de uso general te brindan control total y transparencia sobre la elección del modelo, la instrucción y los parámetros que se usarán. Su resultado incluye información detallada sobre la llamada al modelo, incluido el estado y la respuesta completa del modelo, que puede incluir información sobre la calificación de seguridad o las citas.
Realiza inferencias de LLM
La función AI.GENERATE es una función de inferencia flexible que funciona enviando solicitudes a un modelo de Gemini de Vertex AI y mostrando la respuesta de ese modelo. Puedes usar esta función para analizar datos de texto, imagen, audio, video o PDF. Por ejemplo, puedes analizar imágenes de muebles para el hogar para generar texto para una columna design_type, de modo que el SKU de los muebles tenga una descripción asociada, como mid-century modern o farmhouse.
Puedes realizar tareas de IA generativa con modelos remotos en
BigQuery ML para hacer referencia a modelos implementados
o alojados en Vertex AI con la
AI.GENERATE_TEXT función con valor de tabla.
Puedes usar los siguientes tipos de
modelos remotos:
Modelos remotos en cualquiera de los modelos de Gemini disponibles de forma general o en versión preliminar para analizar contenido de texto, imagen, audio, video o PDF de tablas estándar o tablas de objetos con una instrucción que proporcionas como argumento de una función.
Modelos remotos en modelos de socios de Anthropic Claude, Mistral AI o Llama, o modelos abiertos compatibles, para analizar una instrucción que proporcionas en una consulta o desde una columna en una tabla estándar.
Usa los siguientes temas para probar la generación de texto en BigQuery ML:
- Genera texto con un modelo de Gemini y la función
AI.GENERATE_TEXT. - Genera texto con un modelo de Gemma y la función
AI.GENERATE_TEXT. - Analiza imágenes con un modelo de Gemini.
- Para generar texto, usa la función
AI.GENERATE_TEXTcon tus datos. - Ajusta un modelo con tus datos.
Para algunos modelos, puedes elegir configurar el ajuste supervisado, que te permite entrenar el modelo con tus propios datos para que se adapte mejor a tu caso de uso. Todas las inferencias se producen en Vertex AI. Los resultados se almacenan en BigQuery.
Genera datos estructurados
La generación de datos estructurados es muy similar a la generación de texto, excepto que puedes dar formato a la respuesta del modelo especificando un esquema de SQL. Por ejemplo, puedes generar una tabla que contenga el nombre, el número de teléfono, la dirección, la solicitud y la cotización de precios de un cliente a partir de una transcripción de una llamada telefónica.
Puedes generar datos estructurados de las siguientes maneras:
La función
AI.GENERATEllama a un extremo de Vertex AI y puede generar un valorSTRUCTcon tu esquema personalizado.Para probarlo, consulta cómo usar el resultado estructurado cuando llamas a la función
AI.GENERATE.La función
AI.GENERATE_TABLEllama a un modelo remoto y es una función con valor de tabla que genera una tabla con tu esquema personalizado.Para intentar crear datos estructurados, consulta Genera datos estructurados con la función
AI.GENERATE_TABLE.Para un solo campo de resultado, puedes usar una de las siguientes funciones de inferencia especializadas:
Genera embeddings
Un embedding es un vector numérico de alta dimensión que representa una entidad determinada, como un fragmento de texto o un archivo de audio. La generación de embeddings te permite capturar la semántica de tus datos de una manera que facilita el razonamiento y la comparación de los datos.
Estos son algunos casos de uso comunes para la generación de embeddings:
- Usar la generación mejorada por recuperación (RAG) para aumentar las respuestas del modelo a las consultas del usuario haciendo referencia a datos adicionales de una fuente confiable La RAG proporciona una mejor exactitud factual y coherencia de respuesta, y también proporciona acceso a datos más recientes que los datos de entrenamiento del modelo.
- Realizar búsquedas multimodales Por ejemplo, usar la entrada de texto para buscar imágenes
- Realizar búsquedas semánticas para encontrar elementos similares para recomendaciones, sustituciones y deduplicación de registros
- Crear embeddings para usar con un modelo de k-means para el agrupamiento en clústeres
Para obtener más información sobre cómo generar embeddings y usarlos para realizar estas tareas, consulta la Introducción a los embeddings y la búsqueda de vectores.
Funciones de IA administradas
Las funciones de IA administradas simplifican las tareas de rutina, como el filtrado, la clasificación o la agregación. Estas funciones pueden analizar datos de texto, imagen, audio, video o PDF. Estas funciones usan Gemini y no requieren personalización. BigQuery usa la ingeniería de instrucciones y puede seleccionar el modelo y los parámetros adecuados para usar en la tarea específica para optimizar la calidad y la coherencia de tus resultados. Cada función muestra un valor escalar, como BOOL, FLOAT64 o STRING, y no incluye información de estado adicional del modelo. Están disponibles las siguientes funciones de IA administradas:
AI.IF: Filtra texto o datos multimodales, como en una cláusulaWHEREoJOIN, según una instrucción. Por ejemplo, puedes filtrar las descripciones de productos por aquellas que describan un artículo que sería un buen regalo.AI.SCORE: Califica las entradas según una instrucción para clasificar las filas por calidad, similitud o algún otro criterio. Puedes usar esta función en una cláusulaORDER BYpara extraer los K elementos principales según la puntuación. Por ejemplo, puedes encontrar las 10 opiniones de usuarios más positivas o negativas sobre un producto.AI.CLASSIFY: Clasifica el texto en categorías definidas por el usuario. Puedes usar esta función en una cláusulaGROUP BYpara agrupar las entradas según las categorías que definas. Por ejemplo, puedes clasificar los tickets de asistencia según si se relacionan con la facturación, el envío, la calidad del producto o algún otro tema.
Para obtener un instructivo que muestre ejemplos de cómo usar estas funciones, consulta Realiza análisis semánticos con funciones de IA administradas.
Para obtener un instructivo de notebook que muestre cómo usar funciones de IA administradas y de uso general, consulta Análisis semántico con funciones de IA.
Funciones específicas para tareas
Además de las funciones más generales que se describen en las secciones anteriores, puedes desarrollar soluciones específicas para tareas en BigQuery ML con las APIs de IA de Cloud. Entre las tareas admitidas, se incluyen las siguientes:
- Procesamiento de lenguaje natural
- Traducción automática
- Procesamiento de documentos
- Transcripción de audio
- Visión artificial
Para obtener más información, consulta Descripción general de las soluciones específicas para tareas.
Ubicaciones
Las ubicaciones admitidas para los modelos de generación de texto y de embeddings varían según el tipo y la versión del modelo que uses. Para obtener más información, consulta Ubicaciones.
Precios
Se te cobra por los recursos de procesamiento que usas para ejecutar consultas en los modelos. Los modelos remotos realizan llamadas a los modelos de Vertex AI, por lo que las consultas en modelos remotos también generan cargos de Vertex AI.
Para obtener más información, consulta Precios de BigQuery ML.
Haz un seguimiento del uso de tokens
Cuando llamas a una función IA generativa que usa un modelo de Gemini que no sea un modelo de embeddings, puedes ver la cantidad total de cada tipo de token procesado por la consulta. En el panel Resultados de la consulta, haz clic en Información del trabajo. Aparecen los siguientes recuentos, desglosados por modalidad, si corresponde:
- Recuento de tokens de entrada: Es la cantidad total de tokens de entrada para todas las funciones de IA generativa llamadas en la consulta.
- Recuento de tokens de salida Es la cantidad total de tokens en todas las respuestas candidatas generadas por la consulta.
- Recuento de tokens de pensamiento Es la cantidad total de tokens que formaron parte de los pensamientos generados del modelo, si corresponde.
- Recuento de tokens de caché Es la cantidad total de tokens de entrada que la consulta almacenó en caché de forma implícita.
Haz un seguimiento de los costos
Las funciones de IA generativa en BigQuery funcionan enviando solicitudes a Vertex AI, lo que puede generar costos. Para estimar el recuento de tokens de entrada
antes de ejecutar una consulta, usa la
AI.COUNT_TOKENS función.
Para hacer un seguimiento de los costos de Vertex AI en los que incurre un trabajo que ejecutas en BigQuery, sigue estos pasos:
- Consulta tus informes de facturación en la Facturación de Cloud.
Usa filtros para refinar tus resultados.
En Servicios, selecciona Vertex AI.
Para ver los cargos de un trabajo específico, filtra por etiqueta.
Configura la clave como
bigquery_job_id_prefixy el valor como el ID del trabajo. Si el ID del trabajo tiene más de 63 caracteres, usa solo los primeros 63. Si el ID del trabajo contiene caracteres en mayúscula, cámbialos a minúsculas. Como alternativa, puedes asociar trabajos con una etiqueta personalizada para ayudarte a buscarlos más adelante.
Algunos cargos pueden tardar hasta 24 horas en aparecer en la Facturación de Cloud.
Supervisión
Para comprender mejor el comportamiento de las funciones de IA que llamas en BigQuery, puedes habilitar el registro de solicitudes y respuestas. Para registrar toda la solicitud y la respuesta enviadas a Vertex AI y recibidas de ella, sigue estos pasos:
Habilita los registros de solicitud-respuesta en Vertex AI. Los registros se almacenan en BigQuery. Debes habilitar el registro por separado para cada modelo de base y región diferentes. Para registrar las consultas que se ejecutan en la región
us, especifica laus-central1región en tu solicitud. Para registrar las consultas que se ejecutan en la regióneu, especifica la regióneurope-west4en tu solicitud.Ejecuta una consulta con una función IA que realice una llamada a Vertex AI con el modelo para el que habilitaste el registro en el paso anterior.
Para ver la solicitud y la respuesta completas de Vertex AI, consulta tu tabla de registro para obtener filas en las que el
labels.bigquery_job_id_prefixcampo de lafull_requestcolumna coincida con los primeros 63 caracteres del ID del trabajo. De manera opcional, puedes usar una etiqueta de consulta personalizada para ayudarte a buscar la consulta en los registros.Por ejemplo, puedes usar una consulta similar a la siguiente:
SELECT * FROM `my_project.my_dataset.request_response_logging` WHERE JSON_VALUE(full_request, '$.labels.bigquery_job_id_prefix') = 'bquxjob_123456...';
Administración de errores
Pueden producirse errores a nivel de la fila, como RESOURCE_EXHAUSTED, si una función IA excede la cuota o los límites del servicio remoto. Cuando se produce un error a nivel de la fila, la función muestra NULL para esa fila, lo que puede generar resultados de consulta incompletos.
Todas las funciones de IA pueden encontrar estos errores. Sin embargo, las funciones de IA administradas (AI.IF, AI.CLASSIFY y AI.SCORE) admiten el argumento max_error_ratio para ayudarte a administrarlos. Usa este argumento para establecer un umbral de falla que permita que la consulta se realice correctamente a pesar de las fallas a nivel de la fila.
El valor predeterminado para max_error_ratio es 1.0. Para reducir tu tolerancia a errores, configúrala en un valor más pequeño (por ejemplo, 0.2) para que la consulta falle en lugar de realizarse correctamente con fallas parciales. Para obtener detalles de la sintaxis, consulta la documentación de referencia
de
AI.IF,
AI.CLASSIFY,
o
AI.SCORE.
Si la consulta se realiza correctamente con fallas parciales, BigQuery muestra una advertencia. Para obtener más información sobre los errores de la función, consulta el campo Errores de la función de IA generativa en la pestaña Información del trabajo de los resultados de la consulta en la Cloud de Confiance consola.
Si tu consulta incluye una cláusula LIMIT, el límite se aplica después de que el modelo procesa un lote de filas. En consecuencia, la proporción de valores NULL en tu conjunto de resultados final puede parecer más alta que la max_error_ratio especificada.
Por ejemplo, supongamos que tu consulta tiene una cláusula LIMIT 10 y una max_error_ratio de 0.2. El modelo puede procesar 20 filas antes de que se aplique el límite. Si 3 de esas 20 filas fallan, la proporción de errores es 0.15 (15%), que está dentro del umbral del 20%. Sin embargo, si el subconjunto de filas seleccionado por la cláusula LIMIT incluye las 3 filas con errores, tu resultado visible contendrá un 30% de valores NULL.
¿Qué sigue?
- Para obtener una introducción a la IA y el AA en BigQuery, consulta Introducción a la IA y el AA en BigQuery.
- Para obtener más información sobre la realización de inferencias sobre los modelos de aprendizaje automático, consulta Descripción general de la inferencia de modelo.
- Para obtener más información sobre las instrucciones y funciones de SQL compatibles para los modelos de IA generativa, consulta Recorridos del usuario de extremo a extremo para modelos de IA generativa.