Creación de un índice vectorial en un bucket vectorial
nota
Elija con cuidado los parámetros de configuración del índice vectorial. Después de crear un índice vectorial, no puede actualizar el nombre, la dimensión, la métrica de distancia ni las claves de metadatos no filtrables del índice vectorial. Para cambiar cualquiera de estos valores, debe crear un nuevo índice vectorial.
Un índice vectorial es un recurso dentro de un bucket vectorial que almacena y organiza datos vectoriales para realizar búsquedas de similitud de forma eficiente. Al crear un índice vectorial, se definen las características que deben compartir todos los vectores de ese índice, como la dimensión, la métrica de distancia utilizada para los cálculos de similitud y, opcionalmente, las claves de metadatos no filtrables. Si lo desea, también puede configurar ajustes y etiquetas de cifrado dedicados para el índice vectorial en el momento de la creación del índice. Para obtener más información sobre los requisitos de nomenclatura de los índices vectoriales, los requisitos de dimensión, las opciones de métricas de distancia y las claves de metadatos no filtrables, consulte Restricciones y limitaciones. Para obtener más información sobre cómo establecer la configuración de cifrado para índices vectoriales, consulte Protección y cifrado de datos en S3 Vectors. Para obtener más información acerca de las etiquetas de configuración, consulte Uso de etiquetas con buckets vectoriales de S3.
Los índices vectoriales deben crearse en un bucket vectorial existente y requieren parámetros de configuración específicos que no se pueden modificar después de la creación.
Creación de un índice vectorial
-
Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3
. -
En el panel de navegación, elija Buckets vectoriales.
-
En la lista de buckets vectoriales, elija el nombre del bucket en el que desea crear un índice vectorial.
-
Elija Crear índice vectorial.
-
En Nombre del índice vectorial, introduzca un nombre para el índice vectorial.
Los nombres de los índices vectoriales deben ser únicos en el bucket vectorial. El nombre de índice tener entre 3 y 63 caracteres. Los caracteres válidos son letras minúsculas (a-z), números (0-9), guiones (-) y puntos (.). Para obtener más información sobre los requisitos de nomenclatura de los índices vectoriales, consulte Restricciones y limitaciones.
-
En Dimensión, introduzca el número de valores de cada vector.
nota
-
El valor de Dimensión determina cuántos valores numéricos contendrá cada vector.
-
Todos los vectores agregados a este índice deben tener exactamente este número de valores.
-
Una dimensión debe estar entre 1 y 4096.
-
Una dimensión mayor requiere más espacio de almacenamiento.
-
Elija en función de las dimensiones de salida del modelo de incrustación.
Para obtener más información sobre los requisitos de dimensión, consulte Restricciones y limitaciones.
-
-
En Métrica de distancia, elija una de las siguientes opciones:
-
Coseno: mide el coseno del ángulo entre vectores. Ideal para vectores normalizados y cuando la dirección es más importante que la magnitud.
-
Euclidiano: mide la distancia en línea recta entre vectores. Ideal cuando tanto la dirección como la magnitud son importantes.
-
-
(Opcional) En Metadatos no filtrables, configure las claves de metadatos que se almacenarán pero no se utilizarán para filtrar:
Para agregar claves de metadatos no filtrables:
-
Elija Agregar clave.
-
Introduzca un nombre de clave (debe tener de 1 a 63 caracteres y debe ser único en este índice vectorial).
-
Repita el proceso para agregar claves adicionales (máximo diez claves).
nota
Puede asociar metadatos filtrables como pares clave-valor a cada vector al insertar datos vectoriales después de crear un índice vectorial. De forma predeterminada, todas las claves de metadatos asociadas a vectores son filtrables y se pueden utilizar como filtros en una consulta de similitud. Solo las claves de metadatos que se especifican como no filtrables durante la creación del índice vectorial se excluyen del filtrado. Para obtener más información sobre los límites de tamaño de metadatos por vector, incluidas las restricciones de metadatos totales y filtrables, consulte Restricciones y limitaciones.
-
-
Revise la configuración cuidadosamente.
nota
Esta configuración no se puede cambiar después de la creación.
-
En Cifrado, elija Especificar tipo de cifrado. Tiene la opción de Utilizar la configuración de bucket para el cifrado o invalidar la configuración de cifrado del índice vectorial. Si invalida la configuración por bucket, tiene la opción de especificar el tipo de cifrado para el índice vectorial como Cifrado del servidor con claves de AWS Key Management Service (SSE-KMS) o el Cifrado del servidor con claves administradas por Amazon S3 (SSE-S3). Para obtener más información sobre cómo establecer la configuración de cifrado para índices vectoriales, consulte Protección y cifrado de datos en S3 Vectors.
-
En Etiquetas (Opcional), puede agregar etiquetas como pares clave-valor para ayudar a rastrear y organizar los costos del índice vectorial mediante Administración de facturación y costo de AWS. Introduzca la información pertinente en Key (Clave) y Value (Valor). Para agregar otra etiqueta, elija Add Tag (Añadir etiqueta). Puede ingresar un máximo de 50 etiquetas para un índice vectorial. Para obtener más información, consulte Uso de etiquetas con buckets vectoriales de S3.
-
Elija Crear índice vectorial.
Para crear un índice vectorial en un bucket vectorial, utilice los siguientes comandos de ejemplo y reemplace los user input placeholders por información propia.
Ejemplo 1: creación de un índice vectorial con claves de metadatos no filtrables
aws s3vectors create-index \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx" \ --data-type "float32" \ --dimension1\ --distance-metric "cosine" \ --metadata-configuration '{"nonFilterableMetadataKeys":["nonFilterableKey1"]}'
Ejemplo 2: creación de un índice vectorial sin claves de metadatos no filtrables
aws s3vectors create-index \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx2" \ --data-type "float32" \ --dimension4096\ --distance-metric "euclidean"
Además, todos los metadatos (tanto filtrables como no filtrables) se recuperan de la misma manera mediante las operaciones de la API GetVectors, ListVectors o QueryVectors. En el siguiente comando de la CLI se muestra cómo recuperar vectores con metadatos (incluidos los metadatos no filtrables).
Ejemplo de solicitud:
aws s3vectors get-vectors \ --vector-bucket-name "amzn-s3-demo-vector-bucket" \ --index-name "idx" \ --keys '["vec1", "vec3"]' \ --return-data \ --return-metadata \
Respuesta de ejemplo:
{ "vectors": [ { "key": "vec1", "data": { "float32": [ 0.10000000149011612, 0.20000000298023224, 0.30000001192092896, 0.4000000059604645, 0.5 ] }, "metadata": { "category": "test", "text": "First vector" } }, { "key": "vec3", "data": { "float32": [ 0.6000000238418579, 0.699999988079071, 0.800000011920929, 0.8999999761581421, 1.0 ] }, "metadata": { "text": "Third vector", "category": "test" } } ] }
La respuesta incluirá todos los metadatos asociados al vector, independientemente de si se especificaron como filtrables o no filtrables durante la creación del índice.