[23. August 2023] retriv
0.2.2 ist da!
Diese Version bietet experimentelle Unterstützung für Dokumente und Filter mit mehreren Feldern. Weitere Informationen finden Sie in der Dokumentation zum Advanced Retriever.
[18. Februar 2023] retriv
0.2.0 ist da!
Diese Version bietet Unterstützung für Dense und Hybrid Retrieval. Dense Retrieval nutzt die semantische Ähnlichkeit der Vektordarstellungen der Abfragen und Dokumente, die direkt von retriv
berechnet oder aus anderen Quellen importiert werden können. Hybrid Retrieval kombiniert traditionelle Retrieval-Ergebnisse, die informell als Sparse Retrieval bezeichnet werden, und Dense Retrieval-Ergebnisse, um die Retrieval-Effektivität weiter zu verbessern. Da die Bibliothek fast vollständig überarbeitet wurde, werden Indizes, die mit früheren Versionen erstellt wurden, nicht mehr unterstützt.
retriv ist eine benutzerfreundliche und effiziente in Python implementierte Suchmaschine, die Sparse (traditionelle Suche mit BM25, TF-IDF), Dense (semantische Suche) und Hybrid Retrieval (eine Mischung aus Sparse und Dense Retrieval) unterstützt. Es ermöglicht Ihnen, eine Suchmaschine in einer einzigen Codezeile zu erstellen.
retriv basiert auf Numba für Hochgeschwindigkeits-Vektoroperationen und automatische Parallelisierung, PyTorch und Transformers für den einfachen Zugriff und die Verwendung von Transformer-basierten Sprachmodellen und Faiss für die Suche nach ungefähren nächsten Nachbarn. Darüber hinaus bietet es automatische Tuning-Funktionen, mit denen Sie die internen Komponenten mit minimalem Eingriff optimieren können.
Alle unterstützten Retriever nutzen dieselbe Suchoberfläche:
retriv passt die Faiss-Konfiguration automatisch für die Suche nach ungefähren nächsten Nachbarn an, indem es AutoFaiss nutzt, um eine Reaktionszeit von 10 ms basierend auf Ihrer verfügbaren Hardware zu garantieren. Darüber hinaus bietet es eine automatische Abstimmungsfunktion für die Parameter des BM25, die nur minimale Benutzereingriffe erfordert. Unter der Haube nutzt retriv Optuna, ein Hyperparameter-Optimierungs-Framework, und ranx, eine Information-Retrieval-Evaluierungsbibliothek, um mehrere Parameterkonfigurationen für BM25 zu testen und die beste auszuwählen. Schließlich kann es die Bedeutung der vom Hybrid Retriever berechneten lexikalischen und semantischen Relevanzwerte automatisch ausgleichen, um die Effektivität des Abrufs zu maximieren.
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" )
Ausgabe:
[
{
"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
}
]
Möchten Sie weitere implementierte Funktionen sehen? Bitte öffnen Sie eine Funktionsanfrage.
Möchten Sie einen Beitrag leisten? Bitte schreiben Sie mir eine E-Mail.
retriv ist eine Open-Source-Software, die unter der MIT-Lizenz lizenziert ist.