Rankify: un conjunto de herramientas de Python para la recuperación y reordenación de la información
Últimos recursos sobre IAPublicado hace 5 meses Círculo de intercambio de inteligencia artificial 11.3K 00
Introducción general
Rankify es un conjunto de herramientas Python de código abierto desarrollado por el Data Science Group de la Universidad de Innsbruck, Austria. Se centra en la recuperación de información, la reordenación y la generación de aumento de la recuperación (RAG), proporcionando un marco unificado. El conjunto de herramientas incluye 40 conjuntos de datos de referencia previamente recuperados, 7 técnicas de recuperación y 24 modelos de reordenación, así como una serie de herramientas de gestión de la información. RAG Rankify es modular y fácilmente extensible, adecuado para investigadores y desarrolladores para la experimentación y la evaluación comparativa. El código es abierto y está bien documentado, y es compatible con Python 3.10 y versiones superiores.

Lista de funciones
- Hay siete técnicas de recuperación disponibles: BM25, DPR, ColBERT, ANCE, BGE, Contriever e HYDE.
- Se admiten 24 modelos de reordenación, como MonoT5, RankGPT, Sentence Transformador etc., para mejorar la precisión de los resultados de búsqueda.
- Retrieval Augmented Generation (RAG) integrada con soporte para GPT, LLaMA, T5 y otras respuestas de generación de modelos.
- Incorpora 40 conjuntos de datos recuperados previamente que cubren preguntas y respuestas, diálogos, enlaces de entidades y otros escenarios.
- Proporciona herramientas de evaluación para calcular métricas de recuperación, reordenación y generación de resultados, como Top-K, EM, Recall.
- Admite índices preconstruidos (por ejemplo, Wikipedia y MS MARCO), lo que elimina la necesidad de construir índices propios.
- Estructura modular que permite a los usuarios personalizar conjuntos de datos, recuperadores y modelos.
Utilizar la ayuda
Rankify es fácil de instalar y utilizar. A continuación se detallan los pasos e instrucciones para ayudarle a empezar rápidamente.
Proceso de instalación
Rankify requiere Python 3.10 o superior. Se recomienda instalarlo en un entorno virtual para evitar conflictos de dependencias.
- Creación de un entorno virtual (recomendado)
Crear un entorno utilizando Conda:
conda create -n rankify python=3.10
conda activate rankify
o utilizar las herramientas propias de Python:
python -m venv rankify_env
source rankify_env/bin/activate # Linux/Mac
rankify_env\Scripts\activate # Windows
- Instale PyTorch (versión recomendada 2.5.1)
Si tienes una GPU, instala la versión con 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 no dispone de GPU, instale la versión para CPU:
pip install torch==2.5.1
- Instalación de cimientos
Instalar la funcionalidad principal de Rankify:
pip install rankify
- Instalación completa (recomendada)
Instala todas las funciones:
pip install "rankify[all]"
- Instalación a la carta (opcional)
Sólo está instalada la función de búsqueda:
pip install "rankify[retriever]"
Sólo está instalada la función de reordenación:
pip install "rankify[reranking]"
- Instale la última versión desde GitHub (opcional)
Consigue la versión de desarrollo:
git clone https://github.com/DataScienceUIBK/Rankify.git
cd Rankify
pip install -e ".[all]"
- Instalación de ColBERT Retriever (opcional)
Se requiere una configuración adicional:
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á listo para su uso después de la instalación.
Guía de funcionamiento
1. Utilización de conjuntos de datos preseleccionados
Rankify ofrece 40 conjuntos de datos recuperados previamente que pueden descargarse de Hugging Face.
- mover::
- Módulo de importación de conjuntos de datos.
- Seleccione el recuperador y el conjunto de datos.
- Descargar o cargar datos.
- código de ejemplo (informática)::
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. Utilización de la función de búsqueda
Admite diversos métodos de búsqueda, como BM25, DPR, etc.
- mover::
- Inicializar el recuperador.
- Introduzca un documento o una pregunta.
- Obtener resultados de búsqueda.
- código de ejemplo (informática)::
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. Utilización de la función de reordenación
La reordenación optimiza los resultados de la recuperación y admite varios modelos.
- mover::
- Prepare los resultados de la búsqueda inicial.
- Inicializar el modelo de reordenación.
- Reordenación.
- código de ejemplo (informática)::
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. Utilización de la función RAG
RAG combina recuperación y generación para generar respuestas precisas.
- mover::
- Prepare la documentación y las preguntas.
- Inicializar el generador.
- Generar respuestas.
- código de ejemplo (informática)::
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. Evaluación de los resultados
Herramienta de evaluación integrada para comprobar el rendimiento.
- código de ejemplo (informática)::
from rankify.metrics.metrics import Metrics metrics = Metrics(documents) retrieval_metrics = metrics.calculate_retrieval_metrics(ks=[1, 5, 10]) print(retrieval_metrics)
advertencia
- Los usuarios de GPU deben asegurarse de que PyTorch soporta CUDA.
- Se recomiendan dispositivos de alta memoria para grandes conjuntos de datos.
- Para más detalles, consulte la documentación oficial en http://rankify.readthedocs.io/.
escenario de aplicación
- investigación académica
Los investigadores pueden utilizar Rankify para probar algoritmos de recuperación y reordenación y analizar su rendimiento. - preguntas y respuestas inteligentes
Los desarrolladores pueden utilizar RAG para crear sistemas de preguntas y respuestas que respondan a las dudas de los usuarios. - Optimización de la búsqueda
La función de reordenación mejora la relevancia de los resultados de búsqueda y es adecuada para mejorar los motores de búsqueda.
CONTROL DE CALIDAD
- ¿Qué sistemas soporta Rankify?
Es compatible con Windows, Linux y macOS, siempre que Python 3.10+ esté instalado. - ¿Necesito trabajar en red?
La funcionalidad básica está disponible sin conexión, pero los conjuntos de datos y algunos modelos deben descargarse. - ¿Es compatible con el chino?
Soportado, pero los índices preconstruidos están principalmente en inglés (Wikipedia y MS MARCO).
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...