--- language: en license: apache-2.0 library_name: transformers base_model: jhu-clsp/ettin-encoder-68m model_name: cross-encoder-ettin-68m-infoNCE source: https://github.com/xpmir/cross-encoders paper: http://arxiv.org/abs/2603.03010 tags: - cross-encoder - sequence-classification - tensorboard datasets: - msmarco pipeline_tag: text-classification --- # cross-encoder-ettin-68m-infoNCE [![Paper](https://img.shields.io/badge/Paper-Arxiv-red)](http://arxiv.org/abs/2603.03010) [![All Models](https://img.shields.io/badge/🤗%20Hugging%20Face%20Models-blue)](https://huggingface.co/collections/xpmir/reproducing-cross-encoders) [![GitHub](https://img.shields.io/badge/GitHub-Code-blue)](https://github.com/xpmir/cross-encoders) This model is a cross-encoder based on `jhu-clsp/ettin-encoder-68m`. It was trained on Ms-Marco using loss `infoNCE` as part of a reproducibility paper for training cross encoders: "**[Reproducing and Comparing Distillation Techniques for Cross-Encoders](http://arxiv.org/abs/2603.03010)**", see the paper for more details. ### Contents - [Model Description](#model-description) - [Usage](#usage) - [Evals](#evaluations) ## Model Description This model is intended for **re-ranking** the top results returned by a retrieval system (like BM25, Bi-Encoders or SPLADE). - **Training Data:** MS MARCO Passage - **Language:** English - **Loss** infoNCE Training can be easily reproduced using the assiciated repository. The exact training configuration used for this model is also detailed in [config.yaml](./config.yaml). ## Usage Quick Start: ```python from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch tokenizer = AutoTokenizer.from_pretrained("xpmir/cross-encoder-ettin-68m-infoNCE") model = AutoModelForSequenceClassification.from_pretrained("xpmir/cross-encoder-ettin-68m-infoNCE") features = tokenizer("What is experimaestro ?", "Experimaestro is a powerful framework for ML experiments management...", padding=True, truncation=True, return_tensors="pt") model.eval() with torch.no_grad(): scores = model(**features).logits print(scores) ``` ## Evaluations We provide evaluations of this cross-encoder re-ranking the top `1000` documents retrieved by `naver/splade-v3-distilbert`. | dataset | RR@10 | nDCG@10 | |:-------------------|:----------|:----------| | msmarco_dev | 40.21 | 46.90 | | trec2019 | 95.04 | 73.74 | | trec2020 | 94.75 | 72.76 | | fever | 77.53 | 77.61 | | arguana | 15.59 | 22.32 | | climate_fever | 22.02 | 16.08 | | dbpedia | 72.45 | 43.43 | | fiqa | 47.94 | 39.50 | | hotpotqa | 86.41 | 70.27 | | nfcorpus | 53.89 | 33.28 | | nq | 52.46 | 57.73 | | quora | 78.53 | 80.60 | | scidocs | 28.38 | 15.73 | | scifact | 67.40 | 70.03 | | touche | 63.39 | 36.10 | | trec_covid | 89.83 | 75.08 | | robust04 | 67.90 | 45.38 | | lotte_writing | 72.76 | 64.23 | | lotte_recreation | 63.21 | 57.33 | | lotte_science | 52.26 | 42.76 | | lotte_technology | 56.39 | 48.19 | | lotte_lifestyle | 72.71 | 63.47 | | **Mean In Domain** | **76.67** | **64.47** | | **BEIR 13** | **58.14** | **49.06** | | **LoTTE (OOD)** | **64.21** | **53.56** |