$ show facebookresearch/dpr-scale
This repository is a research codebase for implementing and experimenting with dense retrieval techniques. It provides implementations of multiple advanced retrieval models including DPR, CITADEL, COIL, ColBERT, SPLADE, and their variants, along with data augmentation strategies like DRAGON and DRAMA. The codebase enables researchers to train, evaluate, and compare different retrieval approaches on standard benchmarks like Natural Questions, MS MARCO, and conversational datasets. It features a modular architecture with separate components for data processing, model definitions, training tasks, and evaluation, configured through Hydra for easy experimentation.
The LLM identified 4 files worth highlighting for reuse:
Creates question-answer pairs from text passages by treating sentences as questions and the rest of the passage as context. Uses sentence splitting to generate meaningful training examples and implements multiprocessing for efficiency. This pattern recurs across retrieval projects needing training data generation from text corpora.
Transforms raw data into training examples for dense retrieval by sampling positive and negative contexts, applying masking for training efficiency, and handling various data formats. Demonstrates sophisticated handling of context sampling strategies (including relevance-based sampling) and proper construction of training examples with appropriate masking for loss computation.
Provides efficient data loading for dense retrieval training using memory-mapped datasets to handle large datasets without loading everything into memory. Implements proper batching for distributed training and supports multiple data formats (JSONL, CSV, TSV) with flexible configuration for positive/negative sampling strategies.
Implements sentence cropping as a data augmentation technique by extracting sentences from documents to create training questions. This simple but effective approach significantly increases training data size and demonstrates how straightforward data augmentation can improve retrieval model generalization.