Introducción
La función de búsqueda multimodal de OpenSearch combina la búsqueda por texto y la búsqueda vectorial. Ofrece una precisión superior a la lógica OR por sí sola, con menor latencia y menos sobrecarga de cómputo. La eficacia de este enfoque se ha demostrado en escenarios de búsqueda de preguntas y respuestas en el ámbito educativo. Esta arquitectura también es aplicable a otros casos de uso, como la recuperación de imágenes basada en vectores, la recuperación de fórmulas matemáticas y la recuperación personalizada.
Búsqueda por texto frente a búsqueda multimodal
¿Por qué usar la búsqueda multimodal para preguntas y respuestas basadas en fotos en educación? Este tipo de búsqueda difiere significativamente de las búsquedas de texto estándar en sitios web o comercio electrónico por las siguientes razones:
Las consultas son extensas: mientras que las consultas de búsqueda estándar suelen tener un límite de 30 términos, las de preguntas y respuestas pueden contener hasta 100.
Las consultas pueden incluir errores de OCR: con frecuencia se generan a partir de texto extraído de imágenes mediante reconocimiento óptico de caracteres (OCR). Los errores de reconocimiento en términos clave afectan gravemente la recuperación y clasificación de resultados.
Soluciones de búsqueda solo por texto
-
Consultas con lógica OR:
Para reducir las consultas sin resultados, los sistemas de preguntas y respuestas educativos suelen utilizar la lógica OR predeterminada de Elasticsearch. Este enfoque genera alta latencia de búsqueda y una gran carga computacional.
OpenSearch también admite la lógica OR y permite el procesamiento paralelo para mitigar la latencia; sin embargo, la carga computacional general sigue siendo elevada.
-
Consultas con lógica AND:
En comparación con la lógica OR, un módulo genérico de análisis de consultas produce una mayor tasa de consultas sin resultados y menor precisión global.
Un módulo de análisis optimizado y personalizado para el sector educativo mejora notablemente el rendimiento y alcanza una precisión cercana a la de la lógica OR.
Recuperación por texto y vectores
Objetivo: ampliar la recuperación mediante la vectorización de texto combinada con consultas de lógica AND. Este método logra mayor precisión que la lógica OR, manteniendo baja la latencia y la sobrecarga de cómputo. La recuperación vectorial utiliza un modelo BERT con las siguientes optimizaciones especiales para la búsqueda de preguntas y respuestas educativas:
El modelo BERT emplea StructBERT, desarrollado por Alibaba DAMO Academy y adaptado al sector educativo.
El motor de búsqueda vectorial es Proxima, desarrollado por Alibaba DAMO Academy, y ofrece una precisión y velocidad muy superiores a las alternativas de código abierto.
Los datos de entrenamiento se acumulan continuamente a partir de los registros de búsqueda de los clientes, lo que permite mejoras constantes en el rendimiento.
Resultados:
La tasa de recuperación iguala a la de la lógica OR.
La precisión supera entre un 3 % y un 5 % a la de la lógica OR.
El número total de documentos recuperados se reduce por un factor de 40, y la latencia de búsqueda disminuye más de 10 veces.
Configurar la búsqueda multimodal
Configure una Industry-specific Enhanced Edition for education. Una vez completada la configuración, compruebe que el índice vectorial esté correctamente definido. En este ejemplo se utiliza "Vector - K12 Education Vector". En la página Index Structure, la lista Index Fields muestra tres índices: default (índice de texto predeterminado que incluye los campos de título y contenido, y usa el analizador "Industry - Education Q&A"; por ejemplo,
query=default:"cloud search"), vector (índice vectorial que incluye el campo de título y usa el analizador Vector - K12 Education Vector; por ejemplo,query=vector:"cloud search") e id (incluye el campo id y usa el analizador "Keyword"; por ejemplo,query=id:"cloud search"). El índice vector y su analizador correspondiente Vector - K12 Education Vector son los ajustes clave para implementar la búsqueda multimodal.Cree una regla de análisis de consultas. Agregue la función de vectorización de texto y configure el índice vectorial especificado en el paso 1. En el panel de navegación izquierdo de la consola, seleccione Search Algorithm Center > Query Analysis. Localice la regla de análisis de consultas deseada, como sys_default, y haga clic en Edit. En el cuadro de diálogo Edit Rule, establezca Industry Type en Education, Selected Category en Q&A y Query Rewriting Policy en AND. En la sección Features, active la casilla Text Vectorization. En la lista desplegable Vector Index, seleccione vector y haga clic en OK.
Establezca una directiva de ordenamiento. De forma predeterminada, la Industry-specific Enhanced Edition para educación crea dos directivas de ordenamiento fino basadas en scripts de Cava:
sys_text_rankpara el índice de texto ysys_vector_rankpara el índice vectorial. En el panel de navegación izquierdo de la consola, seleccione Search Algorithm Center > Sort Configuration para ir a la pestaña Policy Management. La lista de directivas contiene las directivas de ordenamiento fino integradas en el sistema:sys_text_rankysys_vector_rank. Su estado es Published.Cree una directiva de búsqueda multimodal. El procedimiento consiste en especificar un nombre de directiva, definir los parámetros de búsqueda multimodal (índices vectoriales y de texto) y configurar el ordenamiento combinado (lógica de ordenamiento y cantidad de documentos por ordenar). Seleccione una Target Application e introduzca un Query Policy Name, como
test_strategy_1. En la sección Multimodal Search Configuration, active tanto la casilla Vector Search como Text Search. Para la búsqueda vectorial, establezca Fine Sort ensys_vector_ranky Result Proportion en 50 %. Para la búsqueda por texto, establezca Fine Sort ensys_text_ranky la proporción de resultados en 50 %. En la sección Merge Sort Configuration, establezca Merge Sort ensys_text_ranky Number of Documents to Sort en5000. A continuación, haga clic en OK.-
Pruebe en la consola:
Suponga que la consulta es "search test", la directiva de búsqueda multimodal es "sys_strategy" y la regla de análisis de consultas es "sys_default". Nota: los tres parámetros son obligatorios. Puede omitir el parámetro qp si la regla de análisis de consultas correspondiente es la predeterminada. El formato de la solicitud de consulta es el siguiente:
query=default:'search test'&search_strategy=sys_strategy&raw_query=search test&qp=sys_defaultConfiguración de parámetros del SDK: (el siguiente ejemplo está en Java).
... // Define the Config object to set parameters for the config clause, such as pagination or response format. Config config = new Config(Lists.<String>newArrayList(appName)); config.setStart(0); config.setHits(10); // Set the response format to JSON. config.setSearchFormat(SearchFormat.FULLJSON); // Create a SearchParams object. SearchParams searchParams = new SearchParams(config); // Set the parameters required for the query. HashMap<String,String> paraMap=new HashMap<String,String>(); // Set raw_query. paraMap.put("raw_query","search test"); // Set the multimodal search policy. paraMap.put("search_strategy","sys_strategy"); searchParams.setCustomParam(paraMap); // Set the query analysis rule. List<String> qpName = new ArrayList<String>(); qpName.add("sys_default"); // Set the name of the query analysis rule. searchParams.setQueryProcessorNames(qpName); ...
Limitaciones
La función de búsqueda multimodal solo está disponible para aplicaciones exclusivas.
La búsqueda multimodal no admite las cláusulas aggregate ni distinct.
Se pueden crear un máximo de 10 directivas de búsqueda multimodal por aplicación.
En la configuración de búsqueda multimodal, deben habilitarse tanto Text Search como Vector Search, y la suma de sus proporciones de resultados debe ser 100 %.
En la configuración de búsqueda multimodal, seleccione una directiva de ordenamiento preliminar y otra de ordenamiento fino para Text Search y Vector Search entre las disponibles en Sort Configuration.
En la configuración de ordenamiento combinado, Merge Sort es un parámetro obligatorio; debe seleccionar una directiva de ordenamiento fino. También puede elegir "None", que es la selección predeterminada. Number of Documents to Sort también es obligatorio; introduzca un valor mayor que 0 y no superior a 5,000.
Para la función de vectorización de texto en el análisis de consultas, solo se pueden utilizar índices vectoriales generados automáticamente por el sistema.
Si desea utilizar la búsqueda multimodal con un índice vectorial personalizado, póngase en contacto con nosotros.