Vector Assist es una extensión de AlloyDB para PostgreSQL que proporciona un framework de SQL declarativo para implementar y administrar cargas de trabajo de Vector Search. En lugar de configurar de forma manual la generación de incorporaciones, 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, con funciones de SQL.
Según tu especificación de vectores, el asistente de vectores 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, luego, implementar aplicaciones de búsqueda semántica listas para producción con una configuración manual mínima.
Cómo funciona la asistencia de vectores
La asistencia de vectores requiere que definas las especificaciones de tus vectores. El framework usa estas especificaciones de vectores, también conocidas como especificaciones de vectores, para generar los pasos necesarios para crear un índice vectorial. El asistente de vectores genera los pasos necesarios para implementar tu carga de trabajo de vectores como recomendaciones. Cada vez que modificas tu especificación de vectores, el asistente de vectores vuelve a generar las recomendaciones.
Una vez que generes el índice de vectores con estos pasos recomendados, puedes usar el asistente de vectores para generar consultas de búsqueda optimizadas.
Especificación de Vector Assist
Configurar la especificación del índice de vectores, o especificación de vectores, es el primer paso para usar el asistente de vectores. Una especificación de vectores es un objeto en el que defines el intent y los requisitos para tu carga de trabajo de vectores. Incluye toda la información necesaria, como la siguiente:
- Tablas y columnas relevantes (texto o vector)
- Preferencias del modelo de embedding (si se usa la generación de embeddings)
- Tipo de índice preferido:
HNSWoIVFFlat. No se admiteScaNN. - Recuperación objetivo para las búsquedas
- Limitaciones de memoria
La especificación de vectores se define con la función
vector_assist.define_spec
y se puede modificar en cualquier momento. El sistema asigna a cada
especificación un ID único y lo almacena en una tabla llamada
vector_assist.VECTOR_SPECS.
Vector Assist infiere las entradas de especificación y un algoritmo de ajuste automático optimizado que calcula la configuración óptima del índice. Aunque la asistencia de vectores usa estos valores para simplificar el proceso de desarrollo, puedes personalizarlos según tus preferencias.
Recomendaciones de Vector Assist
Después de definir la especificación de vectores, el asistente de vectores 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 de vectores según tus especificaciones. Cada recomendación incluye lo siguiente:
- Es 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.
Vector Assist almacena las recomendaciones en una tabla llamada
vector_assist.RECOMMENDATIONS, y puedes revisarlas, modificarlas y aplicarlas
de forma individual o en conjunto.
Cada vez que modificas la especificación de vectores para tu carga de trabajo, el asistente de vectores vuelve a generar las recomendaciones para que cumplan con las especificaciones actualizadas.
Limitaciones
Cuando uses el asistente de vectores con tus instancias de AlloyDB, ten en cuenta las siguientes limitaciones:
- La asistencia de vectores solo es compatible con las versiones 17 y posteriores de PostgreSQL.
- Aunque la asistencia de vectores admite todas las versiones de
pgvector, te recomendamos que uses la versión más reciente para obtener un rendimiento y una compatibilidad de funciones óptimos. Para obtener más información, consulta el registro de cambios depgvector. - Si tu instancia usa la extensión
google_ml_integrationpara generar embeddings, sus restricciones también se aplican cuando usas el asistente de vectores. Para obtener más información, consulta Descripción general del registro y la llamada a modelos de IA remotos en AlloyDB. - La asistencia de vectores solo admite los tipos de índice
HNSWyIVFFlat. No se admiten los tipos de índiceScaNN. - La asistencia de vectores solo admite modelos de embedding de texto para generar embeddings de forma automática
y usa
text_column_namecomo parámetro de entrada. Si tu carga de trabajo de vectores requiere un modelo de embeddings multimodal, usa la extensióngoogle_ml_integrationo alguna otra para generar manualmente estos embeddings antes de usar el asistente de vectores para habilitar la búsqueda semántica en ellos.