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 Serverless
Introducción
La función de enriquecimiento semántico automático puede ayudar a mejorar la relevancia de la búsqueda hasta en un 20% con respecto a la búsqueda léxica. El enriquecimiento semántico automático elimina el pesado trabajo indiferenciado que supone gestionar tu propia infraestructura de modelos de aprendizaje automático (ML) y la integración con el motor de búsqueda. La función está disponible para los tres tipos de colecciones sin servidor: búsqueda, series temporales y vectoriales.
¿Qué es la búsqueda semántica
Los motores de búsqueda tradicionales se basan en la word-to-word coincidencia (denominada búsqueda léxica) para encontrar los resultados de las consultas. Aunque esto funciona bien para consultas específicas, como números de modelos de televisores, tiene dificultades para realizar búsquedas más abstractas. Por ejemplo, al buscar «zapatos para la playa», una búsqueda léxica solo encuentra las palabras individuales «zapatos», «playa», «para» y «el» en 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.
La búsqueda semántica arroja resultados de consulta que incorporan no solo la coincidencia de palabras clave, sino también la intención y el significado contextual de la búsqueda del usuario. Por ejemplo, si un usuario busca «cómo tratar un dolor de cabeza», es posible que un sistema de búsqueda semántica arroje los siguientes resultados:
-
Remedios para la migraña
-
Técnicas de manejo del dolor
-
Over-the-counter analgésicos
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, ofrecemos transparencia mediante una breve descripción del modelo y 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 prediseñado y gestionado por el servicio que funciona de forma eficaz sin necesidad de 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 significancia se almacenan en un 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
Nuestra validación del rendimiento durante el desarrollo de las funciones utilizó el conjunto de datos de recuperación de pasajes de MS MARCO
-
Idioma inglés: mejora la relevancia del 20% con respecto a la búsqueda léxica. También redujo la latencia de búsqueda del P90 en un 7,7% con respecto a la búsqueda léxica (BM25 es de 26 ms y el enriquecimiento semántico automático es de 24 ms).
-
Multilingüe: la relevancia mejoró un 105% con respecto a la búsqueda léxica, mientras que la latencia de la búsqueda del P90 aumentó un 38,4% con respecto a la búsqueda léxica (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 las colecciones sin servidor
Configurar un índice con el enriquecimiento semántico automático activado para sus campos de texto es fácil y puede gestionarlo mediante la consola y las CloudFormation plantillas durante la creación de un APIs nuevo índice. Para habilitarlo en un índice existente, debe volver a crear el índice con el enriquecimiento semántico automático activado 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. Cuando selecciones una colección, encontrarás el botón de creación de índice en la parte superior de la consola. Al hacer clic en el botón de creación de índice, encontrará opciones para definir campos de enriquecimiento semántico automáticos. En un índice, puede tener combinaciones de enriquecimiento semántico automático para campos en inglés y multilingüe, así como para campos léxicos.
Experiencia con las API: para crear un índice de enriquecimiento semántico automático mediante la interfaz de línea de comandos (AWS CLI), utilice el AWS comando create-index:
aws opensearchserverless create-index \ --id [collection_id] \ --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. Si se establece el parámetro semantic_enrichment, se habilita el enriquecimiento semántico automático en el campo title_semantic. Puede usar el campo language_options para especificar el inglés o el multilingüe.
aws opensearchserverless 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 opensearchserverless get-index \ --id [collection_id] \ --index-name [index_name] \
También puede usar CloudFormation plantillas (tipo:AWS::OpenSearchServerless::CollectionIndex) para crear una búsqueda semántica durante el aprovisionamiento de la colección y después de crearla.
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 realizar ninguna configuración adicional.
Ingesta de datos: al añadir documentos al índice, el sistema automáticamente:
-
Analiza los campos de texto que designó para el enriquecimiento semántico
-
Genera codificaciones semánticas mediante OpenSearch un modelo disperso gestionado por el servicio
-
Almacena estas representaciones enriquecidas junto con los datos originales
Este proceso utiliza los conectores OpenSearch de aprendizaje automático 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 manera eficiente sin tener que volver a invocar el modelo de aprendizaje automático. Esto significa que obtiene una mayor relevancia de búsqueda sin sobrecargar la latencia de búsqueda adicional.
Configuración de permisos para el enriquecimiento semántico automático
Antes de crear un índice de enriquecimiento semántico automatizado, debe configurar los permisos necesarios. En esta sección, se explican los permisos necesarios y cómo configurarlos.
Permisos de política de IAM
Utilice la siguiente política AWS Identity and Access Management (IAM) para conceder los permisos necesarios para trabajar con el enriquecimiento semántico automático:
- Permisos de claves
-
-
Los permisos
aoss:*Indexpermiten la administración de índices. -
El
aoss:APIAccessAllpermiso permite las operaciones de la API OpenSearch -
Para restringir los permisos a una colección específica, reemplace
"Resource": "*"con el ARN de la colección.
-
Configurar los permisos de acceso a datos
A fin de configurar un índice para el enriquecimiento semántico automático, debe contar con las políticas de acceso a datos adecuadas que concedan permiso de acceso a los recursos de índices, canalizaciones y colecciones de modelos. Para obtener más información acerca de las políticas de acceso a datos, consulte Control de acceso a datos para Amazon OpenSearch Serverless. Para obtener información acerca del procedimiento de configuración de una política de acceso a datos, consulte Creación de políticas de acceso a los datos (consola).
Permisos de acceso a 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" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResource"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, ]
Permisos de acceso a la red
Para permitir que el servicio acceda APIs a las colecciones privadas, debe configurar políticas de red que permitan el acceso necesario entre la API del servicio y la colección. Para obtener más información sobre las políticas de red, consulte Acceso a la red para Amazon OpenSearch Serverless.
[ { "Description":"Enable automatic semantic enrichment in a private collection", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection_name" ] } ], "AllowFromPublic":false, "SourceServices":[ "aoss.amazonaws.com" ], } ]
Configuración de los permisos de acceso a la red para una colección privada
-
Inicie sesión en la consola de OpenSearch servicio de https://console.aws.amazon.com/aos/su casa.
-
En el panel de navegación de la izquierda, seleccione Políticas de red. A continuación, realice alguna de las operaciones siguientes:
-
Elija un nombre de política existente y seleccione Editar.
-
Elija Crear política de red y configure los detalles de la política.
-
-
En el área Tipo de acceso, seleccione Privado (recomendado) y, a continuación, seleccione Acceso privado al servicio de AWS .
-
En el campo de búsqueda, seleccione Servicio y, a continuación, aoss.amazonaws.com.
-
En el área Tipo de recurso, selecciona la casilla Habilitar el acceso al OpenSearch punto final.
-
Para Buscar en colecciones o introducir términos prefijos específicos, en el campo de búsqueda, seleccione Nombre de la colección. A continuación, escriba o seleccione el nombre de las colecciones que desee asociar a la política de red.
-
Seleccione Crear para una nueva política de red o Actualizar para una política de red existente.
La consulta se reescribe
El enriquecimiento semántico automático convierte automáticamente las consultas «coincidentes» existentes en consultas de búsqueda semántica sin necesidad de modificar las consultas. Si una consulta de coincidencia forma parte de una consulta compuesta, el sistema recorre la estructura de la consulta, busca las consultas coincidentes y las reemplaza por consultas de dispersión neuronal. Actualmente, la función solo permite reemplazar las consultas «coincidentes», tanto si se trata de una consulta independiente como si forma parte de una consulta compuesta. No se admite la opción «multi_match». Además, la función admite todas las consultas compuestas para reemplazar sus consultas de coincidencia anidadas. Las consultas compuestas incluyen: bool, boost, 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 small-to-medium dimensionados 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 aumenta la relevancia en la mayoría de los casos de uso, puede que no sea óptima en algunos escenarios. Ten en cuenta las siguientes limitaciones a la hora de decidir si vas a implementar el enriquecimiento semántico automático para tu caso de uso específico.
-
Documentos muy largos: el modelo disperso actual procesa solo los primeros 8.192 símbolos de cada documento en inglés. En el caso de los documentos multilingües, se trata de 512 fichas. En el caso de artículos extensos, considere 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 en el análisis de registros, donde la coincidencia exacta suele ser suficiente. 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 Fuente derivada.
Precios
OpenSearch Serverless 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 le cobrará por el uso real durante la indexación. Puedes monitorizar este consumo mediante la SemanticSearch OCU CloudWatch métrica de Amazon. Para obtener detalles específicos sobre los límites de los tokens del modelo, el volumen de procesamiento por OCU y un ejemplo de cálculo, visita OpenSearch Precios de servicios.