[23 de agosto de 2023] retriv
0.2.2 foi lançado!
Esta versão adiciona suporte experimental para documentos e filtros multicampos. Por favor, consulte a documentação do Advanced Retriever.
[18 de fevereiro de 2023] retriv
0.2.0 foi lançado!
Esta versão adiciona suporte para recuperação densa e híbrida. Dense Retrieval aproveita a semelhança semântica das representações vetoriais de consultas e documentos, que podem ser computadas diretamente por retriv
ou importadas de outras fontes. A recuperação híbrida combina a recuperação tradicional, informalmente chamada de recuperação esparsa, e os resultados da recuperação densa para melhorar ainda mais a eficácia da recuperação. Como a biblioteca foi quase totalmente refeita, os índices construídos com versões anteriores não são mais suportados.
retriv é um mecanismo de pesquisa fácil de usar e eficiente implementado em Python com suporte para recuperação esparsa (pesquisa tradicional com BM25, TF-IDF), densa (pesquisa semântica) e híbrida (uma mistura de recuperação esparsa e densa). Ele permite que você crie um mecanismo de pesquisa em uma única linha de código .
retriv é baseado em Numba para operações vetoriais de alta velocidade e paralelização automática, PyTorch e Transformers para fácil acesso e uso de modelos de linguagem baseados em Transformers e Faiss para pesquisa aproximada do vizinho mais próximo. Além disso, oferece funcionalidades de ajuste automático para permitir ajustar seus componentes internos com intervenção mínima.
Todos os recuperadores suportados compartilham a mesma interface de pesquisa:
O retriv ajusta automaticamente a configuração do Faiss para pesquisa aproximada de vizinhos mais próximos, aproveitando o AutoFaiss para garantir um tempo de resposta de 10 ms com base no hardware disponível. Além disso, oferece funcionalidade de ajuste automático dos parâmetros do BM25, que requerem intervenção mínima do usuário. Nos bastidores, o retriv aproveita Optuna, uma estrutura de otimização de hiperparâmetros, e ranx, uma biblioteca de avaliação de recuperação de informações, para testar várias configurações de parâmetros para BM25 e escolher a melhor. Finalmente, ele pode equilibrar automaticamente a importância das pontuações de relevância lexical e semântica calculadas pelo Hybrid Retriever para maximizar a eficácia da recuperação.
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" )
Saída:
[
{
"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
}
]
Gostaria de ver outros recursos implementados? Por favor, abra uma solicitação de recurso.
Você gostaria de contribuir? Por favor, me mande um e-mail.
retriv é um software de código aberto licenciado sob a licença MIT.