[23 août 2023] retriv
0.2.2 est sortie !
Cette version ajoute une prise en charge expérimentale des documents et filtres multi-champs. Veuillez vous référer à la documentation Advanced Retriever.
[18 février 2023] retriv
0.2.0 est sorti !
Cette version ajoute la prise en charge de la récupération dense et hybride. Dense Retrieval exploite la similarité sémantique des représentations vectorielles des requêtes et des documents, qui peuvent être calculées directement par retriv
ou importées à partir d'autres sources. La récupération hybride mélange les résultats de la récupération traditionnelle, officieusement appelée Sparse Retrieval, et les résultats de la récupération dense pour améliorer encore l'efficacité de la récupération. La bibliothèque ayant été presque entièrement refaite, les index construits avec les versions précédentes ne sont plus pris en charge.
retriv est un moteur de recherche convivial et efficace implémenté en Python prenant en charge Sparse (recherche traditionnelle avec BM25, TF-IDF), Dense (recherche sémantique) et la récupération hybride (un mélange de récupération Sparse et Dense). Il vous permet de construire un moteur de recherche en une seule ligne de code .
retriv est construit sur Numba pour les opérations vectorielles à grande vitesse et la parallélisation automatique, PyTorch et Transformers pour un accès et une utilisation faciles des modèles de langage basés sur Transformer, et Faiss pour la recherche approximative du voisin le plus proche. De plus, il fournit des fonctionnalités de réglage automatique pour vous permettre de régler ses composants internes avec une intervention minimale.
Tous les récupérateurs pris en charge partagent la même interface de recherche :
retriv ajuste automatiquement la configuration Faiss pour la recherche approximative des voisins les plus proches en tirant parti d'AutoFaiss pour garantir un temps de réponse de 10 ms en fonction de votre matériel disponible. De plus, il offre une fonctionnalité de réglage automatique des paramètres du BM25, qui nécessitent une intervention minimale de l'utilisateur. Sous le capot, retriv exploite Optuna, un framework d'optimisation d'hyperparamètres, et ranx, une bibliothèque d'évaluation de recherche d'informations, pour tester plusieurs configurations de paramètres pour BM25 et choisir la meilleure. Enfin, il peut automatiquement équilibrer l’importance des scores de pertinence lexicale et sémantique calculés par Hybrid Retriever pour maximiser l’efficacité de la récupération.
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" )
Sortir:
[
{
"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
}
]
Souhaitez-vous voir d’autres fonctionnalités implémentées ? Veuillez ouvrir une demande de fonctionnalité.
Souhaitez-vous contribuer? S'il vous plaît, envoyez-moi un e-mail.
retriv est un logiciel open source sous licence MIT.