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

File details

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

File metadata

File hashes

Hashes for llama_index_postprocessor_rankllm_rerank-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d74f1abcd0f729f47184e51e4a0754178d992cce74360f281ec15ddb55e6a74e
MD5 65a01b27345bf6bdadc9b78386f9f7e5
BLAKE2b-256 24bd7542c0cd577edcfe04c88ce9f8a4d44fa70c23b3c6197693253eb30210a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for llama_index_postprocessor_rankllm_rerank-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f264d0270e183cfaaa7679b5a33baa12babc9409d255b6789dd9509fbbcb5a35
MD5 6b9a78a0fe2bbd487a3858fb630d6404
BLAKE2b-256 643ee5792a89aea06f52bac0f8006cd37eaeced24f7936cde7164db50e1ae637

See more details on using hashes here.

Supported by

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