[23 de agosto de 2023] retriv
0.2.2 ya está disponible!
Esta versión agrega soporte experimental para filtros y documentos de múltiples campos. Por favor, consulte la documentación de Advanced Retriever.
[18 de febrero de 2023] retriv
0.2.0 ya está disponible!
Esta versión agrega soporte para recuperación densa e híbrida. Dense Retrieval aprovecha la similitud semántica de las representaciones vectoriales de las consultas y los documentos, que pueden calcularse directamente mediante retriv
o importarse de otras fuentes. La recuperación híbrida combina los resultados de la recuperación tradicional, informalmente denominada recuperación dispersa, y recuperación densa para mejorar aún más la eficacia de la recuperación. Como la biblioteca se rehizo casi por completo, los índices creados con versiones anteriores ya no son compatibles.
retriv es un motor de búsqueda eficiente y fácil de usar implementado en Python que admite recuperación dispersa (búsqueda tradicional con BM25, TF-IDF), densa (búsqueda semántica) y recuperación híbrida (una combinación de recuperación dispersa y densa). Le permite construir un motor de búsqueda en una sola línea de código .
retriv se basa en Numba para operaciones vectoriales de alta velocidad y paralelización automática, PyTorch y Transformers para un fácil acceso y uso de modelos de lenguaje basados en Transformer, y Faiss para una búsqueda aproximada del vecino más cercano. Además, proporciona funcionalidades de ajuste automático para permitirle ajustar sus componentes internos con una mínima intervención.
Todos los perros perdigueros compatibles comparten la misma interfaz de búsqueda:
retriv ajusta automáticamente la configuración de Faiss para una búsqueda aproximada de vecinos más cercanos aprovechando AutoFaiss para garantizar un tiempo de respuesta de 10 ms según su hardware disponible. Además, ofrece una funcionalidad de ajuste automático de los parámetros del BM25, que requiere una mínima intervención del usuario. En su interior, retriv aprovecha Optuna, un marco de optimización de hiperparámetros, y ranx, una biblioteca de evaluación de recuperación de información, para probar varias configuraciones de parámetros para BM25 y elegir la mejor. Finalmente, puede equilibrar automáticamente la importancia de las puntuaciones de relevancia léxica y semántica calculadas por el Hybrid Retriever para maximizar la eficacia de la recuperación.
python>=3.8
pip install retriv
# Note: SearchEngine is an alias for the SparseRetriever
from retriv import SearchEngine
collection = [
{ "id" : "doc_1" , "text" : "Generals gathered in their masses" },
{ "id" : "doc_2" , "text" : "Just like witches at black masses" },
{ "id" : "doc_3" , "text" : "Evil minds that plot destruction" },
{ "id" : "doc_4" , "text" : "Sorcerer of death's construction" },
]
se = SearchEngine ( "new-index" ). index ( collection )
se . search ( "witches masses" )
Producción:
[
{
"id" : " doc_2 " ,
"text" : " Just like witches at black masses " ,
"score" : 1.7536403
},
{
"id" : " doc_1 " ,
"text" : " Generals gathered in their masses " ,
"score" : 0.6931472
}
]
¿Le gustaría ver otras funciones implementadas? Por favor, abra una solicitud de función.
¿Quieres contribuir? Por favor, envíame un correo electrónico.
retriv es un software de código abierto con licencia MIT.