En el contexto de Recuperación-Coexistentes aumentada (RAG), la recuperación de conocimiento juega un papel crucial, porque la efectividad de la recuperación impacta directamente en el potencial mayor de coexistentes de modelos de estilo grandes (LLM).
En la contemporaneidad, en la recuperación de RAG, el enfoque más popular es utilizar la búsqueda semántica basada en vectores densos. Sin confiscación, las incrustaciones densas no funcionan aceptablemente en la comprensión de términos especializados o argot en dominios verticales. Un método más progresista es combinar la recuperación tradicional basada en índice invertido (BM25), pero este enfoque requiere consagrar una cantidad considerable de tiempo a personalizar léxicos, diccionarios de sinónimos y diccionarios de palabras vacías para la optimización.
En esta publicación, en circunstancia de utilizar el operación BM25, presentamos la recuperación de vectores dispersos. Este enfoque ofrece una expansión de términos mejorada y, al mismo tiempo, mantiene la interpretabilidad. Analizamos los pasos para integrar vectores dispersos y densos para la recuperación de conocimiento utilizando Servicio OpenSearch de Amazon y realizar algunos experimentos en algunos conjuntos de datos públicos para demostrar sus ventajas. El código completo está apto en el repositorio de Github. aws-samples/opensearch-recuperación-densa-de-spase.
¿Qué es la recuperación de vectores dispersos?
La recuperación de vectores dispersos es un método de recuperación basado en un índice invertido, con un paso adicional de expansión de términos. Viene en dos modos: solo documento y bi-codificadorPara obtener más detalles sobre estos dos términos, consulte Mejorar la recuperación de documentos con codificadores semánticos dispersos.
En pocas palabras, en el modo de solo documento, la expansión de términos se realiza solamente durante la ingesta de documentos. En el modo de bicodificador, la expansión de términos se realiza tanto durante la ingesta como en el momento de la consulta. El modo de bicodificador mejoramiento el rendimiento, pero puede causar más latencia. La próximo figura demuestra su efectividad.
Búsqueda dispersa neuronal en OpenSearch se logra un 12,7 % (solo documento) ~ 20 % (bi-codificador) más suspensión en NDCG@10, comparable al maniquí vectorial denso TAS-B.
Con la búsqueda dispersa neuronal, no es necesario configurar el diccionario usted mismo. Este expandirá automáticamente los términos para el beneficiario. Adicionalmente, en un índice OpenSearch con un conjunto de datos pequeño y especializado, si aceptablemente los términos coincidentes son generalmente pocos, la frecuencia de términos calculada igualmente puede ocasionar ponderaciones de términos poco confiables. Esto puede ocasionar un sesgo o distorsión significativos en la puntuación BM25. Sin confiscación, la recuperación de vectores dispersos primero expande los términos, lo que aumenta en gran medida la cantidad de términos coincidentes en comparación con antaño. Esto ayuda a ocasionar puntuaciones más confiables.
Aunque las métricas absolutas del maniquí de vector disperso no pueden exceder las de los mejores modelos de vector denso, posee características únicas y ventajosas. Por ejemplo, en términos de la métrica NDCG@10, como se menciona en Mejorar la recuperación de documentos con codificadores semánticos dispersoslas evaluaciones de algunos conjuntos de datos revelan que su rendimiento podría ser mejor que el de los modelos vectoriales densos de última coexistentes, como en el DBPedia conjunto de datos. Esto indica un cierto nivel de complementariedad entre ellos. Intuitivamente, para algunas entradas de beneficiario extremadamente cortas, los vectores generados por modelos de vectores densos pueden tener una incertidumbre semántica significativa, donde la superposición con un maniquí de vector disperso podría ser beneficiosa. Adicionalmente, la recuperación de vectores dispersos aún mantiene la interpretabilidad, y aún puede observar el cálculo de puntuación a través del comando de explicación. Para beneficiarse uno y otro métodos, OpenSearch ya ha introducido una función incorporada convocatoria búsqueda híbrida.
¿Cómo combinar lo denso y lo escaso?
1. Implementar un maniquí vectorial denso
Para obtener resultados de pruebas más valiosos, seleccionamos Cohere-embed-multilingüe-v3.0que es uno de los varios modelos populares que se utilizan en la producción de vectores densos. Podemos aceptar a él a través de La roca superiora del Amazonas y use las dos funciones siguientes para crear un conector para bedrock-cohere y luego regístrelo como maniquí en OpenSearch. Puede obtener su ID de maniquí a partir de la respuesta.
2. Implementar un maniquí de vector disperso
Actualmente, no se puede implementar el maniquí de vector disperso en un dominio de OpenSearch Service. Debe implementarlo en Amazon SageMaker primero, luego intégrelo a través de un conector de maniquí de OpenSearch Service. Para obtener más información, consulte Conectores ML de Amazon OpenSearch Service para servicios de AWS.
Complete los siguientes pasos:
2.1 En la consola del servicio OpenSearch, elija Integraciones en el panel de navegación.
2.2 En Integración con codificadores dispersos a través de Amazon SageMaker, elija configurar un dominio de VPC o un dominio sabido.
A continuación, configure la plantilla de AWS CloudFormation.
2.3 Ingrese los parámetros como se muestra en la próximo captura de pantalla.
2.4 Obtenga el ID del maniquí disperso de la salida de la pila.
3. Configurar canales para la ingestión y la búsqueda
Utilice el código próximo para crear canales de ingestión y búsqueda. Con estos dos canales, no es necesario realizar inferencia de modelos, solo ingestión de campos de texto.
3. Evaluación del desempeño de la recuperación
En la recuperación de conocimiento de RAG, normalmente nos centramos en la relevancia de los resultados principales, por lo que nuestra evaluación utiliza recall@4 como indicador métrico. Toda la prueba incluirá varios métodos de recuperación para comparar, como bm25_only
, sparse_only
, dense_only
, hybrid_sparse_dense
y hybrid_dense_bm25
.
El próximo script utiliza hybrid_sparse_dense
Para demostrar la dialéctica de la evaluación:
Resultados
En el contexto de RAG, por lo común, el desarrollador no presta atención a la métrica NDCG@10; el LLM detectará el contexto relevante automáticamente. Nos preocupamos más por la métrica de recuperación. Basándonos en nuestra experiencia con RAG, medimos recuperación@1, recuperación@4 y recuperación@10 para su narración.
El conjunto de datos BeIR/fiqa se utiliza principalmente para la evaluación de la recuperación, mientras que squad_v2
Se utiliza principalmente para evaluar la comprensión lectora. En términos de recuperación, squad_v2
es mucho menos complicado que BeIR/fiqa. En el contexto verdadero de RAG, la dificultad de recuperación puede no ser tan ingreso como con BeIR/fiqa, por lo que evaluamos uno y otro conjuntos de datos.
El hybird_dense_sparse
La métrica siempre es beneficiosa. La próximo tabla muestra nuestros resultados.
Conjunto de datos | BeIR/fiqa | escuadrón_v2 | ||||
---|---|---|---|---|---|---|
MétodoMétrica | Recordatorio@1 | Recordatorio@4 | Recordatorio a las 10 | Recordatorio@1 | Recordatorio@4 | Recordatorio a las 10 |
bm25 | 0,112 | 0,215 | 0,297 | 0,59 | 0,771 | 0,851 |
denso | 0,156 | 0,316 | 0,398 | 0,671 | 0,872 | 0,925 |
escaso | 0,196 | 0,334 | 0,438 | 0,684 | 0,865 | 0,926 |
híbrido_denso_disperso | 0,203 | 0,362 | 0,456 | 0,704 | 0,885 | 0,942 |
híbrido_denso_bm25 | 0,156 | 0,316 | 0,394 | 0,671 | 0,871 | 0,925 |
Conclusión
La nueva función de búsqueda dispersa neuronal de la traducción 2.11 de OpenSearch Service, cuando se combina con la recuperación de vectores densos, puede mejorar significativamente la efectividad de la recuperación de conocimiento en escenarios RAG. En comparación con la combinación de bm25 y la recuperación de vectores densos, es más sencilla de usar y tiene más probabilidades de alcanzar mejores resultados.
La traducción 2.12 del servicio OpenSearch ha actualizado recientemente su motor Lucene, lo que mejoramiento significativamente el rendimiento y la latencia de la búsqueda neuronal dispersa. Sin confiscación, la búsqueda neuronal dispersa presente solo admite inglés. En el futuro, es posible que se admitan otros idiomas. A medida que la tecnología siga evolucionando, se convertirá en una forma popular y ampliamente aplicable de mejorar el rendimiento de la recuperación.
Acerca del autor
Yuan Bo Li es un arquitecto de soluciones especializado en GenAI/AIML en Amazon Web Services. Sus intereses incluyen RAG (Retrieval-Augmented Generation) y tecnologías de agentes internamente del campo de GenAI, y se dedica a proponer soluciones técnicas GenAI innovadoras diseñadas para satisfacer diversas micción comerciales.
Charlie Yang es jefe de ingeniería de AWS en el esquema OpenSearch. Se centra en el formación espontáneo, la relevancia de las búsquedas y la optimización del rendimiento.
Río Xie es un doble en obra de soluciones de inteligencia sintético generativa en Amazon Web Services. River está interesado en el flujo de trabajo de agente/multiagente, la optimización de la inferencia de modelos de estilo grandes y le apasiona beneficiarse las tecnologías de inteligencia sintético generativa de vanguardia para desarrollar aplicaciones modernas que resuelvan desafíos comerciales complejos.
Ren Guo es jefe del equipo de arquitectos de soluciones especialistas en inteligencia sintético generativa para los dominios de AIML y datos en AWS, región de la Gran China.