Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Búsqueda de vectores con BigQuery

Lab 45 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

Descripción general

Búsqueda de vectores de BigQuery La búsqueda de vectores te permite encontrar los elementos más similares en tu conjunto de datos comparando las representaciones matemáticas de sus atributos, conocidas como embeddings, en lugar de depender de coincidencias exactas de palabras clave.

¿Alguna vez te impresionó cómo un sitio web puede recomendar productos que son increíblemente similares a lo que estás buscando, incluso si no puedes describirlo con palabras exactas? Esta función suele estar impulsada por la búsqueda de vectores, una técnica que va más allá de la simple concordancia de palabras clave. En vez de solo buscar texto, la búsqueda de vectores analiza las características subyacentes de un elemento, lo que le permite encontrar similitudes conceptuales o visuales. En este lab, obtendrás experiencia práctica usando las capacidades de búsqueda de vectores avanzadas y escalables que están integradas directamente en BigQuery.

Para un comercio minorista global como Cymbal E-commerce, esta tecnología cambia por completo la experiencia del cliente. Imagina que un cliente busca una "chaqueta ligera para senderismo". Una búsqueda tradicional de palabras clave podría no encontrar el producto perfecto si en la descripción se usa el término "rompevientos" en lugar de "chaqueta". Con la búsqueda de vectores, Cymbal puede analizar embeddings (representaciones numéricas de imágenes y descripciones de productos) para devolver una lista de todas las prendas de abrigo relevantes, independientemente de la terminología exacta. Esto ayuda a los clientes a descubrir los productos que quieren más rápido, lo que aumenta su satisfacción y las ventas. ¡Comencemos a crearlo para Cymbal!

En este lab, aprenderás a usar BigQuery para realizar búsquedas de vectores.

** Nota: En este lab, usarás una base de datos pública de patentes en lugar de las fichas de productos y descripciones detalladas de Cymbal por motivos de privacidad. El proceso es el mismo: solo debes cambiar los nombres del conjunto de datos, la tabla y la columna para que coincidan con tus datos de origen.

Actividades

  • Usar un modelo de AA para generar embeddings
  • Crear un índice vectorial
  • Usar la función VECTOR_SEARCH en los embeddings que creaste

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que usarás para acceder a Google Cloud durante todo el lab.

Requisitos

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
  • Tiempo para completar el lab
Nota: Si tienes un proyecto o una Cuenta de Google Cloud personal, no los uses en este lab. Nota: Si utilizas una Pixelbook, abre una ventana de incógnito para ejecutar este lab.

Accede a la consola de Google Cloud

  1. En la pestaña o ventana del navegador que estás usando para esta sesión del lab, copia el Nombre de usuario del panel Detalles de la conexión y haz clic en el botón Abrir la consola de Google.
Nota: Si se te solicita que elijas una cuenta, haz clic en Usar otra cuenta.
  1. Cuando se te solicite, pega el nombre de usuario y, luego, la contraseña.
  2. Haz clic en Siguiente.
  3. Acepta los Términos y Condiciones.

Dado que esta es una cuenta temporal que tendrá la misma duración del lab, sigue estas recomendaciones:

  • No agregues opciones de recuperación.
  • No te registres para las pruebas gratuitas.
  1. Cuando se abra la consola, podrás ver la lista de servicios haciendo clic en el Menú de navegación (Ícono del menú de navegación) en la esquina superior izquierda.

Menú de navegación

Verifica o habilita las APIs necesarias

  1. En la consola de Google Cloud, ingresa API de BigQuery en la barra de búsqueda superior.

  2. Haz clic en el resultado de API de BigQuery en Marketplace.

  3. Si la API no está habilitada todavía, haz clic en Habilitar.

  4. Repite los pasos del 1 al 3 para la API de BigQuery Connection y, luego, para la API de Vertex AI.

Tarea 1: Crea un modelo remoto para la generación de embeddings de texto

En esta tarea, crearás un modelo de generación de embeddings de texto de Vertex AI que se requiere para una búsqueda de vectores y para crear los embeddings de la base de datos.

Crea un modelo de IA

  1. En el menú de navegación (Menú de navegación) de la consola de Google Cloud, navega a BigQuery > Studio.

  2. Selecciona la pestaña Consulta sin título.

  3. Ingresa el siguiente código:

    CREATE OR REPLACE MODEL `bqml_lab.embedding_model` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'text-embedding-005');

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un modelo de AA

  1. Haz clic en Ejecutar. La consulta tardará unos minutos en ejecutarse. Si recibes un error relacionado con una cuenta de servicio faltante, vuelve a ejecutar la misma consulta.

  2. Reemplaza la consulta por el siguiente código:

    CREATE OR REPLACE TABLE `bqml_lab.embeddings` AS SELECT * FROM ML.GENERATE_EMBEDDING( MODEL `bqml_lab.embedding_model`, ( SELECT title, url, abstract AS content FROM `bqml_lab.patent_data` LIMIT 200000)) WHERE LENGTH(ml_generate_embedding_status) = 0;
  3. Haz clic en Ejecutar. La consulta tardará unos 5 minutos en ejecutarse.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una tabla llamada "embeddings" usando un modelo de BigQuery ML

  1. Reemplaza la consulta por el siguiente código:

    CREATE OR REPLACE VECTOR INDEX my_index ON `bqml_lab.embeddings`(ml_generate_embedding_result) OPTIONS(index_type = 'IVF', distance_type = 'COSINE', ivf_options = '{"num_lists":500}');
  2. Haz clic en Ejecutar. La consulta tardará unos minutos en ejecutarse.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un índice vectorial en la tabla "embeddings"

  1. Ingresa el siguiente código para verificar el estado del índice:

    SELECT table_name, index_name, index_status, coverage_percentage, last_refresh_time, disable_reason FROM `{{{project_0.project_id | "Project ID"}}}.bqml_lab.INFORMATION_SCHEMA.VECTOR_INDEXES`;
  2. Haz clic en Ejecutar. El índice está listo para usarse cuando el valor de la columna coverage_percentage es mayor que 0 y el valor de la columna last_refresh_time no es NULL. Si el índice no está listo la primera vez que ejecutas la consulta anterior, vuelve a ejecutarla de vez en cuando para verificar el estado del índice. Continúa con el lab cuando veas resultados que confirmen que el índice está listo para usarse.

Realiza una búsqueda de similitud de texto con el índice vectorial

Usarás la función VECTOR_SEARCH para buscar entradas relevantes para tu término de búsqueda, que en este ejemplo es la frase "improving online shopper search results". El modelo que uses para generar los embeddings cuando realizas búsquedas debe ser el mismo que utilizas para generar los embeddings en la tabla con la que comparas; de lo contrario, los resultados de la búsqueda no serán precisos.

  1. En la pestaña de consulta de BigQuery, reemplaza el código por lo siguiente:

    SELECT query.query, base.title, base.content FROM VECTOR_SEARCH( TABLE `bqml_lab.embeddings`, 'ml_generate_embedding_result', ( SELECT ml_generate_embedding_result, content AS query FROM ML.GENERATE_EMBEDDING( MODEL `bqml_lab.embedding_model`, (SELECT 'improving online shopper search results' AS content)) ), top_k => 5, options => '{"fraction_lists_to_search": 0.01}');
  2. Haz clic en Ejecutar.

  3. Opcional: Si quieres probar otras búsquedas, reemplaza 'improving online shopper search results' en el código por una búsqueda diferente.

Haz clic en Revisar mi progreso para verificar el objetivo. Realizar una búsqueda de similitud de texto con el índice vectorial

¡Felicitaciones!

Creaste un modelo de IA, embeddings para tus datos, un índice vectorial y realizaste una consulta con el índice para encontrar los elementos más relacionados con tu término de búsqueda.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.