SPLADE (Sparse Lexical AnD Expansion) model fine-tuned for
Portuguese text retrieval. Based on
BERTimbau and trained on Portuguese question-answering datasets.
SPLADE is a neural retrieval model that learns to expand queries and documents with contextually relevant terms while maintaining sparsity. Unlike dense retrievers, SPLADE produces sparse vectors (typically ~99% sparse) that are:
1Learning Rate: 2e-5
2Batch Size: 8 (effective: 32 with gradient accumulation)
3Gradient Accumulation Steps: 4
4Weight Decay: 0.01
5Warmup Steps: 6,000
6Mixed Precision: FP16
7Optimizer: AdamW
1import torch
2from transformers import AutoTokenizer
3from modeling_splade import Splade
4
5# Load model and tokenizer
6model = Splade.from_pretrained("AxelPCG/splade-pt-br")
7tokenizer = AutoTokenizer.from_pretrained("AxelPCG/splade-pt-br")
8model.eval()
9
10# Encode a query
11query = "Qual é a capital do Brasil?"
12with torch.no_grad():
13 query_tokens = tokenizer(query, return_tensors="pt", max_length=256, truncation=True)
14 query_vec = model(q_kwargs=query_tokens)["q_rep"].squeeze()
15
16# Encode a document
17document = "Brasília é a capital federal do Brasil desde 1960."
18with torch.no_grad():
19 doc_tokens = tokenizer(document, return_tensors="pt", max_length=256, truncation=True)
20 doc_vec = model(d_kwargs=doc_tokens)["d_rep"].squeeze()
21
22# Calculate similarity (dot product)
23similarity = torch.dot(query_vec, doc_vec).item()
24print(f"Similarity: {similarity:.4f}")
25
26# Get sparse representation
27indices = torch.nonzero(query_vec).squeeze().tolist()
28values = query_vec[indices].tolist()
29print(f"Active dimensions: {len(indices)} / {query_vec.shape[0]}")
1from splade.models.transformer_rep import Splade
2from transformers import AutoTokenizer
3
4# Load model by pointing to HuggingFace repo
5model = Splade(model_type_or_dir="AxelPCG/splade-pt-br", agg="max", fp16=True)
6tokenizer = AutoTokenizer.from_pretrained("AxelPCG/splade-pt-br")
1@misc{splade-pt-br-2025,
2 author = {Axel Chepanski},
3 title = {SPLADE-PT-BR: Sparse Retrieval for Portuguese},
4 year = {2025},
5 publisher = {Hugging Face},
6 url = {https://huggingface.co/AxelPCG/splade-pt-br}
7}