Papers › Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

27 Aug 2019IJCNLP 2019 11arXiv:1908.10084archive 2025-07-28

Nils Reimers, Iryna Gurevych

BERT (Devlin et al., 2018) and RoBERTa (Liu et al., 2019) has set a new state-of-the-art performance on sentence-pair regression tasks like semantic textual similarity (STS). However, it requires that both sentences are fed into the network, which causes a massive computational overhead: Finding the most similar pair in a collection of 10,000 sentences requires about 50 million inference computations (~65 hours) with BERT. The construction of BERT makes it unsuitable for semantic similarity search as well as for unsupervised tasks like clustering. In this publication, we present Sentence-BERT (SBERT), a modification of the pretrained BERT network that use siamese and triplet network structures to derive semantically meaningful sentence embeddings that can be compared using cosine-similarity. This reduces the effort for finding the most similar pair from 65 hours with BERT / RoBERTa to about 5 seconds with SBERT, while maintaining the accuracy from BERT. We evaluate SBERT and SRoBERTa on common STS tasks and transfer learning tasks, where it outperforms other state-of-the-art sentence embeddings methods.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1908.10084")

Code

Syntology Ran 20 of 58 code samples harvested from 17 repositories linked to this paper; 38 have no recorded run. Of those that ran: 1 ran · honoured contract; 1 ran · our draft was wrong; 18 ran with no contract checked.

By repository: community (archive-listed): 58 samples from 17 repositories, 20 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

64 repositories listed; official and paper-mentioned ones first.

UKPLab/sentence-transformers officialmentioned in papermentioned on GitHubpytorchApache-2.0 report
BM-K/KoSentenceBERT mentioned on GitHubpytorch report
BM-K/KoSentenceBERT_ETRI mentioned on GitHubpytorch report
BM-K/KoSentenceBERT_SKT mentioned on GitHubpytorch report
BM-K/KoSentenceBERT_SKTBERT mentioned on GitHubpytorch report
BinWang28/BERT_Sentence_Embedding mentioned on GitHubpytorch report
BinWang28/SBERT-WK-Sentence-Embedding mentioned on GitHubpytorchApache-2.0 report
Danqi7/584-final mentioned on GitHubpytorch report
InsaneLife/dssm mentioned on GitHubtf report
Siamul/NLP-Project mentioned on GitHubpytorch report
Susheel-1999/Sentence_Similarity mentioned on GitHubMIT report
TheNeuromancer/SentEmb mentioned on GitHubpytorchApache-2.0 report
Walid-Rahman2/modified_sentence_transfomers mentioned on GitHubpytorchApache-2.0 report
aneesha/SiameseBERT-Notebook mentioned on GitHubMIT report
bm-k/kosentencebert-skt mentioned on GitHubpytorch report
brightjade/CS492E-CiteRec mentioned on GitHubpytorch report
croitorualin/reverse-stable-diffusion mentioned on GitHubpytorch report
datcancode/sentence-transformers mentioned on GitHubpytorchApache-2.0 report
dmmiller612/bert-extractive-summarizer mentioned on GitHubpytorchMIT report
eelenadelolmo/WordVectors mentioned on GitHubpytorch report
eric11eca/NeuralLog mentioned on GitHubMIT report
gmcgoldr/theissues mentioned on GitHubpytorchMIT report
hhzrd/BEFAQ mentioned on GitHubApache-2.0 report
hkust-nlp/syncse mentioned on GitHubpytorch report
idiap/analogy_learning mentioned on GitHubpytorch report
jcyk/mse-amr mentioned on GitHubpytorchMIT report
kihohan/NLP_Reference mentioned on GitHubpytorch report
lambert-x/prolab mentioned on GitHubpytorchApache-2.0 report
law-ai/summarization mentioned on GitHubpytorch report
martinomensio/spacy-sentence-bert mentioned on GitHubpytorchMIT report
nuochenpku/sscl mentioned on GitHubpytorchApache-2.0 report
oto-labs/librarian mentioned on GitHubMIT report
princeton-nlp/SimCSE mentioned on GitHubpytorchMIT report
puerrrr/focal-infonce mentioned on GitHubpytorch report
reoneo97/wutr-buildon-2021 mentioned on GitHubpytorch report
rmslick/SummarySearch mentioned on GitHubpytorch report
sjtu-lit/syncse mentioned on GitHubpytorchMIT report
valdecy/pybibx mentioned on GitHubtfNOASSERTION report
xiaoouwang/frenchnlp mentioned on GitHubpytorch report
yjiangcm/dcpcse mentioned on GitHubpytorch report
yjiangcm/promcse mentioned on GitHubpytorch report
yur7nd/ptss mentioned on GitHubpytorch report
zhihaillm/wisdominterrogatory mentioned on GitHubpytorchApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

58 samples harvested; 20 ran; 1 honoured the contract we drafted; 38 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
1ran · our draft was wrong
18ran
38unverified

Licence: 11 of the 58 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 17 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

BertForCL hkust-nlp/syncse/simcse/models.py community (archive-listed) ran MIT (permissive) · c15599049fd15b4a · report
ContrastivTensionModel FreddeFrallan/Contrastive-Tension/ContrastiveTension/ContrastiveTensionModel.py community (archive-listed) ran MIT (permissive) · 00b78ef545fe4550 · report
DropoutLayer nuochenpku/sscl/sscl/models.py community (archive-listed) ran fingerprinted Apache-2.0 (permissive) · cbdb205ae8fa5618 · report
MLPLayer puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) ran fingerprinted MIT (permissive) · 9ac67fa1b927fc99 · report
Pooler nuochenpku/sscl/sscl/models.py community (archive-listed) ran Apache-2.0 (permissive) · 084cdb52bc764df4 · report
PositionalEncoding fangrouli/Document-embedding-generation-models/Transformer.py community (archive-listed) ran · metamorphic tier: deterministic no licence file found · pointer only · df850ec18857365a · report
PrefixEncoder yjiangcm/dcpcse/promcse/models.py community (archive-listed) ran · metamorphic tier: deterministic no licence file found · pointer only · 9472f0fd91c6ce99 · report
ProjectionMLP nuochenpku/sscl/sscl/models.py community (archive-listed) ran fingerprinted Apache-2.0 (permissive) · 872b7f900bfbde62 · report
SiameseBERT rafaljanwojcik/SentenceBERT_vs_SiameseLSTM/modules/models.py community (archive-listed) ran no licence file found · pointer only · 858aaa4a9df561a0 · report
Similarity puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) ran fingerprinted MIT (permissive) · 302aa6c6e2e758b8 · report
TransformerModel fangrouli/Document-embedding-generation-models/Transformer.py community (archive-listed) ran no licence file found · pointer only · 265a0746f1edf50c · report
azhang_MLP jcyk/mse-amr/simcse/models.py community (archive-listed) ran · metamorphic tier: invariant MIT (permissive) · fcf235d048bd02d9 · report
bzhang_MLP jcyk/mse-amr/simcse/models.py community (archive-listed) ran MIT (permissive) · 4e4cd886852d45da · report
cl_forward puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 7129023fed66db75 · report
cl_forward jcyk/mse-amr/simcse/models.py community (archive-listed) ran MIT (permissive) · 07787be6ded0e351 · report
compare_sent_transformer xiaoouwang/frenchnlp/frenchnlp/sentence.py community (archive-listed) ran · honoured contract licence not identified · pointer only · c571e67515e0ff95 · report
czhang_MLP jcyk/mse-amr/simcse/models.py community (archive-listed) ran · metamorphic tier: invariant MIT (permissive) · e1f8c403a1e96d8e · report
dzhang_MLP jcyk/mse-amr/simcse/models.py community (archive-listed) ran · metamorphic tier: invariant MIT (permissive) · 932453f299fb7654 · report
ozhang_MLP jcyk/mse-amr/simcse/models.py community (archive-listed) ran · metamorphic tier: invariant MIT (permissive) · 39b082869b286751 · report
sentemb_forward jcyk/mse-amr/simcse/models.py community (archive-listed) ran MIT (permissive) · 32d955e246903e89 · report
BertForCL yjiangcm/dcpcse/promcse/models.py community (archive-listed) unverified no licence file found · pointer only · 686396546abff873 · report
BertForCL nuochenpku/sscl/sscl/models.py community (archive-listed) unverified Apache-2.0 (permissive) · 67b848a28b094d8e · report
BertForCL puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) unverified MIT (permissive) · b248e7b923a2c743 · report
BertForCL jcyk/mse-amr/simcse/models.py community (archive-listed) unverified MIT (permissive) · cfcdc208c6f85bf3 · report
LongBertPredictor OctopusMind/longBert/train/longbert_utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 0cbdfd56794bd3b4 · report
Pooler jcyk/mse-amr/simcse/models.py community (archive-listed) unverified MIT (permissive) · 14d8220d0ad290ce · report
RobertaForCL yjiangcm/promcse/promcse/models.py community (archive-listed) unverified no licence file found · pointer only · ee25e6e27384a5bb · report
SentBert Danqi7/584-final/models.py community (archive-listed) unverified no licence file found · pointer only · 442b59853addd2de · report
build_intra_topic_pairs gmcgoldr/theissues/src/theissues/clustering.py community (archive-listed) unverified MIT (permissive) · 4f1eabf533121ffa · report
build_mlp jcyk/mse-amr/simcse/models.py community (archive-listed) unverified MIT (permissive) · d7723134bf6e3bd2 · report
build_sequence_gather_indices gmcgoldr/theissues/src/theissues/training.py community (archive-listed) unverified MIT (permissive) · 8369d387619c884e · report
build_sequence_mask_after gmcgoldr/theissues/src/theissues/training.py community (archive-listed) unverified MIT (permissive) · 9f093abe8a8633f3 · report
build_sequences_splits gmcgoldr/theissues/src/theissues/training.py community (archive-listed) unverified MIT (permissive) · 31bba20e3bd8bab6 · report
build_topic_groups gmcgoldr/theissues/src/theissues/clustering.py community (archive-listed) unverified MIT (permissive) · 5939fd392b84fb91 · report
calculate_pca gmcgoldr/theissues/src/theissues/clustering.py community (archive-listed) unverified MIT (permissive) · 89511893f786e611 · report
cl_forward yjiangcm/dcpcse/promcse/models.py community (archive-listed) unverified no licence file found · pointer only · 11633811e04f78a3 · report
cl_forward nuochenpku/sscl/sscl/models.py community (archive-listed) unverified Apache-2.0 (permissive) · 6240552f92bf148f · report
cl_init yjiangcm/dcpcse/promcse/models.py community (archive-listed) unverified no licence file found · pointer only · 9b2126395aa31fff · report
cl_init nuochenpku/sscl/sscl/models.py community (archive-listed) unverified Apache-2.0 (permissive) · 6309d0697eb157fc · report
cl_init puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) unverified MIT (permissive) · 86a386d0f82442dc · report
cl_init hkust-nlp/syncse/simcse/models.py community (archive-listed) unverified MIT (permissive) · ecf7ae695fd278cd · report
cl_init jcyk/mse-amr/simcse/models.py community (archive-listed) unverified MIT (permissive) · 31852ff2075805f1 · report
construct_negtives nuochenpku/sscl/sscl/models.py community (archive-listed) unverified Apache-2.0 (permissive) · 941deecc46bb006c · report
create_lang martinomensio/spacy-sentence-bert/spacy_sentence_bert/util.py community (archive-listed) unverified MIT (permissive) · df6ff0395b06ea36 · report
decode_token_ids gmcgoldr/theissues/src/theissues/utils.py community (archive-listed) unverified MIT (permissive) · b6ee269d40006587 · report
euclidean Susheel-1999/Sentence_Similarity/sentence_similarity/similarity_functions.py community (archive-listed) unverified MIT (permissive) · f066e3a9c1823a5d · report
gather_embeddings puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) unverified MIT (permissive) · b834174c62e09dbd · report
get_id_to_token gmcgoldr/theissues/src/theissues/utils.py community (archive-listed) unverified MIT (permissive) · eb26fd491b20e527 · report
key_words_match_intention zhihaillm/wisdominterrogatory/app/langchain_demo/code/clc/matching.py community (archive-listed) unverified Apache-2.0 (permissive) · c511c8001abbd371 · report
kill_port hhzrd/BEFAQ/common/kill_program.py community (archive-listed) unverified Apache-2.0 (permissive) · 3e688147017e6353 · report
manhattan Susheel-1999/Sentence_Similarity/sentence_similarity/similarity_functions.py community (archive-listed) unverified MIT (permissive) · 51432767e48e693e · report
minkowski Susheel-1999/Sentence_Similarity/sentence_similarity/similarity_functions.py community (archive-listed) unverified MIT (permissive) · b53bdc3c4189a65f · report
name_spacy_to_sentencebert martinomensio/spacy-sentence-bert/spacy_sentence_bert/util.py community (archive-listed) unverified MIT (permissive) · c38df05247b84a49 · report
prepare_statement_encoding gmcgoldr/theissues/src/theissues/utils.py community (archive-listed) unverified MIT (permissive) · fcc6795327e2fa96 · report
sentemb_forward yjiangcm/dcpcse/promcse/models.py community (archive-listed) unverified no licence file found · pointer only · 20ddfaeb2cd9188c · report
set_hooks martinomensio/spacy-sentence-bert/spacy_sentence_bert/language.py community (archive-listed) unverified MIT (permissive) · 4e8b30d8d981126f · report
sp_logits puerrrr/focal-infonce/focalNCE/models.py community (archive-listed) unverified MIT (permissive) · 0fe6a0e42f7b4354 · report
upload_image_to_imgur zhihaillm/wisdominterrogatory/pics/upload_fig.py community (archive-listed) unverified Apache-2.0 (permissive) · e49609a7ba74163b · report

Tasks

ClusteringLinear-Probe ClassificationSTSSemantic SimilaritySemantic Textual SimilaritySentenceSentence EmbeddingSentence EmbeddingsTransfer Learning

1 archive task tag without a task page not shown.

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Semantic Textual Similarity SICK SentenceBERT Spearman Correlation 0.7462 #6 of 22 Archive leaderboard report
Semantic Textual Similarity SICK SRoBERTa-NLI-base Spearman Correlation 0.7446 #7 of 22 Archive leaderboard report
Semantic Textual Similarity SICK SRoBERTa-NLI-large Spearman Correlation 0.7429 #8 of 22 Archive leaderboard report
Semantic Textual Similarity SICK SBERT-NLI-large Spearman Correlation 0.7375 #10 of 22 Archive leaderboard report
Semantic Textual Similarity SICK SBERT-NLI-base Spearman Correlation 0.7291 #11 of 22 Archive leaderboard report
Semantic Textual Similarity STS Benchmark SRoBERTa-NLI-STSb-large Spearman Correlation 0.8615 #46 of 66 Archive leaderboard report
Semantic Textual Similarity STS Benchmark SBERT-STSb-base Spearman Correlation 0.8479 #47 of 66 Archive leaderboard report
Semantic Textual Similarity STS Benchmark SBERT-STSb-large Spearman Correlation 0.8445 #49 of 66 Archive leaderboard report
Semantic Textual Similarity STS Benchmark SBERT-NLI-large Spearman Correlation 0.79 #53 of 66 Archive leaderboard report
Semantic Textual Similarity STS Benchmark SRoBERTa-NLI-base Spearman Correlation 0.7777 #56 of 66 Archive leaderboard report
Semantic Textual Similarity STS Benchmark SBERT-NLI-base Spearman Correlation 0.7703 #57 of 66 Archive leaderboard report
Semantic Textual Similarity STS12 SRoBERTa-NLI-large Spearman Correlation 0.7453 #12 of 20 Archive leaderboard report
Semantic Textual Similarity STS13 SBERT-NLI-large Spearman Correlation 0.7846 #20 of 22 Archive leaderboard report
Semantic Textual Similarity STS14 SBERT-NLI-large Spearman Correlation 0.7490000000000001 #16 of 21 Archive leaderboard report
Semantic Textual Similarity STS15 SRoBERTa-NLI-large Spearman Correlation 0.8185 #15 of 20 Archive leaderboard report
Semantic Textual Similarity STS16 SRoBERTa-NLI-large Spearman Correlation 0.7682 #18 of 20 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Introduced by this paper: SBERT

AdamAttentionAttention DropoutBERTDense ConnectionsDropoutLayer NormalizationLinear LayerLinear Warmup With Linear DecayMulti-Head AttentionResidual ConnectionRoBERTaSBERTSoftmaxWeight DecayWordPiece

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections