RAGatouille

Stale
GitHub Python Apache-2.0

Description

Easily use and train state of the art late-interaction retrieval methods (ColBERT) in any RAG pipeline. Designed for modularity and ease-of-use, backed by research.

Key Features

  • ColBERT late-interaction retrieval: wraps advanced ColBERT models into simple APIs, enabling late-interaction retrieval methods in RAG pipelines without deep IR research knowledge
  • End-to-end training and fine-tuning: built-in RAGTrainer and TrainingDataProcessor with automatic deduplication, positive/negative pairing and hard negative mining, supporting training from scratch or fine-tuning pretrained models
  • Modular composable architecture: DataProcessor, NegativeMiner and other components can be used independently, with support for custom NegativeMiner integration into training pipelines
  • Strong zero-shot generalization: ColBERTv2 pretrained models demonstrate exceptional zero-shot retrieval capabilities in new domains, rapidly adapting without large labeled datasets
  • Simple three-step workflow: index documents, search/retrieve, train/fine-tune — each step provides sensible defaults and flexible customization options

Use Cases

💡 RAG pipeline retrieval optimization: replace traditional dense embedding retrieval modules (like OpenAI text-embedding) with ColBERT for significant domain-specific retrieval accuracy improvements
💡 Low-resource domain retrieval: leverage ColBERT's data efficiency to build precise retrieval systems in specialized domains with scarce labeled data such as medicine, law, and scientific research
💡 Multilingual retrieval systems: ColBERT's efficient training on non-English languages makes it ideal for building multilingual document retrieval and cross-lingual semantic search applications
💡 Custom retrieval model training: train domain-specific ColBERT retrieval models for particular business scenarios, outperforming general embedding models in specific domains

Categories

Quick Start

Install: pip install ragatouille; index documents: from ragatouille import RAGPretrainedModel; model = RAGPretrainedModel.from_pretrained("colbert-ir/colbertv2.0"); model.index(collection=["doc1", "doc2", ...]); search: results = model.search("query", k=10)

Related Projects

Related Articles