Configure la búsqueda neuronal y la búsqueda híbrida en OpenSearch sin servidor
Búsqueda neuronal
Amazon OpenSearch sin servidor es compatible con la funcionalidad de búsqueda neuronal para operaciones de búsqueda semántica en sus datos. La búsqueda neuronal utiliza modelos de machine learning para comprender el significado semántico y el contexto de sus peticiones, lo que proporciona resultados de búsqueda más relevantes que las búsquedas tradicionales basadas en palabras clave. Esta sección explica cómo configurar la búsqueda neuronal en OpenSearch sin servidor, incluidas los permisos necesarios, los procesadores compatibles y las diferencias clave con respecto a la implementación estándar de OpenSearch.
Con la búsqueda neuronal, usted puede realizar búsquedas semánticas en sus datos, lo que considera el significado semántico para comprender la intención de sus peticiones de búsqueda. Esta capacidad se basa en los siguientes componentes:
-
Procesador de canalización de ingesta de incrustaciones de texto
-
Consulta neuronal
-
Consulta neuronal dispersa
Búsqueda híbrida
Con la búsqueda híbrida, usted puede mejorar la relevancia de la búsqueda combinando las capacidades de búsqueda por palabras clave y búsqueda semántica. Para usar la búsqueda híbrida, cree una canalización de búsqueda que procese sus resultados y combine las puntuaciones de los documentos. Para obtener más información, consulte Canalizaciones de búsqueda
-
Procesador de canalización de búsqueda de normalización
Técnicas de normalización compatibles
-
min_max -
l2
Técnicas de combinación compatibles
-
arithmetic_mean -
geometric_mean -
harmonic_mean
Para obtener más información sobre las técnicas de normalización y combinación, consulte Campos del cuerpo de la petición
en el sitio web de la documentación de OpenSearch. -
-
Consulta híbrida
Consultas neuronales e híbridas
De forma predeterminada, OpenSearch calcula las puntuaciones de los documentos utilizando el algoritmo Okapi BM25 basado en palabras clave, que funciona bien para peticiones de búsqueda que contienen palabras clave. La búsqueda neuronal proporciona nuevos tipos de consultas para consultas en lenguaje natural y la capacidad de combinar búsqueda semántica y por palabras clave.
ejemplo : neural
"neural": { "vector_field": { "query_text": "query_text", "query_image": "image_binary", "model_id": "model_id", "k": 100 } }
Para obtener más información, consulte Consulta neuronal
ejemplo : hybrid
"hybrid": { "queries": [array of lexical, neural, or combined queries] }
Para obtener más información, consulte Consulta híbrida
Para configurar los componentes de búsqueda semántica en Amazon OpenSearch sin servidor, siga los pasos del tutorial de búsqueda neuronal
-
OpenSearch sin servidor solo admite modelos remotos. Debe configurar los conectores para los modelos alojados de forma remota. No es necesario implementar o eliminar modelos remotos. Para obtener más información, consulte Introducción a la búsqueda semántica e híbrida
en el sitio web de la documentación de OpenSearch. -
Espere hasta 15 segundos de latencia cuando realice búsquedas en su índice vectorial o busque canalizaciones de búsqueda e ingesta creadas recientemente.
Configuración de permisos
La búsqueda neuronal en OpenSearch sin servidor requiere los siguientes permisos. Para obtener más información, consulte Permisos de política compatibles.
ejemplo : Política de búsqueda neuronal
-
aoss:*Index: crea un índice vectorial donde se almacenan las incrustaciones de texto.
-
aoss:*CollectionItems: crea y registra modelos de incrustación de texto.
-
aoss:*MLResource: crea y registra modelos de incrustación de texto.
-
aoss:APIAccessAll: proporciona acceso a las API de OpenSearch para operaciones de búsqueda e ingesta.
A continuación, se describen las políticas de acceso a datos de la colección necesarias para la búsqueda neuronal. Reemplace los valores de marcador de posición con su información específica.
ejemplo Política de acceso a los datos
[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems", "aoss:UpdateCollectionItems", "aoss:DeleteCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResources"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] } ]