[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2560":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},2560,"sentence-transformers","huggingface\u002Fsentence-transformers","huggingface","State-of-the-Art Embeddings, Retrieval, and Reranking","https:\u002F\u002Fwww.sbert.net",null,"Python",18800,2804,147,1269,0,6,30,150,29,107,"Apache License 2.0",false,"main",[],"2026-06-11 04:01:14","\u003C!--- BADGES: START --->\n\n[![HF Models](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97-models-yellow)](https:\u002F\u002Fhuggingface.co\u002Fmodels?library=sentence-transformers)\n[![GitHub - License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fhuggingface\u002Fsentence-transformers?logo=github&style=flat&color=green)][#github-license]\n[![PyPI - Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fsentence-transformers?logo=pypi&style=flat&color=blue)][#pypi-package]\n[![PyPI - Package Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fsentence-transformers?logo=pypi&style=flat&color=orange)][#pypi-package]\n[![Docs - GitHub.io](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?logo=github&style=flat&color=pink&label=docs&message=sentence-transformers)][#docs-package]\n\n\u003C!-- [![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fsentence-transformers?logo=pypi&style=flat&color=green)][#pypi-package] -->\n\n\u003C!--- BADGES: END --->\n\n# Sentence Transformers: Embeddings, Retrieval, and Reranking\n\nThis framework provides an easy method to compute embeddings for accessing, using, and training state-of-the-art embedding and reranker models. It can be used to compute embeddings using Sentence Transformer models ([quickstart](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fquickstart.html#sentence-transformer)), to calculate similarity scores using Cross-Encoder (a.k.a. reranker) models ([quickstart](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fquickstart.html#cross-encoder)) or to generate sparse embeddings using Sparse Encoder models ([quickstart](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fquickstart.html#sparse-encoder)). This unlocks a wide range of applications, including [semantic search](https:\u002F\u002Fsbert.net\u002Fexamples\u002Fapplications\u002Fsemantic-search\u002FREADME.html), [semantic textual similarity](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsentence_transformer\u002Fusage\u002Fsemantic_textual_similarity.html), and [paraphrase mining](https:\u002F\u002Fsbert.net\u002Fexamples\u002Fapplications\u002Fparaphrase-mining\u002FREADME.html).\n\nA wide selection of over [15,000 pre-trained Sentence Transformers models](https:\u002F\u002Fhuggingface.co\u002Fmodels?library=sentence-transformers) are available for immediate use on 🤗 Hugging Face, including many of the state-of-the-art models from the [Massive Text Embeddings Benchmark (MTEB) leaderboard](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fmteb\u002Fleaderboard). Additionally, it is easy to train or finetune your own [embedding models](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsentence_transformer\u002Ftraining_overview.html), [reranker models](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fcross_encoder\u002Ftraining_overview.html) or [sparse encoder models](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsparse_encoder\u002Ftraining_overview.html) using Sentence Transformers, enabling you to create custom models for your specific use cases.\n\nFor the **full documentation**, see **[www.SBERT.net](https:\u002F\u002Fwww.sbert.net)**.\n\n## Installation\n\nWe recommend **Python 3.10+**, **[PyTorch 1.11.0+](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)**, and **[transformers v4.41.0+](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)**.\n\n```\npip install -U sentence-transformers\n```\n\nSee [Installation](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Finstallation.html) in the docs for uv, conda, source, and editable installs, CUDA setup, and extras (`[image]`, `[audio]`, `[video]`, `[train]`, `[onnx]`, `[openvino]`, `[dev]`).\n\n## Getting Started\n\nSee [Quickstart](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fquickstart.html) in our documentation.\n\n### Embedding Models\n\nFirst download a pretrained embedding a.k.a. Sentence Transformer model.\n\n```python\nfrom sentence_transformers import SentenceTransformer\n\nmodel = SentenceTransformer(\"sentence-transformers\u002Fall-MiniLM-L6-v2\")\n```\n\nThen provide some texts to the model.\n\n```python\nsentences = [\n    \"The weather is lovely today.\",\n    \"It's so sunny outside!\",\n    \"He drove to the stadium.\",\n]\nembeddings = model.encode(sentences)\nprint(embeddings.shape)\n# => (3, 384)\n```\n\nAnd that's already it. We now have numpy arrays with the embeddings, one for each text. We can use these to compute similarities.\n\n```python\nsimilarities = model.similarity(embeddings, embeddings)\nprint(similarities)\n# tensor([[1.0000, 0.6660, 0.1046],\n#         [0.6660, 1.0000, 0.1411],\n#         [0.1046, 0.1411, 1.0000]])\n```\n\n### Reranker Models\n\nFirst download a pretrained reranker a.k.a. Cross Encoder model.\n\n```python\nfrom sentence_transformers import CrossEncoder\n\n# 1. Load a pretrained CrossEncoder model\nmodel = CrossEncoder(\"cross-encoder\u002Fms-marco-MiniLM-L6-v2\")\n```\n\nThen provide some texts to the model.\n\n```python\n# The texts for which to predict similarity scores\nquery = \"How many people live in Berlin?\"\npassages = [\n    \"Berlin had a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers.\",\n    \"Berlin has a yearly total of about 135 million day visitors, making it one of the most-visited cities in the European Union.\",\n    \"In 2013 around 600,000 Berliners were registered in one of the more than 2,300 sport and fitness clubs.\",\n]\n\n# 2a. predict scores for pairs of texts\nscores = model.predict([(query, passage) for passage in passages])\nprint(scores)\n# => [8.607139 5.506266 6.352977]\n```\n\nAnd we're good to go. You can also use [`model.rank`](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fpackage_reference\u002Fcross_encoder\u002Fcross_encoder.html#sentence_transformers.cross_encoder.model.CrossEncoder.rank) to avoid having to perform the reranking manually:\n\n```python\n# 2b. Rank a list of passages for a query\nranks = model.rank(query, passages, return_documents=True)\n\nprint(\"Query:\", query)\nfor rank in ranks:\n    print(f\"- #{rank['corpus_id']} ({rank['score']:.2f}): {rank['text']}\")\n\"\"\"\nQuery: How many people live in Berlin?\n- #0 (8.61): Berlin had a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers.\n- #2 (6.35): In 2013 around 600,000 Berliners were registered in one of the more than 2,300 sport and fitness clubs.\n- #1 (5.51): Berlin has a yearly total of about 135 million day visitors, making it one of the most-visited cities in the European Union.\n\"\"\"\n```\n\n### Sparse Encoder Models\n\nFirst download a pretrained sparse embedding a.k.a. Sparse Encoder model.\n\n```python\n\nfrom sentence_transformers import SparseEncoder\n\n# 1. Load a pretrained SparseEncoder model\nmodel = SparseEncoder(\"naver\u002Fsplade-cocondenser-ensembledistil\")\n\n# The sentences to encode\nsentences = [\n    \"The weather is lovely today.\",\n    \"It's so sunny outside!\",\n    \"He drove to the stadium.\",\n]\n\n# 2. Calculate sparse embeddings by calling model.encode()\nembeddings = model.encode(sentences)\nprint(embeddings.shape)\n# [3, 30522] - sparse representation with vocabulary size dimensions\n\n# 3. Calculate the embedding similarities\nsimilarities = model.similarity(embeddings, embeddings)\nprint(similarities)\n# tensor([[   35.629,     9.154,     0.098],\n#         [    9.154,    27.478,     0.019],\n#         [    0.098,     0.019,    29.553]])\n\n# 4. Check sparsity stats\nstats = SparseEncoder.sparsity(embeddings)\nprint(f\"Sparsity: {stats['sparsity_ratio']:.2%}\")\n# Sparsity: 99.84%\n```\n\n## Pre-Trained Models\n\nWe provide a large list of pretrained models for more than 100 languages. Some models are general purpose models, while others produce embeddings for specific use cases.\n\n- [Pretrained Sentence Transformer (Embedding) Models](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsentence_transformer\u002Fpretrained_models.html)\n- [Pretrained Cross Encoder (Reranker) Models](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fcross_encoder\u002Fpretrained_models.html)\n- [Pretrained Sparse Encoder (Sparse Embeddings) Models](https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsparse_encoder\u002Fpretrained_models.html)\n\n## Training\n\nThis framework allows you to fine-tune your own sentence embedding methods, so that you get task-specific sentence embeddings. You have various options to choose from in order to get perfect sentence embeddings for your specific task.\n\n- Embedding Models\n  - [Sentence Transformer > Training Overview](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fsentence_transformer\u002Ftraining_overview.html)\n  - [Sentence Transformer > Training Examples](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fsentence_transformer\u002Ftraining\u002Fexamples.html) or [training examples on GitHub](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsentence-transformers\u002Ftree\u002Fmain\u002Fexamples\u002Fsentence_transformer\u002Ftraining).\n- Reranker Models\n  - [Cross Encoder > Training Overview](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fcross_encoder\u002Ftraining_overview.html)\n  - [Cross Encoder > Training Examples](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fcross_encoder\u002Ftraining\u002Fexamples.html) or [training examples on GitHub](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsentence-transformers\u002Ftree\u002Fmain\u002Fexamples\u002Fcross_encoder\u002Ftraining).\n- Sparse Embedding Models\n  - [Sparse Encoder > Training Overview](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fsparse_encoder\u002Ftraining_overview.html)\n  - [Sparse Encoder > Training Examples](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fsparse_encoder\u002Ftraining\u002Fexamples.html) or [training examples on GitHub](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsentence-transformers\u002Ftree\u002Fmain\u002Fexamples\u002Fsparse_encoder\u002Ftraining).\n\nSome highlights across the different types of training are:\n\n- Support of various transformer networks including BERT, RoBERTa, XLM-R, DistilBERT, Electra, BART, ...\n- Multilingual and multi-task learning\n- Evaluation during training to find optimal model\n- [20+ loss functions](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fpackage_reference\u002Fsentence_transformer\u002Flosses.html) for embedding models, [10+ loss functions](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fpackage_reference\u002Fcross_encoder\u002Flosses.html) for reranker models and [10+ loss functions](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fpackage_reference\u002Fsparse_encoder\u002Flosses.html) for sparse embedding models, allowing you to tune models specifically for semantic search, paraphrase mining, semantic similarity comparison, clustering, triplet loss, contrastive loss, etc.\n\n## Companion Blog Posts\n\nThe following Hugging Face blog posts complement this documentation with narrative walkthroughs and full training examples:\n\n**Training guides:**\n\n- [Training and Finetuning Embedding Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Ftrain-sentence-transformers): end-to-end training of bi-encoder embedding models.\n- [Training and Finetuning Reranker Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Ftrain-reranker): training Cross Encoder models for the second stage of retrieve-and-rerank pipelines.\n- [Training and Finetuning Sparse Embedding Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Ftrain-sparse-encoder): training SPLADE and other sparse encoders.\n\n**Multimodal:**\n\n- [Multimodal Embedding & Reranker Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fmultimodal-sentence-transformers): using text, image, audio, and video models through a single API.\n- [Training and Finetuning Multimodal Embedding & Reranker Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Ftrain-multimodal-sentence-transformers): training multimodal models, with a Visual Document Retrieval walkthrough.\n\n**Efficiency techniques:**\n\n- [Introduction to Matryoshka Embedding Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fmatryoshka): variable-size embeddings that can be truncated with minimal quality loss.\n- [Train 400x faster Static Embedding Models](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fstatic-embeddings): CPU-friendly embedding models without attention.\n- [Binary and Scalar Embedding Quantization for Significantly Faster & Cheaper Retrieval](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fembedding-quantization): post-training compression of embedding vectors.\n\n## Application Examples\n\nYou can use this framework for:\n\n- **Computing Sentence Embeddings**\n\n  - [Dense Embeddings](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fcomputing-embeddings\u002FREADME.html)\n  - [Sparse Embeddings](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsparse_encoder\u002Fapplications\u002Fcomputing_embeddings\u002FREADME.html)\n\n- **Semantic Textual Similarity**\n\n  - [Dense STS](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fsentence_transformer\u002Fusage\u002Fsemantic_textual_similarity.html)\n  - [Sparse STS](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsparse_encoder\u002Fapplications\u002Fsemantic_textual_similarity\u002FREADME.html)\n\n- **Semantic Search**\n\n  - [Dense Search](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fsemantic-search\u002FREADME.html)\n  - [Sparse Search](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsparse_encoder\u002Fapplications\u002Fsemantic_search\u002FREADME.html)\n\n- **Retrieve & Re-Rank**\n\n  - [Dense only Retrieval](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fretrieve_rerank\u002FREADME.html)\n  - [Sparse\u002FDense\u002FHybrid Retrieval](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fretrieve_rerank\u002FREADME.html)\n\n- [Clustering](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fclustering\u002FREADME.html)\n\n- [Paraphrase Mining](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fparaphrase-mining\u002FREADME.html)\n\n- [Translated Sentence Mining](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fparallel-sentence-mining\u002FREADME.html)\n\n- [Multilingual Image Search, Clustering & Duplicate Detection](https:\u002F\u002Fwww.sbert.net\u002Fexamples\u002Fsentence_transformer\u002Fapplications\u002Fimage-search\u002FREADME.html)\n\nand many more use-cases.\n\nFor all examples, see [examples\u002Fsentence_transformer\u002Fapplications](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsentence-transformers\u002Ftree\u002Fmain\u002Fexamples\u002Fsentence_transformer\u002Fapplications).\n\n## Development setup\n\nAfter cloning the repo (or a fork) to your machine, in a virtual environment, run:\n\n```\npython -m pip install -e \".[dev]\"\n\npre-commit install\n```\n\nTo test your changes, run:\n\n```\npytest\n```\n\n## Citing & Authors\n\nIf you find this repository helpful, feel free to cite our publication [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F1908.10084):\n\n```bibtex\n@inproceedings{reimers-2019-sentence-bert,\n    title = \"Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\",\n    author = \"Reimers, Nils and Gurevych, Iryna\",\n    booktitle = \"Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing\",\n    month = \"11\",\n    year = \"2019\",\n    publisher = \"Association for Computational Linguistics\",\n    url = \"https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.10084\",\n}\n```\n\nIf you use one of the multilingual models, feel free to cite our publication [Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation](https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F2004.09813):\n\n```bibtex\n@inproceedings{reimers-2020-multilingual-sentence-bert,\n    title = \"Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation\",\n    author = \"Reimers, Nils and Gurevych, Iryna\",\n    booktitle = \"Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing\",\n    month = \"11\",\n    year = \"2020\",\n    publisher = \"Association for Computational Linguistics\",\n    url = \"https:\u002F\u002Farxiv.org\u002Fabs\u002F2004.09813\",\n}\n```\n\nPlease have a look at [Publications](https:\u002F\u002Fwww.sbert.net\u002Fdocs\u002Fpublications.html) for our different publications that are integrated into SentenceTransformers.\n\n### Maintainers\n\nMaintainer: [Tom Aarsen](https:\u002F\u002Fgithub.com\u002Ftomaarsen), 🤗 Hugging Face\n\nDon't hesitate to open an issue if something is broken (and it shouldn't be) or if you have further questions.\n\n---\n\nThis project was originally developed by the [Ubiquitous Knowledge Processing (UKP) Lab](https:\u002F\u002Fwww.ukp.tu-darmstadt.de\u002F) at TU Darmstadt. We're grateful for their foundational work and continued contributions to the field.\n\n> This repository contains experimental software and is published for the sole purpose of giving additional background details on the respective publication.\n\n[#docs-package]: https:\u002F\u002Fwww.sbert.net\u002F\n[#github-license]: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsentence-transformers\u002Fblob\u002Fmain\u002FLICENSE\n[#pypi-package]: https:\u002F\u002Fpypi.org\u002Fproject\u002Fsentence-transformers\u002F\n","sentence-transformers 是一个用于生成文本嵌入的先进框架。它支持计算句子变换器模型的嵌入、使用交叉编码器模型评估相似度得分以及生成稀疏编码器模型的稀疏嵌入，从而为语义搜索、语义文本相似性和同义句挖掘等应用场景提供了强大支持。项目基于Python开发，兼容PyTorch和transformers库，并提供超过15,000个预训练模型供用户直接使用或微调以适应特定需求。此外，sentence-transformers还简化了自定义模型的训练过程，使得研究人员与开发者能够轻松地创建符合自身业务场景的解决方案。",2,"2026-06-11 02:50:21","top_language"]