[2023 年 8 月 23 日] retriv
0.2.2 がリリースされました。
このリリースでは、複数フィールドのドキュメントとフィルターの実験的なサポートが追加されています。 Advanced Retriever のドキュメントを参照してください。
[2023 年 2 月 18 日] retriv
0.2.0 がリリースされました。
このリリースでは、高密度およびハイブリッド取得のサポートが追加されています。 Dense Retrieval は、クエリとドキュメントのベクトル表現の意味的類似性を利用します。これは、 retriv
によって直接計算することも、他のソースからインポートすることもできます。ハイブリッド検索は、非公式には疎検索と呼ばれる従来の検索と密検索の結果を組み合わせて、検索効率をさらに向上させます。ライブラリがほぼ完全に作り直されたため、以前のバージョンで構築されたインデックスはサポートされなくなりました。
retriv は、Python で実装されたユーザーフレンドリーで効率的な検索エンジンで、スパース (BM25、TF-IDF による従来の検索)、デンス (セマンティック検索)、およびハイブリッド検索 (スパース検索とデンス検索の組み合わせ) をサポートしています。これにより、1 行のコードで検索エンジンを構築できます。
retriv は、高速ベクトル演算と自動並列化のための Numba、Transformer ベースの言語モデルへの簡単なアクセスと使用のための PyTorch と Transformers、および近似最近傍検索のための Faiss に基づいて構築されています。さらに、最小限の介入で内部コンポーネントを調整できる自動チューニング機能を提供します。
サポートされているすべての取得者は、同じ検索インターフェイスを共有します。
retriv は、AutoFaiss を利用して近似最近傍検索の Faiss 構成を自動的に調整し、使用可能なハードウェアに基づいて 10 ミリ秒の応答時間を保証します。さらに、BM25 のパラメータの自動チューニング機能を提供し、ユーザーの介入を最小限に抑えます。内部では、retriv はハイパーパラメーター最適化フレームワークである Optuna と情報検索評価ライブラリである ranx を利用して、BM25 のいくつかのパラメーター構成をテストし、最適なパラメーター構成を選択します。最後に、検索効率を最大化するために、Hybrid Retriever によって計算された語彙的および意味的関連性スコアの重要性のバランスを自動的にとることができます。
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" )
出力:
[
{
"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
}
]
他の機能が実装されていることを確認しますか?機能リクエストを開いてください。
貢献してみませんか?メールをください。
retriv は、MIT ライセンスに基づいてライセンス供与されたオープンソース ソフトウェアです。