[2023 年 8 月 23 日] retriv
0.2.2 已發布!
此版本增加了對多字段文件和過濾器的實驗性支援。請參閱進階檢索器文件。
[2023年2月18日] retriv
0.2.0 發布了!
此版本增加了對密集和混合檢索的支援。密集檢索利用查詢和文件向量表示的語意相似性,可以透過retriv
直接計算或從其他來源匯入。混合檢索混合了傳統檢索(非正式地稱為稀疏檢索)和密集檢索結果,以進一步提高檢索效率。由於該庫幾乎完全重做,因此不再支援使用先前版本建立的索引。
retriv 是一個用 Python 實現的用戶友好且高效的搜尋引擎,支援稀疏(使用 BM25、TF-IDF 的傳統搜尋)、密集(語義搜尋)和混合檢索(稀疏和密集檢索的混合)。它允許您用一行程式碼建立一個搜尋引擎。
retriv 基於 Numba 構建,用於高速向量運算和自動並行化;基於 PyTorch 和 Transformers 構建,用於輕鬆存取和使用基於 Transformer 的語言模型;基於 Faiss 構建,用於近似最近鄰搜尋。此外,它還提供自動調整功能,使您可以以最少的干預調整其內部組件。
所有支援的檢索器共享相同的搜尋介面:
retriv 利用 AutoFaiss 自動調整 Faiss 配置以進行近似最近鄰搜索,以根據您的可用硬體保證 10 毫秒的回應時間。此外,它還提供 BM25 參數的自動調整功能,只需最少的使用者介入。在底層,retriv 利用 Optuna(一種超參數最佳化框架)和 ranx(一種資訊檢索評估庫)來測試 BM25 的多種參數配置並選擇最佳的一個。最後,它可以自動平衡混合檢索器計算的詞彙和語義相關性分數的重要性,以最大限度地提高檢索效率。
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 授權授權的開源軟體。