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 en lenguaje natural y usan modelos de Vertex AI previamente entrenados y modelos integrados de BigQuery.
BigQuery ofrece una variedad de funciones basadas en IA para ayudarte con tareas como las siguientes:
- Generar contenido creativo
- Analiza, detecta opiniones y responde preguntas sobre texto o datos no estructurados, como imágenes.
- Resume las ideas o impresiones clave que transmite el contenido.
- Extrae 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
- Califica las entradas para clasificarlas según su calidad, similitud o algún otro criterio.
Las funciones basadas en 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 y transparencia totales sobre la elección del modelo, la instrucción y los parámetros que se usarán.
Realizar inferencias con 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 valores de tabla deAI.GENERATEque también admite modelos abiertos y de socios.
Generar resultados estructurados, como extraer nombres, direcciones o descripciones de objetos de texto, documentos o imágenes
AI.GENERATE, cuando especificas un esquema de salida.AI.GENERATE_TABLEes una versión con valores 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.
Genera embeddings para la búsqueda semántica y la agrupación en clústeres
AI.EMBED: Crea una incorporación a partir de datos de texto o imagen.AI.GENERATE_EMBEDDING: Es una función con valores de tabla que agrega una columna de datos incorporados de texto, imagen, audio, video o documento 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.
Filtra tus datos con condiciones de lenguaje natural
AI.IF
Califica la entrada, por ejemplo, según la calidad o el sentimiento.
AI.SCORE
Clasifica la entrada en categorías definidas por el usuario
AI.CLASSIFY
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 y transparencia totales 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, como el estado y la respuesta completa del modelo, que puede incluir información sobre la calificación de seguridad o las citas.
Realiza la inferencia de LLM
La función AI.GENERATE es una función de inferencia flexible que envía solicitudes a un modelo de Gemini de Vertex AI y muestra 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 y 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 función AI.GENERATE_TEXT con valores de tabla.
Puedes usar los siguientes tipos de modelos remotos:
Modelos remotos sobre 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 desde tablas estándar o tablas de objetos con una instrucción que proporcionas como argumento de función.
Modelos remotos sobre los modelos de socios Anthropic Claude, Mistral AI o Llama, o modelos abiertos admitidos, para analizar una instrucción que proporciones 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.
En el caso de algunos modelos, puedes optar por 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 especificar un esquema de SQL para dar formato a la respuesta del modelo. 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 la transcripción de una llamada telefónica.
Puedes generar datos estructurados de las siguientes maneras:
La función
AI.GENERATEllama a un endpoint de Vertex AI y puede generar un valorSTRUCTcon tu esquema personalizado.Para probarla, consulta cómo usar el resultado estructurado cuando llames 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 salida, 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 incorporaciones:
- Usar la generación mejorada por recuperación (RAG) para aumentar las respuestas del modelo a las preguntas de los usuarios haciendo referencia a datos adicionales de una fuente confiable La RAG proporciona una mejor exactitud fáctica y coherencia en las respuestas, y también brinda 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 rutinarias, 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 la tarea específica con el objetivo de optimizar la calidad y la coherencia de tus resultados. Cada función devuelve un valor escalar, como BOOL, FLOAT64 o STRING, y no incluye información de estado adicional del modelo. Las siguientes funciones de IA administradas están disponibles:
AI.IF: Filtra texto o datos multimodales, como en una cláusulaWHEREoJOIN, según una instrucción. Por ejemplo, podrías filtrar las descripciones de productos por aquellas que describen 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, podrías 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, podrías 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 ver un instructivo con ejemplos de cómo usar estas funciones, consulta Realiza análisis semánticos con funciones de IA administradas.
Para ver un instructivo en notebook que muestra cómo usar las funciones de IA administradas y de uso general, consulta Análisis semántico con funciones de IA.
Funciones específicas de la tarea
Además de las funciones más generales que se describieron en las secciones anteriores, puedes desarrollar soluciones específicas para tareas en BigQueryML con las APIs de Cloud AI. 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 y de incorporación de texto 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 a los modelos remotos también generan cargos de Vertex AI.
Para obtener más información, consulta los precios de BigQuery ML.
Seguimiento de costos
Las funciones de IA generativa en BigQuery envían solicitudes a Vertex AI, lo que puede generar costos. Para hacer un seguimiento de los costos de Vertex AI que genera un trabajo que ejecutas en BigQuery, sigue estos pasos:
- Consulta tus informes de facturación en Facturación de Cloud.
Usa filtros para definir mejor los resultados.
En servicios, selecciona Vertex AI.
Para ver los cargos de un trabajo específico, filtra por etiqueta.
Establece la clave en
bigquery_job_id_prefixy el valor en el ID del trabajo de tu trabajo. Si el ID de 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. También puedes asociar los empleos a una etiqueta personalizada para ayudarte a encontrarlos 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 basadas en 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 y respuesta en Vertex AI. Los registros se almacenan en BigQuery. Debes habilitar el registro por separado para cada modelo fundamental y región diferentes. Para registrar las consultas que se ejecutan en la región
us, especifica la regiónus-central1en 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 de IA que llame 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 registros para ver las filas en las que el campo
labels.bigquery_job_id_prefixde la columnafull_requestcoincide con los primeros 63 caracteres de tu ID de 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 de IA supera la cuota o los límites del servicio remoto. Cuando se produce un error a nivel de la fila, la función devuelve NULL para esa fila, lo que puede generar resultados de la consulta incompletos.
Todas las funciones basadas en IA pueden presentar 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 administrarlas. Usa este argumento para establecer un umbral de errores que permita que la consulta se realice correctamente a pesar de los errores 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) de modo que la consulta falle en lugar de completarse con fallas parciales. Para obtener detalles sobre la sintaxis, consulta la documentación de referencia de AI.IF, AI.CLASSIFY o AI.SCORE.
Si la consulta se ejecuta 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 consola de Cloud de Confiance .
Si tu consulta incluye una cláusula LIMIT, el límite se aplica después de que el modelo procesa un lote de filas. Por lo tanto, la proporción de valores de NULL en tu conjunto de resultados final podría parecer más alta que el max_error_ratio especificado.
Por ejemplo, supongamos que tu búsqueda tiene una cláusula LIMIT 10 y un max_error_ratio de 0.2. El modelo podría procesar 20 filas antes de que se aplique el límite. Si fallan 3 de esas 20 filas, el porcentaje de error 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 con los modelos de IA generativa, consulta Recorridos del usuario de extremo a extremo para modelos de IA generativa.