Rankify : une boîte à outils Python qui prend en charge la recherche d'informations et le réordonnancement
Introduction générale
Rankify est une boîte à outils Python open source développée par le Data Science Group de l'Université d'Innsbruck, en Autriche. Il se concentre sur la recherche d'informations, le réordonnancement et la génération d'augmentation de la recherche (RAG), en fournissant un cadre unifié. La boîte à outils est livrée avec 40 ensembles de données de référence pré-récupérées intégrées, la prise en charge de 7 techniques de récupération et de 24 modèles de réorganisation, et comprend une variété d'outils de recherche d'information et de réorganisation. RAG Rankify est modulaire et facilement extensible. Il convient aux chercheurs et aux développeurs pour l'expérimentation et l'analyse comparative. Le code est ouvert et bien documenté, et supporte Python 3.10 et plus.

Liste des fonctions
- Sept techniques de récupération sont disponibles, dont BM25, DPR, ColBERT, ANCE, BGE, Contriever et HYDE.
- 24 modèles de réorganisation sont pris en charge, tels que MonoT5, RankGPT, Sentence Transformateur etc., afin d'améliorer la précision des résultats de la recherche.
- Génération augmentée par récupération intégrée (RAG) avec prise en charge de GPT, LLaMA, T5 et d'autres réponses de génération de modèles.
- 40 ensembles de données pré-récupérées intégrés couvrant les questions-réponses, le dialogue, les liens entre entités et d'autres scénarios.
- Fournit des outils d'évaluation permettant de calculer les paramètres de recherche, de réorganisation et de génération de résultats, tels que Top-K, EM, Recall.
- Prend en charge les index préconstruits (par exemple Wikipedia et MS MARCO), ce qui élimine la nécessité de construire vos propres index.
- Structure modulaire permettant aux utilisateurs de personnaliser les ensembles de données, les extracteurs et les modèles.
Utiliser l'aide
Rankify est facile à installer et à utiliser. Vous trouverez ci-dessous les étapes et instructions détaillées pour vous aider à démarrer rapidement.
Processus d'installation
Rankify nécessite Python 3.10 ou plus. Il est recommandé de l'installer dans un environnement virtuel pour éviter les conflits de dépendance.
- Créer un environnement virtuel (recommandé)
Créer un environnement à l'aide de Conda :
conda create -n rankify python=3.10
conda activate rankify
ou utiliser les outils propres à Python :
python -m venv rankify_env
source rankify_env/bin/activate # Linux/Mac
rankify_env\Scripts\activate # Windows
- Installer PyTorch (version 2.5.1 recommandée)
Si vous avez un GPU, installez la version avec CUDA 12.4 :
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
Si vous n'avez pas de GPU, installez la version CPU :
pip install torch==2.5.1
- Installation des fondations
Installer les fonctionnalités de base de Rankify :
pip install rankify
- Installation complète (recommandée)
Installer toutes les fonctionnalités :
pip install "rankify[all]"
- Installation à la demande (en option)
Seule la fonction de recherche est installée :
pip install "rankify[retriever]"
Seule la fonction de réorganisation est installée :
pip install "rankify[reranking]"
- Installer la dernière version de GitHub (optionnel)
Obtenir la version de développement :
git clone https://github.com/DataScienceUIBK/Rankify.git
cd Rankify
pip install -e ".[all]"
- Installation de ColBERT Retriever (optionnel)
Une configuration supplémentaire est nécessaire :
conda install -c conda-forge gcc=9.4.0 gxx=9.4.0
conda install -c conda-forge libstdcxx-ng
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
export CC=gcc
export CXX=g++
rm -rf ~/.cache/torch_extensions/*
Rankify est prêt à l'emploi après son installation.
Guide d'utilisation des fonctions
1. l'utilisation de séries de données présélectionnées
Rankify propose 40 ensembles de données pré-renseignés qui peuvent être téléchargés à partir de Hugging Face.
- déplacer: :
- Module d'importation de données.
- Sélectionnez le récupérateur et l'ensemble de données.
- Télécharger ou charger des données.
- exemple de code (informatique): :
from rankify.dataset.dataset import Dataset
# 查看可用数据集
Dataset.available_dataset()
# 下载 BM25 的 nq-dev 数据集
dataset = Dataset(retriever="bm25", dataset_name="nq-dev", n_docs=100)
documents = dataset.download(force_download=False)
# 加载本地数据集
documents = Dataset.load_dataset('./bm25_nq_dev.json', 100)
2. utilisation de la fonction de recherche
Prise en charge de diverses méthodes de recherche, telles que BM25, DPR, etc.
- déplacer: :
- Initialiser le récupérateur.
- Saisissez un document ou une question.
- Obtenir des résultats de recherche.
- exemple de code (informatique): :
from rankify.retrievers.retriever import Retriever # 使用 BM25 检索 Wikipedia retriever = Retriever(method="bm25", n_docs=5, index_type="wiki") docs = [{"question": "太阳是什么?"}] results = retriever.retrieve(docs) print(results)
3. utilisation de la fonction de réorganisation
La réorganisation optimise les résultats de la recherche et prend en charge plusieurs modèles.
- déplacer: :
- Préparer les premiers résultats de la recherche.
- Initialiser le modèle de réorganisation.
- Réorganisation.
- exemple de code (informatique): :
from rankify.models.reranking import Reranking from rankify.dataset.dataset import Document, Question, Context # 准备数据 question = Question("太阳是什么?") contexts = [Context(text="太阳是恒星。", id=1), Context(text="月亮不是恒星。", id=2)] doc = Document(question=question, contexts=contexts) # 重排序 reranker = Reranking(method="monot5", model_name="monot5-base-msmarco") reranker.rank([doc]) for ctx in doc.reorder_contexts: print(ctx.text)
4. utilisation de la fonction RAG
RAG combine la recherche et la génération pour générer des réponses précises.
- déplacer: :
- Préparer la documentation et les questions.
- Initialiser le générateur.
- Générer des réponses.
- exemple de code (informatique): :
from rankify.generator.generator import Generator doc = Document(question=Question("法国首都是什么?"), contexts=[Context(text="法国首都是巴黎。", id=1)]) generator = Generator(method="in-context-ralm", model_name="meta-llama/Llama-3.1-8B") answers = generator.generate([doc]) print(answers) # 输出:["巴黎"]
5. l'évaluation des résultats
Outils d'évaluation intégrés pour vérifier les performances.
- exemple de code (informatique): :
from rankify.metrics.metrics import Metrics metrics = Metrics(documents) retrieval_metrics = metrics.calculate_retrieval_metrics(ks=[1, 5, 10]) print(retrieval_metrics)
mise en garde
- Les utilisateurs de GPU doivent s'assurer que PyTorch prend en charge CUDA.
- Les dispositifs à mémoire élevée sont recommandés pour les grands ensembles de données.
- Pour plus de détails, voir la documentation officielle à l'adresse http://rankify.readthedocs.io/.
scénario d'application
- recherche universitaire
Les chercheurs peuvent utiliser Rankify pour tester les algorithmes de recherche et de réorganisation et analyser les performances. - questions et réponses intelligentes (Q&R)
Les développeurs peuvent utiliser RAG pour créer des systèmes de questions-réponses afin de répondre aux questions des utilisateurs. - Optimisation de la recherche
La fonction de réorganisation améliore la pertinence des résultats de la recherche et convient à l'amélioration des moteurs de recherche.
QA
- Quels sont les systèmes supportés par Rankify ?
Windows, Linux et macOS sont pris en charge, à condition que Python 3.10+ soit installé. - Dois-je travailler en réseau ?
Les fonctionnalités de base sont disponibles hors ligne, mais les ensembles de données et certains modèles doivent être téléchargés. - Prend-il en charge le chinois ?
Pris en charge, mais les index préconstruits sont principalement en anglais (Wikipedia et MS MARCO).
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...