Skip to main content

llama-index postprocessor rankllm-rerank integration

Project description

LlamaIndex Postprocessor Integration: Rankllm-Rerank

RankLLM offers a suite of rerankers, albeit with focus on open source LLMs finetuned for the task. To use a model offered by the RankLLM suite, pass the desired model's Hugging Face model path, found at Castorini's Hugging Face.

e.g., to access LiT5-Distill-base, pass castorini/LiT5-Distill-base as the model name.

For more information about RankLLM and the models supported, visit rankllm.ai. Please pip install llama-index-postprocessor-rankllm-rerank to install RankLLM rerank package.

Parameters:

  • model: Reranker model name
  • top_n: Top N nodes to return from reranking
  • window_size: Reranking window size. Applicable only for listwise and pairwise models.
  • batch_size: Reranking batch size. Applicable only for pointwise models.

Model Coverage

Below are all the rerankers supported with the model name to be passed as an argument to the constructor. Some model have convenience names for ease of use:

Listwise:

  • RankZephyr. model=rank_zephyr or castorini/rank_zephyr_7b_v1_full
  • RankVicuna. model=rank_zephyr or castorini/rank_vicuna_7b_v1
  • RankGPT. Takes in a valid gpt model. e.g., gpt-3.5-turbo, gpt-4,gpt-3
  • LiT5 Distill. model=castorini/LiT5-Distill-base
  • LiT5 Score. model=castorini/LiT5-Score-base

Pointwise:

  • MonoT5. model='monot5'

💻 Example Usage

pip install llama-index-core
pip install llama-index-llms-openai
from llama_index.postprocessor.rankllm_rerank import RankLLMRerank

First, build a vector store index with llama-index.

index = VectorStoreIndex.from_documents(
    documents,
)

To set up the retriever and reranker:

query_bundle = QueryBundle(query_str)

# configure retriever
retriever = VectorIndexRetriever(
    index=index,
    similarity_top_k=vector_top_k,
)

# configure reranker
reranker = RankLLMRerank(
    model=model_name
    top_n=reranker_top_n,
)

To run retrieval+reranking:

# retrieve nodes
retrieved_nodes = retriever.retrieve(query_bundle)

# rerank nodes
reranked_nodes = reranker.postprocess_nodes(
    retrieved_nodes, query_bundle
)

🔧 Dependencies

Currently, RankLLM rerankers require CUDA and for rank-llm to be installed (pip install rank-llm). The built-in retriever, which uses Pyserini, requires JDK11, PyTorch, and Faiss.

castorini/rank_llm

Repository for prompt-decoding using LLMs: http://rankllm.ai

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file llama_index_postprocessor_rankllm_rerank-0.6.1.tar.gz.

File metadata

File hashes

Hashes for llama_index_postprocessor_rankllm_rerank-0.6.1.tar.gz
Algorithm Hash digest
SHA256 589de428208e64807e2244ca4e922c3a2542f8dae41e6a4635438a7e10abb468
MD5 f2f8686b5e3649ead371b394758518f7
BLAKE2b-256 9823684cc0fb2a5657a6eef762179e31606d0cae2cc819f5073be71da68ad9a1

See more details on using hashes here.

File details

Details for the file llama_index_postprocessor_rankllm_rerank-0.6.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llama_index_postprocessor_rankllm_rerank-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8e6a21e179c50817f29d012c8f48f9774acca0b0dd600c677ae0412c0dc48b41
MD5 ebc35ce71997bb5fbff8a730af1d3fe6
BLAKE2b-256 2c01aae8b8f7e4646f743d4fcdd2fd3555a0f401c7cfef9b8fe7c60697aa5d23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page