View a markdown version of this page

Enriquecimiento semántico automático para Amazon Service OpenSearch - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Enriquecimiento semántico automático para Amazon Service OpenSearch

Introducción

Amazon OpenSearch Service utiliza la concordancia palabra a palabra (búsqueda léxica) para encontrar resultados, al igual que otros motores de búsqueda tradicionales. Este enfoque funciona bien para consultas específicas, como códigos de producto o números de modelo, pero tiene problemas con las búsquedas abstractas, en las que es crucial comprender la intención del usuario. Por ejemplo, cuando buscas «zapatos para la playa», la búsqueda léxica busca palabras individuales como «zapatos», «playa», «para» y «el» de los artículos del catálogo, y es posible que no aparezcan productos relevantes, como «sandalias resistentes al agua» o «calzado de surf», que no contienen los términos de búsqueda exactos.

El enriquecimiento semántico automático resuelve esta limitación al tener en cuenta tanto las coincidencias de palabras clave como el significado contextual de las búsquedas. Esta función comprende la intención de búsqueda y mejora la relevancia de la búsqueda hasta en un 20%. Activa esta función para los campos de texto de tu índice para mejorar los resultados de búsqueda.

nota

El enriquecimiento semántico automático está disponible para los dominios de OpenSearch servicio que ejecuten la versión 2.19 o posterior. Además, los dominios con la OpenSearch versión 2.19 también deben tener la última actualización de la versión del software de servicio. La función está disponible tanto para los dominios de acceso público como para los de acceso a la VPC. En el caso de los dominios de VPC, debes autorizar el principal de las funciones del OpenSearch servicio antes de crear o administrar un índice de enriquecimiento semántico. Para obtener más información, consulte Uso del enriquecimiento semántico automático con los dominios de VPC.

Detalles del modelo y punto de referencia de rendimiento

Si bien esta función resuelve las complejidades técnicas entre bastidores sin exponer el modelo subyacente, proporcionamos transparencia mediante una breve descripción del modelo y los resultados comparativos para ayudarlo a tomar decisiones informadas sobre la adopción de funciones en sus cargas de trabajo críticas.

El enriquecimiento semántico automático utiliza un modelo disperso, previamente entrenado y administrado por los servicios, que funciona de manera eficaz sin necesidad de realizar ajustes personalizados. El modelo analiza los campos que especificas y los expande en vectores dispersos en función de las asociaciones aprendidas a partir de diversos datos de entrenamiento. Los términos ampliados y sus ponderaciones de significado se almacenan en el formato de índice nativo de Lucene para una recuperación eficiente. Hemos optimizado este proceso mediante el modo de solo documentos, en el que la codificación solo se produce durante la ingesta de datos. Las consultas de búsqueda simplemente se tokenizan en lugar de procesarse mediante el modelo disperso, lo que hace que la solución sea rentable y eficaz.

Nuestra validación del rendimiento durante el desarrollo de las funciones utilizó el conjunto de datos de recuperación de pasajes de MS MARCO, que incluía pasajes con un promedio de 334 caracteres. Para obtener la puntuación de relevancia, medimos la ganancia acumulada con descuentos normalizados (NDCG) promedio de los 10 primeros resultados de búsqueda (ndcg @10) en el índice de referencia BEIR para contenido en inglés y el promedio de ndcg @10 en MIRACL para contenido multilingüe. Evaluamos la latencia midiendo el percentil 90 (p90) del lado del cliente y tomando valores para la respuesta de búsqueda p90. https://github.com/beir-cellar/beir Estos puntos de referencia proporcionan indicadores de rendimiento de referencia tanto para la relevancia de la búsqueda como para los tiempos de respuesta. Estos son los números de referencia clave:

  • Idioma inglés: mejora de la relevancia del 20% con respecto a la búsqueda léxica. También redujo la latencia de búsqueda en la versión P90 en un 7,7% con respecto a la búsqueda léxica (la BM25 es de 26 ms y el enriquecimiento semántico automático es de 24 ms).

  • Multi-lingual - La relevancia mejoró un 105% con respecto a la búsqueda léxica, mientras que la latencia de búsqueda en la versión P90 aumentó un 38,4% con respecto a la búsqueda léxica (la BM25 es de 26 ms y el enriquecimiento semántico automático es de 36 ms).

Dada la naturaleza única de cada carga de trabajo, le recomendamos que evalúe esta función en su entorno de desarrollo utilizando sus propios criterios de evaluación comparativa antes de tomar decisiones de implementación.

Idiomas compatibles

La función es compatible con el inglés. Además, el modelo también admite árabe, bengalí, chino, finés, francés, hindi, indonesio, japonés, coreano, persa, ruso, español, swahili y telugu.

Configure un índice de enriquecimiento semántico automático para los dominios

Configurar un índice con el enriquecimiento semántico automático habilitado para los campos de texto es sencillo, y puede administrarlo mediante la consola, las API y las CloudFormation plantillas durante la creación de un nuevo índice. Para habilitarlo en un índice existente, debe volver a crear el índice con el enriquecimiento semántico automático habilitado para los campos de texto.

Experiencia de consola: la AWS consola le permite crear fácilmente un índice con campos de enriquecimiento semántico automático. Una vez que selecciones un dominio, encontrarás el botón de crear índice en la parte superior de la consola. Al hacer clic en el botón de crear índice, encontrará opciones para definir campos de enriquecimiento semántico automáticos. En un índice, puede incluir combinaciones de enriquecimiento semántico automático para campos lingüísticos e ingleses, así como para campos léxicos.

Cree una página de índice que muestre el campo con el nombre del índice, los campos de enriquecimiento semántico y los campos de búsqueda.

Experiencia con la API: para crear un índice de enriquecimiento semántico automático mediante la interfaz de línea de AWS comandos (AWS CLI), utilice el comando create-index:

aws opensearch create-index \ --domain-name [domain_name] \ --index-name [index_name] \ --index-schema [index_body] \

En el siguiente ejemplo de esquema de índice, el campo title_semantic tiene un tipo de campo establecido en texto y el parámetro semantic_enrichment establecido en el estado ENABLED. Al establecer el parámetro semantic_enrichment, se habilita el enriquecimiento semántico automático en el campo title_semantic. Puedes usar el campo language_options para especificar inglés o. MULTI-LINGUAL

aws opensearch create-index \ --id XXXXXXXXX \ --index-name 'product-catalog' \ --index-schema '{ "mappings": { "properties": { "product_id": { "type": "keyword" }, "title_semantic": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } }, "title_non_semantic": { "type": "text" } } } }'

Para describir el índice creado, utilice el siguiente comando:

aws opensearch get-index \ --domain-name [domain_name] \ --index-name [index_name] \

Actualice un índice existente

Puede actualizar un índice existente para agregar nuevos campos de enriquecimiento semántico, habilitar o deshabilitar el enriquecimiento semántico en los campos existentes o agregar campos de texto no semántico. Usa el update-index comando y proporciona solo los campos que deseas cambiar en. index-schema Los campos no incluidos en la solicitud no se modifican.

nota

settingsNo se puede actualizar el índice. Si incluye un settings bloque en la solicitud, la operación devuelve un error de validación. Para cambiar la configuración del índice, debe eliminar y volver a crear el índice.

Para actualizar un índice mediante AWS CLI, utilice el update-index comando:

aws opensearch update-index \ --domain-name [domain_name] \ --index-name [index_name] \ --index-schema [index_body]

Agregue un nuevo campo de enriquecimiento semántico

Puede agregar un text campo nuevo con el enriquecimiento semántico habilitado a un índice existente. El servicio configura automáticamente el modelo de aprendizaje automático, la canalización de ingesta y la canalización de búsqueda necesarios. Los nuevos documentos indexados tras la actualización se enriquecen automáticamente.

importante

Los documentos existentes no se rellenan. Para rellenar el campo de enriquecimiento semántico en los documentos existentes, debe volver a ingerirlos tras la actualización. Hasta que se vuelvan a ingerir, los documentos existentes no se beneficiarán de la búsqueda semántica en el nuevo campo.

aws opensearch update-index \ --domain-name my-domain \ --index-name product-catalog \ --index-schema '{ "mappings": { "properties": { "description": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } } } } }'

Inhabilite el enriquecimiento semántico en un campo

Para deshabilitar el enriquecimiento semántico en un campo que lo tiene habilitado actualmente, establézcalo en. status DISABLED El campo se elimina de las canalizaciones de ingesta y búsqueda. El campo de texto subyacente y su campo incrustado permanecen en el índice, pero ya no se enriquecen.

aws opensearch update-index \ --domain-name my-domain \ --index-name product-catalog \ --index-schema '{ "mappings": { "properties": { "title_semantic": { "type": "text", "semantic_enrichment": { "status": "DISABLED" } } } } }'

Limitaciones de actualización

Las siguientes operaciones no son compatibles con el índice, por update-index lo que es necesario eliminar y volver a crear:

  • Cambiar language_options en un campo que actualmente tiene activado el enriquecimiento semántico. Deshabilite primero el campo y, a continuación, vuelva a habilitarlo con la nueva opción de idioma.

  • Actualización de campos anidados. El enriquecimiento semántico solo se admite en los campos de nivel superiortext.

  • Actualización del índice. settings

nota

Si el índice tiene una canalización de ingesta o búsqueda personalizada que no se creó mediante el enriquecimiento semántico automático, la operación de actualización se bloquea. Elimine la canalización personalizada antes de agregar campos de enriquecimiento semántico.

Ingestión y búsqueda de datos

Una vez que haya creado un índice con el enriquecimiento semántico automático activado, la función funcionará automáticamente durante el proceso de ingesta de datos, sin necesidad de ninguna configuración adicional.

Ingesta de datos: cuando agregas documentos al índice, el sistema:

  • Analiza los campos de texto que designaste para el enriquecimiento semántico

  • Genera codificaciones semánticas mediante OpenSearch el modelo disperso administrado por el servicio

  • Almacena estas representaciones enriquecidas junto con los datos originales

Este proceso utiliza OpenSearch los conectores ML integrados y las canalizaciones de ingesta, que se crean y administran automáticamente entre bastidores.

Búsqueda: los datos de enriquecimiento semántico ya están indexados, por lo que las consultas se ejecutan de forma eficiente sin tener que volver a invocar el modelo de aprendizaje automático. Esto significa que obtienes una relevancia de búsqueda mejorada sin sobrecargar la latencia de búsqueda adicional.

Uso del enriquecimiento semántico automático con los dominios de VPC

El enriquecimiento semántico automático es compatible tanto en los dominios de acceso público como en los de acceso a la VPC que ejecuten la OpenSearch versión 2.19 o una posterior con la actualización más reciente del software de servicio.

En el caso de los dominios de acceso a la VPC, Amazon OpenSearch Service utiliza un servicio gestionado para aprovisionar el modelo de aprendizaje automático, la canalización de ingesta y la canalización de búsqueda que permiten el enriquecimiento semántico. Como un dominio de VPC no es de acceso público, debes autorizar a este servicio gestionado para que acceda a tu dominio antes de crear o administrar un índice de enriquecimiento semántico.

Autoriza el principal de las funciones del Servicio OpenSearch

Otorgue el acceso con la AuthorizeVpcEndpointAccess API, especificando features.opensearchservice.amazonaws.com como principal del servicio:

aws opensearch authorize-vpc-endpoint-access \ --domain-name domain-name \ --service "features.opensearchservice.amazonaws.com" \ --region region

Si la llamada se realiza correctamente, se devuelve:

{ "AuthorizedPrincipal": { "PrincipalType": "AWS Service", "Principal": "features.opensearchservice.amazonaws.com" } }

Solo necesitas autorizar al principal una vez por dominio. Este paso no es obligatorio para los dominios de acceso público.

Si intentas realizar una operación de índice de enriquecimiento semántico (create-index, update-indexget-index, odelete-index) en un dominio de VPC antes de autorizar al principal, la operación falla y se produce un error similar al siguiente:

An error occurred (AccessDeniedException) when calling the GetIndex operation: This operation is not authorized for VPC domain. Please authorize 'features.opensearchservice.amazonaws.com' through the AuthorizeVpcEndpointAccess API.

Tras autorizar al principal, vuelve a intentar la operación.

Experiencia de consola

Puedes completar la autorización y crear un índice de enriquecimiento semántico para un dominio de VPC directamente desde la consola. En la consola de Amazon OpenSearch Service, selecciona tu dominio de VPC para que aparezca el banner de enriquecimiento semántico automático y, a continuación, elige Ir a los índices para abrir la pestaña Índices.

Si el titular de las funciones del OpenSearch servicio aún no ha sido autorizado a acceder al dominio, la pestaña Índices muestra un mensaje de acceso denegado en lugar del botón Crear índice. Seleccione Autorizar a Principal para abrir la pestaña de puntos finales de la VPC.

La pestaña de índices muestra un banner de acceso denegado con un botón de autorización principal.

En la pestaña de puntos finales de la VPC, elija Autorizar el principal, seleccione Autorizar los principales de otros AWS servicios y elija OpenSearch Características del servicio. Esto lleva a cabo la misma autorización que la AuthorizeVpcEndpointAccess API descrita en la sección anterior.

Pestaña de puntos finales de la VPC con paneles de puntos finales de la VPC y principales autorizados.
Cuadro de diálogo Autorizar a los principales con las funciones de servicio seleccionadas. OpenSearch

Vuelva a la pestaña Índices. El botón Crear índice ya está disponible. Selecciona Crear índice para abrir la página de creación de índices, donde puedes definir tus campos de enriquecimiento semántico automáticos y crear el índice para tu dominio de VPC.

Tras la autorización, la pestaña de índices muestra un banner de información y un botón de creación de índice.
nota

En el caso de los dominios de VPC, la lista de índices no se puede mostrar en la consola debido a las restricciones de red de la VPC. Para ver tus índices, usa los OpenSearch paneles directamente con la URL del panel. Como no puedes ver los índices en la consola, tampoco puedes actualizar allí un índice de enriquecimiento semántico existente. Para actualizar un índice de enriquecimiento semántico en un dominio de VPC, usa la API. update-index Para obtener más información, consulte Actualice un índice existente.

Configuración de permisos para el enriquecimiento semántico automático

Antes de crear un índice con enriquecimiento semántico automático, debe configurar los permisos necesarios. En esta sección se explican los permisos necesarios para las diferentes operaciones de indexación y cómo configurarlos tanto para escenarios AWS Identity and Access Management (IAM) como para escenarios de control de acceso detallados.

Permisos de IAM

Los siguientes permisos de IAM son necesarios para las operaciones automáticas de enriquecimiento semántico. Estos permisos varían en función de la operación de indexación específica que desee realizar.

CreateIndex Permisos de API

Para crear un índice con enriquecimiento semántico automático, necesita los siguientes permisos de IAM:

  • es:CreateIndex— Cree un índice con capacidades de enriquecimiento semántico.

  • es:ESHttpHead— Realizar solicitudes HEAD para comprobar la existencia del índice.

  • es:ESHttpPut— Realizar solicitudes PUT para la creación de índices.

  • es:ESHttpPost— Realizar solicitudes POST para operaciones de indexación.

UpdateIndex Permisos de API

Para actualizar un índice existente con un enriquecimiento semántico automático, necesitas los siguientes permisos de IAM:

  • es:UpdateIndex— Actualizar la configuración y las asignaciones del índice.

  • es:ESHttpPut— Realizar solicitudes PUT para actualizar los índices.

  • es:ESHttpGet— Realizar solicitudes GET para recuperar la información del índice.

  • es:ESHttpPost— Realizar solicitudes POST para operaciones de indexación.

GetIndex Permisos de API

Para recuperar información sobre un índice con enriquecimiento semántico automático, necesita los siguientes permisos de IAM:

  • es:GetIndex— Recuperar la información y la configuración del índice.

  • es:ESHttpGet— Realizar solicitudes GET para recuperar los datos del índice.

DeleteIndex Permisos de API

Para eliminar un índice con enriquecimiento semántico automático, necesitas los siguientes permisos de IAM:

  • es:DeleteIndex— Eliminar un índice y sus componentes de enriquecimiento semántico.

  • es:ESHttpDelete— Realizar solicitudes de eliminación de índices.

Ejemplo de política de IAM

El siguiente ejemplo de política de acceso basado en la identidad proporciona los permisos necesarios para que un usuario administre los índices con un enriquecimiento semántico automático:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSemanticEnrichmentIndexOperations", "Effect": "Allow", "Action": [ "es:CreateIndex", "es:UpdateIndex", "es:GetIndex", "es:DeleteIndex", "es:ESHttpHead", "es:ESHttpGet", "es:ESHttpPut", "es:ESHttpPost", "es:ESHttpDelete" ], "Resource": "arn:aws:es:aws-region:111122223333:domain/domain-name" } ] }

Sustituya aws-region y por 111122223333 sus valores específicos. domain-name Puede restringir aún más el acceso especificando patrones de índice particulares en el ARN del recurso.

Fine-grained permisos de control de acceso

Si tu dominio de Amazon OpenSearch Service tiene activado el control de acceso detallado, necesitas permisos adicionales además de los permisos de IAM.

Los dominios creados a partir del 12 de agosto de 2026 incluyen una función de control de acceso detallada predefinidaautomatic_semantic_enrichment_full_access, que otorga los permisos necesarios para gestionar los índices de enriquecimiento semántico. Si tu dominio utiliza un control de acceso detallado, asigna tu rol de usuario o de backend a uno, en automatic_semantic_enrichment_full_access lugar de asignar manualmente los permisos individuales al clúster y al índice.

Si tu dominio se creó antes de esta fecha, usa los permisos de control de acceso detallados que se describen en las siguientes secciones. Se requieren los siguientes permisos para cada operación de indexación.

CreateIndex Permisos de API

Cuando se habilita el control de acceso detallado, se requieren los siguientes permisos adicionales para crear un índice con enriquecimiento semántico automático:

  • indices:admin/create— Crear operaciones de indexación.

  • indices:admin/mapping/put— Crear y actualizar mapeos de índices.

  • cluster:admin/opensearch/ml/create_connector— Cree conectores de aprendizaje automático para el procesamiento semántico.

  • cluster:admin/opensearch/ml/register_model— Registrar modelos de aprendizaje automático para el enriquecimiento semántico.

  • cluster:admin/ingest/pipeline/put— Cree canales de ingesta para el procesamiento de datos.

  • cluster:admin/search/pipeline/put— Cree canales de búsqueda para el procesamiento de consultas.

UpdateIndex Permisos de API

Cuando se habilita el control de acceso detallado, se requieren los siguientes permisos adicionales para actualizar un índice con el enriquecimiento semántico automático:

  • indices:admin/get— Recuperar la información del índice.

  • indices:admin/settings/update— Actualizar la configuración del índice.

  • indices:admin/mapping/put— Actualizar las asignaciones de índices.

  • cluster:admin/opensearch/ml/create_connector— Crear conectores de aprendizaje automático.

  • cluster:admin/opensearch/ml/register_model— Registrar modelos de aprendizaje automático.

  • cluster:admin/ingest/pipeline/put— Crear canalizaciones de ingesta.

  • cluster:admin/search/pipeline/put— Crear canales de búsqueda.

  • cluster:admin/ingest/pipeline/get— Recuperar la información de las canalizaciones de ingesta.

  • cluster:admin/search/pipeline/get— Recuperar la información de los oleoductos de búsqueda.

GetIndex Permisos de API

Cuando se habilita el control de acceso detallado, se requieren los siguientes permisos adicionales para recuperar información sobre un índice con enriquecimiento semántico automático:

  • indices:admin/get— Recuperar la información del índice.

  • cluster:admin/ingest/pipeline/get— Recuperar la información del oleoducto de ingesta.

  • cluster:admin/search/pipeline/get— Recuperar la información de los oleoductos de búsqueda.

DeleteIndex Permisos de API

Cuando se habilita el control de acceso detallado, se requiere el siguiente permiso adicional para eliminar un índice con enriquecimiento semántico automático:

  • indices:admin/delete— Eliminar operaciones de indexación.

Reescrituras de consultas

El enriquecimiento semántico automático convierte automáticamente las consultas de «coincidencia» existentes en consultas de búsqueda semántica sin necesidad de modificarlas. Si una consulta coincidente forma parte de una consulta compuesta, el sistema recorre la estructura de consultas, busca las consultas coincidentes y las reemplaza por consultas dispersas desde el punto de vista neuronal. Actualmente, la función solo admite la sustitución de consultas «coincidentes», tanto si se trata de una consulta independiente como si forma parte de una consulta compuesta. No se admite «multi_match». Además, la función admite todas las consultas compuestas para reemplazar las consultas de coincidencia anidadas. Las consultas compuestas incluyen: bool, boosting, constant_score, dis_max, function_score e hybrid.

Limitaciones del enriquecimiento semántico automático

La búsqueda semántica automática es más eficaz cuando se aplica a campos de tamaño pequeño a mediano que contienen contenido en lenguaje natural, como títulos de películas, descripciones de productos, reseñas y resúmenes. Si bien la búsqueda semántica mejora la relevancia en la mayoría de los casos de uso, puede que no sea óptima para ciertos escenarios. Tenga en cuenta las siguientes limitaciones a la hora de decidir si va a implementar el enriquecimiento semántico automático para su caso de uso específico.

  • Documentos muy largos: el modelo disperso actual procesa solo las primeras 8 192 fichas de cada documento para el inglés. En el caso de los documentos multilingües, son 512 fichas. En el caso de artículos extensos, considera la posibilidad de implementar la fragmentación de documentos para garantizar un procesamiento completo del contenido.

  • Cargas de trabajo de análisis de registros: el enriquecimiento semántico aumenta significativamente el tamaño del índice, lo que puede resultar innecesario para el análisis de registros, donde normalmente basta con una coincidencia exacta. El contexto semántico adicional rara vez mejora la eficacia de la búsqueda de registros lo suficiente como para justificar el aumento de los requisitos de almacenamiento.

  • El enriquecimiento semántico automático no es compatible con la función de fuente derivada.

  • Limitación: las solicitudes de inferencia de indexación están actualmente limitadas a 200 TPS para los dominios de servicio. OpenSearch Se trata de un límite flexible; ponte en contacto con el equipo de soporte para AWS obtener límites más altos.

Precios

Amazon OpenSearch Service factura el enriquecimiento semántico automático en función de las unidades de OpenSearch cálculo (OCUs) consumidas durante la generación de vectores dispersos en el momento de la indexación. Solo se te cobrará por el uso real durante la indexación de los campos de texto en los que hayas activado el enriquecimiento semántico automático. Una OCU de búsqueda semántica puede procesar 11,1 millones de fichas para contenido en inglés. Para procesar 2,4 mil millones de tokens, necesitarías alrededor de 216 búsquedas semánticas OCU-hours (2,4 mil millones/11,10 millones). Con un precio de 0,24 USD por búsqueda semántica OCU-hour, el coste de procesar 10 GB de datos para la búsqueda semántica automática sería de 51 dólares (216 x 0 dólares). OCU-hours 24/OCU-hora). No hay cargos adicionales de OCU por búsqueda semántica durante las operaciones de búsqueda o por el almacenamiento de datos.

Puedes supervisar este consumo mediante la métrica de Amazon CloudWatch . SemanticSearchOCU Para obtener información específica sobre los límites de los modelos de token, el volumen de procesamiento por OCU y un ejemplo de un ejemplo de cálculo, consulta los precios de los OpenSearch servicios.

compatible Regiones de AWS

El enriquecimiento semántico automático está disponible de la siguiente manera: Regiones de AWS

  • Este de EE. UU. (Norte de Virginia)

  • Este de EE. UU. (Ohio)

  • Oeste de EE. UU. (Oregón)

  • Asia-Pacífico (Mumbai)

  • Asia-Pacífico (Singapur)

  • Asia-Pacífico (Sídney)

  • Asia-Pacífico (Tokio)

  • Europa (Fráncfort)

  • Europa (Irlanda)

  • Europa (Estocolmo)

  • Europa (España)