Athrun Data Intelligence


Los motores de búsqueda tradicionales dependen de la coincidencia de palabra a palabra (denominado búsqueda léxica) para encontrar resultados para consultas. Aunque esto funciona correctamente para consultas específicas como los números de modelos de televisión, lucha con búsquedas más abstractas. Por ejemplo, cuando se rebusca «zapatos para la playa», una búsqueda léxica simplemente coincide con las palabras individuales «zapatos», «playa», «para» y «el» en los utensilios del catálogo, que potencialmente faltan productos relevantes como «sandalias resistentes al agua» o «calzado de surf» que no contienen los términos de búsqueda exactos.

Modelos de idiomas grandes (LLMS) Cree incrustaciones vectoriales densas para el texto que expanden la recuperación más allá de los límites de las palabras individuales para incluir el contexto en el que se usan las palabras. Incremedios de vectores densos capturan la relación entre zapatos y playas aprendiendo con qué frecuencia ocurren juntos, permitiendo una mejor recuperación para consultas más abstractas a través de lo que se fogata búsqueda semántica.

Los vectores dispersos combinan los beneficios de la búsqueda léxica y semántica. El proceso comienza con un tokenizador de obra de palabras para crear un conjunto establecido de tokens a partir del texto. Un maniquí de transformador luego asigna pesos a estos tokens. Durante la búsqueda, el sistema calcula el producto DOT de los pesos en los tokens (del conjunto corto) de la consulta con tokens del documento de destino. Obtiene un puntaje combinado de los términos (tokens) cuyos pesos son altos tanto para la consulta como para el objetivo. Los vectores dispersos codifican información semántica, como vectores densos, y suministran una coincidencia de palabra a palabra a través del producto DOT, lo que le brinda una coincidencia híbrida de semántico jerga. Para una comprensión detallada de las integridades vectoriales dispersas y densas, visite Mejoría de la recuperación de documentos con codificadores semánticos escasos En el blog de OpenSearch.

Ganancia semántico mecánico para Amazon OpenSearch Servidor sin ser Hace que la implementación de una búsqueda semántica con vectores dispersos sea ligera. Ahora puede estudiar con mejoras de relevancia de búsqueda e implementar en la producción con solo unos pocos clics, no requiere un compromiso a amplio plazo o una inversión auténtico. En esta publicación, mostramos cómo el ganancia semántico mecánico elimina la fricción y hace que la implementación de la búsqueda semántica de datos de texto sea sin problemas, con instrucciones paso a paso para mejorar su funcionalidad de búsqueda.

Ganancia semántico mecánico

Ya podría mejorar la puntuación de relevancia de búsqueda más allá de la puntuación léxica predeterminada de OpenSearch con el Okapi BM25 Cálculo, integración de modelos de vector denso y vectores dispersos para la búsqueda semántica utilizando el ámbito del conector de OpenSearch. Sin secuestro, la implementación de la búsqueda semántica en OpenSearch Serverless ha sido compleja y costosa, lo que requiere selección de modelos, alojamiento e integración con una colección OpenSearch Servidor.

El ganancia semántico mecánico le permite codificar automáticamente sus campos de texto en sus colecciones de OpenSearch Servidor como vectores dispersos simplemente configurando el tipo de campo. Durante la ingestión, OpenSearch Servidor sin procesar automáticamente los datos a través de un servicio administrado enseñanza mecánico (Ml) Maniquí, Convertir texto a vectores dispersos en formato nativo de Lucene.

El ganancia semántico mecánico admite opciones tanto solo en inglés como multilingüe. La variación multilingüe apoya los siguientes idiomas: árabe, bengalí, chino, inglés, finlandés, francés, hindi, indonesio, japonés, coreano, persa, ruso, castellano, swahili y telugu.

Detalles del maniquí y rendimiento

El ganancia semántico mecánico utiliza un maniquí disperso pre-capacitado administrado por el servicio que funciona de forma efectiva sin requerir el ajuste fino personalizado. El maniquí analiza los campos que especifica, expandiéndolos en vectores dispersos basados en asociaciones aprendidas de diversos datos de capacitación. Los términos ampliados y sus pesos de importancia se almacenan en el formato de índice de luceno nativo para una recuperación competente. Hemos optimizado este proceso utilizando modo de solo documentodonde la codificación ocurre solo durante la ingestión de datos. Las consultas de búsqueda simplemente se tokenizan en espacio de procesarse a través del maniquí disperso, lo que hace que la posibilidad sea rentable y rentable.

Nuestra fuerza de rendimiento durante el avance de características utilizó el Sra. Situación conjunto de datos de recuperación de pasaje, con pasajes con un promedio de 334 caracteres. Para la puntuación de relevancia, medimos la fruto acumulativa con descuento normalizada promedio (NDCG) para los primeros 10 resultados de búsqueda (NDCG@10) en el Beir punto de remisión para contenido inglés y promedio ndcg@10 en Miracl para contenido multilingüe. Evaluamos la latencia a través del costado del cliente, mediciones 90 ° porcentral (P90) y respuesta de búsqueda P90 tomó títulos. Estos puntos de remisión proporcionan indicadores de rendimiento de itinerario de almohadilla tanto para la relevancia de búsqueda como para los tiempos de respuesta.

La futuro tabla muestra el punto de remisión de ganancia semántico mecánico.

Idioma Mejoría de relevancia Latencia de búsqueda P90
Inglés 20.0% sobre búsqueda léxica 7.7% beocio latencia sobre la búsqueda léxica (BM25 es 26 ms, y el ganancia semántico mecánico es de 24 ms)
Plurilingüe 105.1% sobre búsqueda léxica 38.4% de latencia maduro sobre la búsqueda léxica (BM25 es 26 ms, y el ganancia semántico mecánico es de 36 ms)

Dada la naturaleza única de cada carga de trabajo, le recomendamos que evalúe esta característica en su entorno de avance utilizando sus propios criterios de evaluación comparativa antaño de tomar decisiones de implementación.

Fijación de precios

OpenSearch Bills Servidor sin ganancia semántico mecánico basado en unidades de cuenta de OpenSearch (OCU) consumidas durante la gestación de vectores dispersos en el tiempo de indexación. Se le cobra solo por el uso actual durante la indexación. Puede monitorear este consumo utilizando el Amazon CloudWatch métrico SemanticSearchOCU. Para obtener detalles específicos sobre los límites de token maniquí y el rendimiento del pandeo por OCU, visite Precio de servicio de Amazon OpenSearch.

Requisitos previos

Antiguamente de crear un índice mecánico de ganancia semántico, verifique que se le otorgan los permisos necesarios para la tarea. Póngase en contacto con un administrador de la cuenta para obtener ayuda si es necesario. Para trabajar con el ganancia semántico mecánico en OpenSearch Servidor sin forma, necesita el nivel de cuenta Trámite de identidad y paso de AWS (IAM) Permisos mostrados en la futuro política. Los permisos sirven a los siguientes propósitos:

  • El aoss:*Index Los permisos de IAM se usan para crear y dirigir índices.
  • El aoss:APIAccessAll El permiso de IAM se utiliza para realizar operaciones de API de OpenSearch.
{
"Version": "2012-10-17",
    "Statement": (
        {
            "Effect": "Allow",
            "Action": (
              "aoss:CreateIndex",
              "aoss:GetIndex",
              "aoss:APIAccessAll",
            ),
            "Resource": ""
        }
    )
}

Asimismo necesita una política de paso a datos sin servidor de OpenSearch para crear y dirigir índices y capital asociados en la colección. Para más información, visite Control de paso a datos para Amazon OpenSearch Serverless En la Capitán de desarrolladores sin servidor de OpenSearch. Use la futuro política:

(
    {
        "Description": "Create index permission",
        "Rules": (
            {
                "ResourceType": "index",
                "Resource": ("index//*"),
                "Permission": (
                  "aoss:CreateIndex", 
                  "aoss:DescribeIndex",                  
"aoss:ReadDocument",
    "aoss:WriteDocument"
                )
            }
        ),
        "Principal": (
            "arn:aws:iam:::role/"
        )
    },
    {
        "Description": "Create pipeline permission",
        "Rules": (
            {
                "ResourceType": "collection",
                "Resource": ("collection/"),
                "Permission": (
                  "aoss:CreateCollectionItems",
                  "aoss:"
                )
            }
        ),
        "Principal": (
            "arn:aws:iam:::role/"
        )
    },
    {
        "Description": "Create model permission",
        "Rules": (
            {
                "ResourceType": "model",
                "Resource": ("model//*"),
                "Permission": ("aoss:CreateMLResources")
            }
        ),
        "Principal": (
            "arn:aws:iam:::role/"
        )
    },
)

Para penetrar a colecciones privadas, configure la futuro política de red:

(
   {
      "Description":"Enable automatic semantic enrichment in private collection",
      "Rules":(
         {
            "ResourceType":"collection",
            "Resource":(
               "collection/"
            )
         }
      ),
      "AllowFromPublic":false,
      "SourceServices":(
         "aoss.amazonaws.com"
      ),
   }
)

Configurar un índice mecánico de ganancia semántico

Para configurar un índice mecánico de ganancia semántico, siga estos pasos:

  1. Para crear un índice de ganancia semántico mecánico utilizando el Interfaz de itinerario de comandos de AWS (AWS CLI), use el comando Crear índice:
aws opensearchserverless create-index 
    --id  
    --index-name  
    --index-schema 

  1. Para describir el índice creado, use el futuro comando:
aws opensearchserverless create-index 
    --id  
    --index-name  

Asimismo puedes usar AWS CloudFormation plantillas (Type: AWS::OpenSearchServerless::CollectionIndex) o el Consola de diligencia de AWS Para crear una búsqueda semántica durante el aprovisionamiento de la cosecha, así como a posteriori de la creación de la colección.

Ejemplo: Configuración del índice para la búsqueda del catálogo de productos

Esta sección muestra cómo configurar un índice de búsqueda de catálogo de productos. Implementarás una búsqueda semántica en el title_semantic campo (usando un maniquí en inglés). Para el product_id campo, mantendrá la funcionalidad de búsqueda léxica predeterminada.

En el futuro esquema de índice, el title_semantic el campo tiene un tipo de campo establecido en text y tiene parámetro semantic_enrichment Establecer en estado ENABLED. Establecer el semantic_enrichment El parámetro permite un ganancia semántico mecánico en el title_semantic campo. Puedes usar el language_options campo para especificar english o multi-lingual. Para esta publicación, generamos un campo de título no ememántico llamado title_non_semantic. Use el futuro código:

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"
            }
        }
    }
}'

Ingestión de datos

Una vez creado el índice, puede ingerir datos a través de mecanismos habitual de OpenSearch, incluidas las bibliotecas de clientes, las API REST o directamente a través de los paneles de OpenSearch. Aquí hay un ejemplo de cómo asociar múltiples documentos utilizando la API a suelto en las herramientas de avance de los paneles de OpenSearch:

POST _bulk
{"index": {"_index": "product-catalog"}}
{"title_semantic": "Red shoes", "title_non_semantic": "Red shoes", "product_id": "12345" }
{"index": {"_index": "product-catalog"}}
{"title_semantic": "Black shirt", "title_non_semantic": "Black shirt", "product_id": "6789" }
{"index": {"_index": "product-catalog"}}
{"title_semantic": "Blue hat", "title_non_semantic": "Blue hat", "product_id": "0000" }

Apañarse contra el índice mecánico de ganancia semántico

Posteriormente de ingerir los datos, puede consultar el índice:

POST product-catalog/_search?size=1
{
  "query": {
    "match":{
      "title_semantic":{
        "query": "crimson footwear"
      }
    }
  }
}

La futuro es la respuesta:

{
    "took": 240,
    "timed_out": false,
    "_shards": {
        "total": 0,
        "successful": 0,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 7.6092715,
        "hits": (
            {
                "_index": "product-catalog",
                "_id": "Q61b35YBAkHYIP5jIOWH",
                "_score": 7.6092715,
                "_source": {
                    "title_semantic": "Red shoes",
                    "title_non_semantic": "Red shoes",
                    "title_semantic_embedding": {
                        "feet": 0.85673976,
                        "dress": 0.48490667,
                        "##wear": 0.26745942,
                        "pants": 0.3588211,
                        "hats": 0.30846077,
                        ...
                    },
                    "product_id": "12345"
                }
            }
        )
    }
}

La búsqueda coincidió con éxito con el documento con Red shoes A pesar de la consulta usando crimson footweardemostrando el poder de la búsqueda semántica. El sistema generó automáticamente incrustaciones semánticas para el documento (truncado aquí para brevedad) que permiten estas coincidencias inteligentes basadas en el significado en espacio de las palabras secreto exactas.

Comparación de resultados de búsqueda

Ejecutando una consulta similar contra el índice no ememántico title_non_semanticpuede confirmar que los campos no semánticos no pueden averiguar en función del contexto:

GET product-catalog/_search?size=1
{
  "query": {
    "match":{
      "title_non_semantic":{
        "query": "crimson footwear"
      }
    }
  }
}

La futuro es la respuesta de búsqueda:

{
    "took": 398,
    "timed_out": ,
    "_shards": {
        "total": 0,
        "successful": 0,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 0,
            "relation": "eq"
        },
        "max_score": ,
        "hits": ()
    }
}

Limitaciones del ganancia semántico mecánico

La búsqueda semántica cibernética es más efectiva cuando se aplica a campos de tamaño pequeño a mediano que contiene contenido de jerigonza natural, como títulos de películas, descripciones de productos, reseñas y resúmenes. Aunque la búsqueda semántica alivio la relevancia para la mayoría de los casos de uso, podría no ser inmejorable para ciertos escenarios:

  • Documentos muy largos – El maniquí disperso coetáneo procesa solo las primeras 8,192 tokens de cada documento para inglés. Para documentos multilingües, son 512 tokens. Para artículos largos, considere implementar fragmentos de documentos para avalar un procesamiento de contenido completo.
  • Cargas de trabajo de descomposición de registro – El ganancia semántico aumenta significativamente el tamaño del índice, lo que podría ser innecesario para el descomposición de registro donde la coincidencia exacta generalmente es suficiente. El contexto semántico adicional rara vez alivio la efectividad de la búsqueda de registros lo suficiente como para documentar los mayores requisitos de almacenamiento.

Considere estas limitaciones al atreverse si implementar un ganancia semántico mecánico para su caso de uso específico.

Conclusión

El ganancia semántico mecánico marca un avance significativo para hacer que las capacidades de búsqueda sofisticadas sean accesibles para todos los usuarios sin servidor de OpenSearch. Al eliminar las complejidades tradicionales de implementar la búsqueda semántica, los desarrolladores de búsqueda ahora pueden mejorar su funcionalidad de búsqueda con un esfuerzo y un costo reducido. Nuestra característica admite múltiples idiomas y tipos de cosecha, con un maniquí de precios de cuota de cuota que lo hace económicamente viable para varios casos de uso. Los resultados de remisión son prometedores, particularmente para las búsquedas en inglés, que muestran una relevancia mejorada y una latencia corta. Sin secuestro, aunque la búsqueda semántica alivio la mayoría de los escenarios, ciertos casos de uso, como el procesamiento de artículos extremadamente largos o descomposición de registro, podrían beneficiarse de enfoques alternativos.

Le recomendamos que experimente con esta característica y descubra cómo puede optimizar su implementación de búsqueda para que pueda ofrecer mejores experiencias de búsqueda sin la sobrecarga de la diligencia de la infraestructura de ML. Mira el video y tecnología documentación Para detalles adicionales.


Sobre los autores

Manejador es director de inmueble de soluciones para servicios de búsqueda en Amazon Web Services, con sede en Palo Parada, CA. Jon trabaja en estrecha colaboración con el servicio de OpenSearch y Amazon OpenSearch, brindando ayuda y orientación a una amplia tonalidad de clientes que tienen cargas de trabajo generativas de IA, búsqueda y descomposición de registros para OpenSearch. Antiguamente de unirse a AWS, la carrera de Jon como desarrollador de software incluía cuatro primaveras de codificación de un motor de búsqueda de comercio electrónico a gran escalera. Jon posee una estudios en las artes de la Universidad de Pensilvania, y una Destreza en Ciencias y un Ph. D. en informática e inteligencia fabricado de la Universidad Northwestern.

Arjun Kumar Giri es ingeniero principal en AWS trabajando en el plan OpenSearch. Principalmente trabaja en la inteligencia fabricado y el enseñanza mecánico de OpenSearch (AI/ML) y las características de búsqueda semántica. Le apasiona la IA, ML y la construcción de sistemas escalables.

Siddhant Gupta es un apoderado de producto senior (técnico) en AWS, encabezando la innovación de IA interiormente del plan OpenSearch de Hyderabad, India. Con una comprensión profunda de la inteligencia fabricado y el enseñanza mecánico, Siddhant Architects aparece que democratizan las capacidades avanzadas de IA, lo que permite a los clientes disfrutar todo el potencial de la IA sin requerir una amplia experiencia técnica. Su trabajo integra sin problemas las tecnologías de IA de vanguardia en sistemas escalables, cerrando la brecha entre los modelos de IA complejos y las aplicaciones prácticas fáciles de usar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *