[23 августа 2023 г.] Вышла retriv
0.2.2!
В этом выпуске добавлена экспериментальная поддержка документов и фильтров с несколькими полями. Пожалуйста, обратитесь к документации Advanced Retriever.
[18 февраля 2023 г.] Вышла retriv
0.2.0!
В этом выпуске добавлена поддержка плотного и гибридного поиска. Плотный поиск использует семантическое сходство векторных представлений запросов и документов, которые можно вычислить непосредственно путем retriv
или импортировать из других источников. Гибридный поиск сочетает в себе результаты традиционного поиска, неофициально называемого разреженным поиском, и результатов плотного поиска, чтобы еще больше повысить эффективность поиска. Поскольку библиотека была практически полностью переделана, индексы, созданные с помощью предыдущих версий, больше не поддерживаются.
retriv — это удобная и эффективная поисковая система, реализованная на Python, поддерживающая разреженный (традиционный поиск с помощью BM25, TF-IDF), плотный (семантический поиск) и гибридный поиск (сочетание разреженного и плотного поиска). Он позволяет построить поисковую систему в одной строке кода .
retriv построен на Numba для высокоскоростных векторных операций и автоматического распараллеливания, PyTorch и Transformers для легкого доступа и использования языковых моделей на основе Transformer, а также Faiss для приблизительного поиска ближайшего соседа. Кроме того, он обеспечивает функции автоматической настройки, позволяющие настраивать его внутренние компоненты с минимальным вмешательством.
Все поддерживаемые ретриверы имеют один и тот же интерфейс поиска:
retriv автоматически настраивает конфигурацию Faiss для приблизительного поиска ближайших соседей, используя AutoFaiss, чтобы гарантировать время отклика 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.