How to use from the
Use from the
sentence-transformers library
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("DataScience-UIBK/OBLIQ-IR-3B", trust_remote_code=True)

sentences = [
    "The weather is lovely today.",
    "It's so sunny outside!",
    "He drove to the stadium."
]
embeddings = model.encode(sentences)

similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

OBLIQ-IR-3B

A 3B single-vector dense retriever for oblique retrieval — queries whose relevance is decided by a latent attribute (an implicit stance, an abstract proof strategy, an authorial style, a lossy recollection of a rhetorical exchange) that has little or no surface expression in the document.

From OBLIQ-IR: Training a Dense Retriever for Oblique Queries (EMNLP 2026).

This repository holds the merged full-weight model — load it and go, no base download, no PEFT.

🧩 LoRA adapter only (48 MB) DataScience-UIBK/OBLIQ-IR-3B-LoRA
📊 Training data, runs, results DataScience-UIBK/OBLIQ-IR-Data
💻 Code github.com/DataScienceUIBK/obliq-ir
🧪 Benchmark dianetc/OBLIQ-Bench

Usage

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("DataScience-UIBK/OBLIQ-IR-3B", trust_remote_code=True)

q = model.encode(["query: "   + "A passage in the same restless, aphoristic voice as this one."])
d = model.encode(["passage: " + doc for doc in corpus])
scores = model.similarity(q, d)

The query: and passage: prefixes are required — the model was trained with them.

Do not prepend a task instruction. The training file carries a per-task instruction string next to each query, but the training script consumes only the query text, and the evaluation behind every number in the paper encodes the raw query with the query: prefix alone. Adding an instruction moves you off-distribution. Task identity comes from the training mixture, not a runtime prefix.

To match the paper's evaluation, encode documents at 1024 tokens and queries at 256:

model.max_seq_length = 1024
d = model.encode(["passage: " + x for x in corpus])
model.max_seq_length = 256
q = model.encode(["query: " + x for x in queries])

Results

NDCG@10 Gold on OBLIQ-Bench. "Full" adds TourRank (Y=5) on Math/Twitter/Congress; on Writing the selected policy is the identity, so this model alone is the full system there.

Pipeline Writing Math Twitter Congress
BM25 .077 .022 .000 .000
Qwen3-Embed-4B .033 .095 .032 .040
Gemini-2-Embedding .164 .144 .068 .059
GPT-5.2 Multi-Hop Agent .061 .161 .141 .183
OBLIQ-IR (no distillation) .096 .148 .158 .196
OBLIQ-IR dense .211 .140 .151 .187
OBLIQ-IR full .211 .171 .177 .281
Oracle GPT-5.2 Tournament (not attainable) .515 .279 .331 .913

Gains are large and significant on Writing (+0.116) and Congress (+0.085, both p<0.001) and marginal on Math (p=0.08) and Twitter (p=0.06). We do not claim the fifth task, WildChat-Errors.

Merged vs. adapter: a small numerical caveat

The published numbers were produced by the adapter path (base weights + LoRA computed separately). This repository stores W + BA·scaling folded into bf16 weights. Because bf16 carries only about three significant digits, folding is slightly lossy, so this model does not reproduce the adapter bit-for-bit:

Task Metric This merged model Adapter (paper) Δ
Math NDCG@10 0.1407 0.1403 +0.0004
Twitter NDCG@10 0.1516 0.1508 +0.0008

Top-1 results agree on 151/151 math queries and 275/281 twitter queries; deeper in the ranking the order shifts slightly. The differences are far below run-to-run variance, but they can move the third decimal.

For exact reproduction of the paper's tables, use OBLIQ-IR-3B-LoRA, which regenerates the published rankings bit-for-bit. Use this repository when you want convenience.

Training

Two signals mixed into one encoder shared by all tasks. (1) Per-mechanism synthetic queries: an instruction LM describes a document's latent attribute, then writes a query through one of three lenses matched to the OBLIQ query mechanisms — descriptive, analogue, tip-of-the-tongue — with four BM25 hard negatives each. (2) kNN-graph distillation from a frozen authorship encoder (writing only): the k=3 nearest-neighbour graph of Rivera-Soto et al. (2021) over the writing corpus supplies anchor–positive pairs. Only the graph's topology is used; the teacher's similarity scores are discarded. That lifts Writing from .096 to .211. Neither stage touches the OBLIQ qrels.

Setting Value
Base nvidia/llama-nv-embed-reasoning-3b (Llama-3.2-3B bi-encoder)
Adapter (before merging) LoRA r=16, α=32, dropout 0.05 on q/k/v/o/gate/up/down (~24M params)
Pooling mean over tokens, then L2 normalise → 3072-dim
Loss CachedMultipleNegativesRankingLoss, τ = 1/0.02
LR 2e-4, 3% warmup, linear decay
Batch 4 per device × 40 GPUs × 2 grad-accum = 320 anchors
Seq length 1024 (queries truncated to 256 at evaluation)
Schedule 1 epoch, 40× H100, ~50 min
Training rows 154,361 (149,361 synthetic + 5,000 authorship kNN pairs)

Licence and intended use

Released under CC BY-NC 4.0. This repository redistributes weights derived from nvidia/llama-nv-embed-reasoning-3b, which NVIDIA releases for non-commercial / research use only; their licence is included as LICENSE_nvidia_base_model.txt and their attribution notice as NOTICE.txt.

Built with Llama. The base model derives from meta-llama/Llama-3.2-3B and the Llama 3.2 Community License applies in addition to the terms above.

Intended use is research on latent-attribute retrieval. Retrieval by authorial fingerprint can link texts to an author across topics and venues, and so deanonymise writers who rely on pseudonymity. The authorship encoder we distil is trained on Reddit data, and because style correlates with demography and dialect, the distilled neighbourhood structure may carry those correlates. We did not audit for this; any deployment over people's writing should.

Citation

@inproceedings{abdalla2026obliqir,
  title     = {{OBLIQ-IR}: Training a Dense Retriever for Oblique Queries},
  author    = {Abdalla, Mahmoud and Abdallah, Abdelrahman and Sedek, Shaimaa and Jatowt, Adam},
  booktitle = {Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing},
  year      = {2026}
}
Downloads last month
12
Safetensors
Model size
3B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for DataScience-UIBK/OBLIQ-IR-3B

Finetuned
(2)
this model
Quantizations
1 model