Descripción general de Vector Assist

La asistencia vectorial es una extensión de AlloyDB para PostgreSQL que proporciona un framework de SQL declarativo para implementar y administrar cargas de trabajo de búsqueda vectorial. En lugar de configurar manualmente la generación de embeddings, los parámetros de índice y el ajuste de consultas, declaras los requisitos de tu carga de trabajo, como la tabla de destino, la columna de texto de origen y el objetivo de recuperación, mediante el uso de funciones de SQL.

Según tu especificación vectorial, la asistencia vectorial usa un algoritmo de ajuste automático para generar recomendaciones de SQL optimizadas con explicaciones que puedes revisar, modificar y aplicar. Este flujo de trabajo te ayuda a crear prototipos y a implementar aplicaciones de búsqueda semántica listas para producción con una configuración manual mínima.

Cómo funciona la asistencia vectorial

La asistencia vectorial requiere que definas tus especificaciones vectoriales. El framework usa estas especificaciones vectoriales, también conocidas como especificaciones vectoriales, para generar los pasos necesarios para crear un índice vectorial. La asistencia vectorial genera los pasos necesarios para implementar tu carga de trabajo vectorial como recomendaciones. Cada vez que modificas tus especificaciones vectoriales, la asistencia vectorial vuelve a generar las recomendaciones.

Una vez que generes el índice vectorial con estos pasos recomendados, podrás usar la asistencia vectorial para generar consultas de búsqueda optimizadas.

Especificación de asistencia vectorial

Configurar tu especificación de índice vectorial, o especificación vectorial, es el primer paso para usar la asistencia vectorial. Una especificación vectorial es un objeto en el que defines la intención y los requisitos de tu carga de trabajo vectorial. Incluye toda la información necesaria, como la siguiente:

  • Tablas y columnas relevantes (texto o vector)
  • Preferencias del modelo de embedding (si usas la generación de embeddings)
  • Tipo de índice preferido: HNSW o IVFFlat. ScaNN no es compatible.
  • Recuperación de destino para las consultas de búsqueda
  • Limitaciones de memoria

Defines las especificaciones vectoriales con la vector_assist.define_spec función y puedes modificarlas en cualquier momento. El sistema asigna a cada especificación un ID único y lo almacena en una tabla llamada vector_assist.VECTOR_SPECS.

La asistencia vectorial infiere las entradas de especificación y un algoritmo de ajuste automático optimizado que calcula la configuración de índice óptima. Aunque la asistencia vectorial usa estos valores para simplificar el proceso de desarrollo, puedes personalizarlos para que coincidan con tus preferencias.

Recomendaciones de asistencia vectorial

Después de definir las especificaciones vectoriales, la asistencia vectorial procesa tu entrada y genera recomendaciones. Estas recomendaciones son una lista ordenada de pasos útiles, por lo general, comandos de SQL, que debes ejecutar para implementar tu carga de trabajo vectorial según tus especificaciones. Cada recomendación incluye lo siguiente:

  • La consulta en SQL que se ejecutará
  • Una explicación detallada de lo que hace la consulta y por qué se recomienda
  • Información sobre posibles compensaciones o costos, como el tamaño estimado del índice o el tiempo de compilación

La asistencia vectorial almacena recomendaciones en una tabla llamada vector_assist.RECOMMENDATIONS, y puedes revisarlas, modificarlas y aplicarlas de forma individual o en su totalidad.

Cada vez que modificas las especificaciones vectoriales de tu carga de trabajo, la asistencia vectorial vuelve a generar las recomendaciones para cumplir con las especificaciones actualizadas.

Limitaciones

Cuando uses la asistencia vectorial con tus instancias de AlloyDB, ten en cuenta las siguientes limitaciones:

  • La asistencia vectorial solo admite las versiones 17 y posteriores de PostgreSQL.
  • Aunque la asistencia vectorial admite todas las versiones de pgvector, te recomendamos que uses la versión más reciente para obtener un rendimiento óptimo y compatibilidad con funciones. Para obtener más información, consulta el pgvector registro de cambios.
  • Si tu instancia usa la extensión google_ml_integration para generar embeddings, sus restricciones también se aplican cuando usas la asistencia vectorial. Para obtener más información, consulta Registrar y llamar a modelos de IA remotos en la descripción general de AlloyDB.
  • La asistencia vectorial solo admite los tipos de índice HNSW y IVFFlat. No se admiten los tipos de índice ScaNN.
  • La asistencia vectorial solo admite modelos de embedding de texto para generar embeddings automáticamente y usa text_column_name como parámetro de entrada. Si tu carga de trabajo vectorial requiere un modelo de embedding multimodal, usa la extensión google_ml_integration o cualquier otra extensión para generar manualmente estos embeddings antes de usar la asistencia vectorial para habilitar la búsqueda semántica en estos embeddings.

¿Qué sigue?