Sentence Similarity
sentence-transformers
PyTorch
English
mpnet
feature-extraction
Eval Results
Inference Endpoints
dmlls's picture
Add examples
e160887
---
pipeline_tag: sentence-similarity
inference: true
widget:
- source_sentence: "That is a happy person."
sentences:
- "That is a cheerful person."
- "That is not a happy person."
- "That is a sad person."
example_title: "Example 1"
- source_sentence: "I like rainy days because they make me feel relaxed."
sentences:
- "I like rainy days because they make me feel chill."
- "I don't like rainy days because they don't make me feel relaxed."
- "I don't like rainy days because they make me feel stressed out."
example_title: "Example 2"
- source_sentence: "This model should work well with negations."
sentences:
- "This model should work well with negated sentences."
- "This model shouldn't work well with negations."
- "This model should work terribly with negations."
example_title: "Example 3"
tags:
- sentence-transformers
- feature-extraction
- sentence-similarity
language: en
license: apache-2.0
datasets:
- s2orc
- flax-sentence-embeddings/stackexchange_xml
- ms_marco
- gooaq
- yahoo_answers_topics
- code_search_net
- search_qa
- eli5
- snli
- multi_nli
- wikihow
- natural_questions
- trivia_qa
- embedding-data/sentence-compression
- embedding-data/flickr30k-captions
- embedding-data/altlex
- embedding-data/simple-wiki
- embedding-data/QQP
- embedding-data/SPECTER
- embedding-data/PAQ_pairs
- embedding-data/WikiAnswers
- tum-nlp/cannot-dataset
model-index:
- name: all-mpnet-base-v2-negation
results:
- task:
type: Classification
dataset:
type: mteb/amazon_counterfactual
name: MTEB AmazonCounterfactualClassification (en)
config: en
split: test
revision: e8379541af4e31359cca9fbcf4b00f2671dba205
metrics:
- type: accuracy
value: 72.6268656716418
- type: ap
value: 36.40585820220466
- type: f1
value: 67.06383995428979
- task:
type: Classification
dataset:
type: mteb/amazon_polarity
name: MTEB AmazonPolarityClassification
config: default
split: test
revision: e2d317d38cd51312af73b3d32a06d1a08b442046
metrics:
- type: accuracy
value: 85.11834999999999
- type: ap
value: 79.72843246428603
- type: f1
value: 85.08938287851875
- task:
type: Classification
dataset:
type: mteb/amazon_reviews_multi
name: MTEB AmazonReviewsClassification (en)
config: en
split: test
revision: 1399c76144fd37290681b995c656ef9b2e06e26d
metrics:
- type: accuracy
value: 37.788000000000004
- type: f1
value: 37.40475118737949
- task:
type: Clustering
dataset:
type: mteb/arxiv-clustering-p2p
name: MTEB ArxivClusteringP2P
config: default
split: test
revision: a122ad7f3f0291bf49cc6f4d32aa80929df69d5d
metrics:
- type: v_measure
value: 45.73138953773995
- task:
type: Clustering
dataset:
type: mteb/arxiv-clustering-s2s
name: MTEB ArxivClusteringS2S
config: default
split: test
revision: f910caf1a6075f7329cdf8c1a6135696f37dbd53
metrics:
- type: v_measure
value: 39.13609863309245
- task:
type: Reranking
dataset:
type: mteb/askubuntudupquestions-reranking
name: MTEB AskUbuntuDupQuestions
config: default
split: test
revision: 2000358ca161889fa9c082cb41daa8dcfb161a54
metrics:
- type: map
value: 65.56639026991134
- type: mrr
value: 77.8122938926263
- task:
type: STS
dataset:
type: mteb/biosses-sts
name: MTEB BIOSSES
config: default
split: test
revision: d3fb88f8f02e40887cd149695127462bbcf29b4a
metrics:
- type: cos_sim_pearson
value: 72.27098152643569
- type: cos_sim_spearman
value: 71.13475338373253
- type: euclidean_pearson
value: 70.48545151074218
- type: euclidean_spearman
value: 69.49917394727082
- type: manhattan_pearson
value: 69.2653740752147
- type: manhattan_spearman
value: 68.59192435931085
- task:
type: Classification
dataset:
type: mteb/banking77
name: MTEB Banking77Classification
config: default
split: test
revision: 0fd18e25b25c072e09e0d92ab615fda904d66300
metrics:
- type: accuracy
value: 84.7012987012987
- type: f1
value: 84.61766470772943
- task:
type: Clustering
dataset:
type: mteb/biorxiv-clustering-p2p
name: MTEB BiorxivClusteringP2P
config: default
split: test
revision: 65b79d1d13f80053f67aca9498d9402c2d9f1f40
metrics:
- type: v_measure
value: 37.61314886948818
- task:
type: Clustering
dataset:
type: mteb/biorxiv-clustering-s2s
name: MTEB BiorxivClusteringS2S
config: default
split: test
revision: 258694dd0231531bc1fd9de6ceb52a0853c6d908
metrics:
- type: v_measure
value: 34.496442588205205
- task:
type: Classification
dataset:
type: mteb/emotion
name: MTEB EmotionClassification
config: default
split: test
revision: 4f58c6b202a23cf9a4da393831edf4f9183cad37
metrics:
- type: accuracy
value: 45.63
- type: f1
value: 40.24119129248194
- task:
type: Classification
dataset:
type: mteb/imdb
name: MTEB ImdbClassification
config: default
split: test
revision: 3d86128a09e091d6018b6d26cad27f2739fc2db7
metrics:
- type: accuracy
value: 74.73479999999999
- type: ap
value: 68.80435332319863
- type: f1
value: 74.66014345440416
- task:
type: Classification
dataset:
type: mteb/mtop_domain
name: MTEB MTOPDomainClassification (en)
config: en
split: test
revision: d80d48c1eb48d3562165c59d59d0034df9fff0bf
metrics:
- type: accuracy
value: 93.06429548563612
- type: f1
value: 92.91686969560733
- task:
type: Classification
dataset:
type: mteb/mtop_intent
name: MTEB MTOPIntentClassification (en)
config: en
split: test
revision: ae001d0e6b1228650b7bd1c2c65fb50ad11a8aba
metrics:
- type: accuracy
value: 78.19197446420428
- type: f1
value: 61.50020940946492
- task:
type: Classification
dataset:
type: mteb/amazon_massive_intent
name: MTEB MassiveIntentClassification (en)
config: en
split: test
revision: 31efe3c427b0bae9c22cbb560b8f15491cc6bed7
metrics:
- type: accuracy
value: 73.86684599865502
- type: f1
value: 72.11245795864379
- task:
type: Classification
dataset:
type: mteb/amazon_massive_scenario
name: MTEB MassiveScenarioClassification (en)
config: en
split: test
revision: 7d571f92784cd94a019292a1f45445077d0ef634
metrics:
- type: accuracy
value: 77.53866845998655
- type: f1
value: 77.51746806908895
- task:
type: Clustering
dataset:
type: mteb/medrxiv-clustering-p2p
name: MTEB MedrxivClusteringP2P
config: default
split: test
revision: e7a26af6f3ae46b30dde8737f02c07b1505bcc73
metrics:
- type: v_measure
value: 33.66744884855605
- task:
type: Clustering
dataset:
type: mteb/medrxiv-clustering-s2s
name: MTEB MedrxivClusteringS2S
config: default
split: test
revision: 35191c8c0dca72d8ff3efcd72aa802307d469663
metrics:
- type: v_measure
value: 31.951900966550262
- task:
type: Reranking
dataset:
type: mteb/mind_small
name: MTEB MindSmallReranking
config: default
split: test
revision: 3bdac13927fdc888b903db93b2ffdbd90b295a69
metrics:
- type: map
value: 29.34485636178124
- type: mrr
value: 30.118035109577022
- task:
type: Clustering
dataset:
type: mteb/reddit-clustering
name: MTEB RedditClustering
config: default
split: test
revision: 24640382cdbf8abc73003fb0fa6d111a705499eb
metrics:
- type: v_measure
value: 47.14306531904168
- task:
type: Clustering
dataset:
type: mteb/reddit-clustering-p2p
name: MTEB RedditClusteringP2P
config: default
split: test
revision: 282350215ef01743dc01b456c7f5241fa8937f16
metrics:
- type: v_measure
value: 51.59878183893005
- task:
type: STS
dataset:
type: mteb/sickr-sts
name: MTEB SICK-R
config: default
split: test
revision: a6ea5a8cab320b040a23452cc28066d9beae2cee
metrics:
- type: cos_sim_pearson
value: 78.5530506834234
- type: cos_sim_spearman
value: 77.45787185404667
- type: euclidean_pearson
value: 76.37727601604011
- type: euclidean_spearman
value: 77.14250754925013
- type: manhattan_pearson
value: 75.85855462882735
- type: manhattan_spearman
value: 76.6223895689777
- task:
type: STS
dataset:
type: mteb/sts12-sts
name: MTEB STS12
config: default
split: test
revision: a0d554a64d88156834ff5ae9920b964011b16384
metrics:
- type: cos_sim_pearson
value: 83.1019526956277
- type: cos_sim_spearman
value: 72.98362332123834
- type: euclidean_pearson
value: 78.42992808997602
- type: euclidean_spearman
value: 70.79569301491145
- type: manhattan_pearson
value: 77.96413528436207
- type: manhattan_spearman
value: 70.34707852104586
- task:
type: STS
dataset:
type: mteb/sts13-sts
name: MTEB STS13
config: default
split: test
revision: 7e90230a92c190f1bf69ae9002b8cea547a64cca
metrics:
- type: cos_sim_pearson
value: 85.09200805966644
- type: cos_sim_spearman
value: 85.52497834636847
- type: euclidean_pearson
value: 84.20407512505086
- type: euclidean_spearman
value: 85.35640946044332
- type: manhattan_pearson
value: 83.79425758102826
- type: manhattan_spearman
value: 84.9531731481683
- task:
type: STS
dataset:
type: mteb/sts14-sts
name: MTEB STS14
config: default
split: test
revision: 6031580fec1f6af667f0bd2da0a551cf4f0b2375
metrics:
- type: cos_sim_pearson
value: 82.43419245577238
- type: cos_sim_spearman
value: 79.87215923164575
- type: euclidean_pearson
value: 80.99628882719712
- type: euclidean_spearman
value: 79.2671186335978
- type: manhattan_pearson
value: 80.47076166661054
- type: manhattan_spearman
value: 78.82329686631051
- task:
type: STS
dataset:
type: mteb/sts15-sts
name: MTEB STS15
config: default
split: test
revision: ae752c7c21bf194d8b67fd573edf7ae58183cbe3
metrics:
- type: cos_sim_pearson
value: 84.67294508915346
- type: cos_sim_spearman
value: 85.34528695616378
- type: euclidean_pearson
value: 83.65270617275111
- type: euclidean_spearman
value: 84.64456096952591
- type: manhattan_pearson
value: 83.26416114783083
- type: manhattan_spearman
value: 84.26944094512996
- task:
type: STS
dataset:
type: mteb/sts16-sts
name: MTEB STS16
config: default
split: test
revision: 4d8694f8f0e0100860b497b999b3dbed754a0513
metrics:
- type: cos_sim_pearson
value: 80.70172607906416
- type: cos_sim_spearman
value: 81.96031310316046
- type: euclidean_pearson
value: 82.34820192315314
- type: euclidean_spearman
value: 82.72576940549405
- type: manhattan_pearson
value: 81.93093910116202
- type: manhattan_spearman
value: 82.25431799152639
- task:
type: STS
dataset:
type: mteb/sts17-crosslingual-sts
name: MTEB STS17 (en-en)
config: en-en
split: test
revision: af5e6fb845001ecf41f4c1e033ce921939a2a68d
metrics:
- type: cos_sim_pearson
value: 90.43640731744911
- type: cos_sim_spearman
value: 90.16343998541602
- type: euclidean_pearson
value: 89.49834342254633
- type: euclidean_spearman
value: 90.17304989919288
- type: manhattan_pearson
value: 89.32424382015218
- type: manhattan_spearman
value: 89.91884845996768
- task:
type: STS
dataset:
type: mteb/sts22-crosslingual-sts
name: MTEB STS22 (en)
config: en
split: test
revision: 6d1ba47164174a496b7fa5d3569dae26a6813b80
metrics:
- type: cos_sim_pearson
value: 62.06205206393254
- type: cos_sim_spearman
value: 60.920792876665885
- type: euclidean_pearson
value: 60.49188637403393
- type: euclidean_spearman
value: 60.73500415357452
- type: manhattan_pearson
value: 59.94692152491976
- type: manhattan_spearman
value: 60.215426858338994
- task:
type: STS
dataset:
type: mteb/stsbenchmark-sts
name: MTEB STSBenchmark
config: default
split: test
revision: b0fddb56ed78048fa8b90373c8a3cfc37b684831
metrics:
- type: cos_sim_pearson
value: 84.78948820087687
- type: cos_sim_spearman
value: 84.64531509697663
- type: euclidean_pearson
value: 84.77264321816324
- type: euclidean_spearman
value: 84.67485410196043
- type: manhattan_pearson
value: 84.43100272264775
- type: manhattan_spearman
value: 84.29254033404217
- task:
type: Reranking
dataset:
type: mteb/scidocs-reranking
name: MTEB SciDocsRR
config: default
split: test
revision: d3c5e1fc0b855ab6097bf1cda04dd73947d7caab
metrics:
- type: map
value: 88.39411601972704
- type: mrr
value: 96.49192583016112
- task:
type: PairClassification
dataset:
type: mteb/sprintduplicatequestions-pairclassification
name: MTEB SprintDuplicateQuestions
config: default
split: test
revision: d66bd1f72af766a5cc4b0ca5e00c162f89e8cc46
metrics:
- type: cos_sim_accuracy
value: 99.55445544554455
- type: cos_sim_ap
value: 84.82462858434408
- type: cos_sim_f1
value: 76.11464968152866
- type: cos_sim_precision
value: 81.10859728506787
- type: cos_sim_recall
value: 71.7
- type: dot_accuracy
value: 99.48613861386139
- type: dot_ap
value: 80.97278220281665
- type: dot_f1
value: 72.2914669223394
- type: dot_precision
value: 69.42909760589319
- type: dot_recall
value: 75.4
- type: euclidean_accuracy
value: 99.56138613861386
- type: euclidean_ap
value: 85.21566333946467
- type: euclidean_f1
value: 76.60239708181345
- type: euclidean_precision
value: 79.97823721436343
- type: euclidean_recall
value: 73.5
- type: manhattan_accuracy
value: 99.55148514851486
- type: manhattan_ap
value: 84.49960192851891
- type: manhattan_f1
value: 75.9681697612732
- type: manhattan_precision
value: 80.90395480225989
- type: manhattan_recall
value: 71.6
- type: max_accuracy
value: 99.56138613861386
- type: max_ap
value: 85.21566333946467
- type: max_f1
value: 76.60239708181345
- task:
type: Clustering
dataset:
type: mteb/stackexchange-clustering
name: MTEB StackExchangeClustering
config: default
split: test
revision: 6cbc1f7b2bc0622f2e39d2c77fa502909748c259
metrics:
- type: v_measure
value: 49.33929838947165
- task:
type: Clustering
dataset:
type: mteb/stackexchange-clustering-p2p
name: MTEB StackExchangeClusteringP2P
config: default
split: test
revision: 815ca46b2622cec33ccafc3735d572c266efdb44
metrics:
- type: v_measure
value: 31.523973661953686
- task:
type: Reranking
dataset:
type: mteb/stackoverflowdupquestions-reranking
name: MTEB StackOverflowDupQuestions
config: default
split: test
revision: e185fbe320c72810689fc5848eb6114e1ef5ec69
metrics:
- type: map
value: 52.22408767861519
- type: mrr
value: 53.16279921059333
- task:
type: Summarization
dataset:
type: mteb/summeval
name: MTEB SummEval
config: default
split: test
revision: cda12ad7615edc362dbf25a00fdd61d3b1eaf93c
metrics:
- type: cos_sim_pearson
value: 28.128173244098726
- type: cos_sim_spearman
value: 30.149225143523662
- type: dot_pearson
value: 24.322914168643386
- type: dot_spearman
value: 26.38194545372431
- task:
type: Classification
dataset:
type: mteb/toxic_conversations_50k
name: MTEB ToxicConversationsClassification
config: default
split: test
revision: d7c0de2777da35d6aae2200a62c6e0e5af397c4c
metrics:
- type: accuracy
value: 67.6684
- type: ap
value: 12.681984793717413
- type: f1
value: 51.97637585601529
- task:
type: Classification
dataset:
type: mteb/tweet_sentiment_extraction
name: MTEB TweetSentimentExtractionClassification
config: default
split: test
revision: d604517c81ca91fe16a244d1248fc021f9ecee7a
metrics:
- type: accuracy
value: 58.44086021505377
- type: f1
value: 58.68058329615692
- task:
type: Clustering
dataset:
type: mteb/twentynewsgroups-clustering
name: MTEB TwentyNewsgroupsClustering
config: default
split: test
revision: 6125ec4e24fa026cec8a478383ee943acfbd5449
metrics:
- type: v_measure
value: 44.226944341054015
- task:
type: PairClassification
dataset:
type: mteb/twittersemeval2015-pairclassification
name: MTEB TwitterSemEval2015
config: default
split: test
revision: 70970daeab8776df92f5ea462b6173c0b46fd2d1
metrics:
- type: cos_sim_accuracy
value: 86.87488823985218
- type: cos_sim_ap
value: 76.85283892335002
- type: cos_sim_f1
value: 70.42042042042041
- type: cos_sim_precision
value: 66.96811042360781
- type: cos_sim_recall
value: 74.24802110817942
- type: dot_accuracy
value: 84.85426476724086
- type: dot_ap
value: 70.77036812650887
- type: dot_f1
value: 66.4901577069184
- type: dot_precision
value: 58.97488258117215
- type: dot_recall
value: 76.2005277044855
- type: euclidean_accuracy
value: 86.95833581689217
- type: euclidean_ap
value: 77.05903224969623
- type: euclidean_f1
value: 70.75323419175432
- type: euclidean_precision
value: 65.2979245704084
- type: euclidean_recall
value: 77.20316622691293
- type: manhattan_accuracy
value: 86.88084878106932
- type: manhattan_ap
value: 76.95056209047733
- type: manhattan_f1
value: 70.61542203843348
- type: manhattan_precision
value: 65.50090252707581
- type: manhattan_recall
value: 76.59630606860158
- type: max_accuracy
value: 86.95833581689217
- type: max_ap
value: 77.05903224969623
- type: max_f1
value: 70.75323419175432
- task:
type: PairClassification
dataset:
type: mteb/twitterurlcorpus-pairclassification
name: MTEB TwitterURLCorpus
config: default
split: test
revision: 8b6510b0b1fa4e4c4f879467980e9be563ec1cdf
metrics:
- type: cos_sim_accuracy
value: 88.43870066363954
- type: cos_sim_ap
value: 84.77197321507954
- type: cos_sim_f1
value: 76.91440595175472
- type: cos_sim_precision
value: 75.11375311903713
- type: cos_sim_recall
value: 78.80351093316908
- type: dot_accuracy
value: 87.60624054022587
- type: dot_ap
value: 83.16574114504616
- type: dot_f1
value: 75.5050226294293
- type: dot_precision
value: 72.30953555571217
- type: dot_recall
value: 78.99599630428088
- type: euclidean_accuracy
value: 88.2951061435169
- type: euclidean_ap
value: 84.28559058741602
- type: euclidean_f1
value: 76.7921146953405
- type: euclidean_precision
value: 74.54334589736156
- type: euclidean_recall
value: 79.1807822605482
- type: manhattan_accuracy
value: 88.23883261536074
- type: manhattan_ap
value: 84.20593815258039
- type: manhattan_f1
value: 76.74366281685916
- type: manhattan_precision
value: 74.80263157894737
- type: manhattan_recall
value: 78.78811210348013
- type: max_accuracy
value: 88.43870066363954
- type: max_ap
value: 84.77197321507954
- type: max_f1
value: 76.91440595175472
---
# all-mpnet-base-v2-negation
**This is a fine-tuned [sentence-transformers](https://www.SBERT.net) model to perform better on negated pairs of sentences.**
It maps sentences and paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search.
## Usage (Sentence-Transformers)
Using this model becomes easy when you have [sentence-transformers](https://www.SBERT.net) installed:
```
pip install -U sentence-transformers
```
Then you can use the model like this:
```python
from sentence_transformers import SentenceTransformer
sentences = [
"I like rainy days because they make me feel relaxed.",
"I don't like rainy days because they don't make me feel relaxed."
]
model = SentenceTransformer('dmlls/all-mpnet-base-v2-negation')
embeddings = model.encode(sentences)
print(embeddings)
```
## Usage (HuggingFace Transformers)
Without [sentence-transformers](https://www.SBERT.net), you can use the model like this: First, you pass your input through the transformer model, then you have to apply the right pooling-operation on-top of the contextualized word embeddings.
```python
from transformers import AutoTokenizer, AutoModel
import torch
import torch.nn.functional as F
# Mean Pooling - Take attention mask into account for correct averaging
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] #First element of model_output contains all token embeddings
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
# Sentences we want sentence embeddings for
sentences = [
"I like rainy days because they make me feel relaxed.",
"I don't like rainy days because they don't make me feel relaxed."
]
# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('dmlls/all-mpnet-base-v2-negation')
model = AutoModel.from_pretrained('dmlls/all-mpnet-base-v2-negation')
# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Compute token embeddings
with torch.no_grad():
model_output = model(**encoded_input)
# Perform pooling
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
# Normalize embeddings
sentence_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)
print(sentence_embeddings)
```
------
## Background
This model was finetuned within the context of the [*This is not correct! Negation-aware Evaluation of Language Generation Systems*](https://arxiv.org/abs/2307.13989) paper.
## Intended uses
Our model is intended to be used as a sentence and short paragraph encoder, performing well (i.e., reporting lower similarity scores) on negated pairs of sentences when compared to its base model.
Given an input text, it outputs a vector which captures the semantic information. The sentence vector may be used for information retrieval, clustering or sentence similarity tasks.
By default, input text longer than 384 word pieces is truncated.
## Training procedure
### Pre-training
We used [`sentence-transformers/all-mpnet-base-v2`](https://huggingface.co/sentence-transformers/all-mpnet-base-v2) as base model.
### Fine-tuning
We fine-tuned the model on the [CANNOT dataset](https://huggingface.co/datasets/tum-nlp/cannot-dataset) using a contrastive objective. Formally, we compute the cosine similarity from each possible sentence pairs from the batch. We then apply the cross entropy loss by comparing with true pairs.
#### Hyper parameters
We followed an analogous approach to [how other Sentence Transformers were trained](https://github.com/UKPLab/sentence-transformers/blob/3e1929fddef16df94f8bc6e3b10598a98f46e62d/examples/training/nli/training_nli_v2.py). We took the first 90% of samples from the CANNOT dataset as the training split.
We used a batch size of 64 and trained for 1 epoch.