| # Losses | |
| `sentence_transformers.sparse_encoder.losses` defines different loss functions that can be used to fine-tune saprse embedding models on training data. The choice of loss function plays a critical role when fine-tuning the model. It determines how well our embedding model will work for the specific downstream task. | |
| Sadly, there is no "one size fits all" loss function. Which loss function is suitable depends on the available training data and on the target task. Consider checking out the [Loss Overview](../../sparse_encoder/loss_overview.md) to help narrow down your choice of loss function(s). | |
| ```{eval-rst} | |
| .. warning:: | |
| To train a :class:`~sentence_transformers.sparse_encoder.SparseEncoder`, you need either :class:`~sentence_transformers.sparse_encoder.losses.SpladeLoss` or :class:`~sentence_transformers.sparse_encoder.losses.CSRLoss`, depending on the architecture. These are wrapper losses that add sparsity regularization on top of a main loss function, which must be provided as a parameter. The only loss that can be used independently is :class:`~sentence_transformers.sparse_encoder.losses.SparseMSELoss`, as it performs embedding-level distillation, ensuring sparsity by directly copying the teacher's sparse embedding. | |
| ``` | |
| ## SpladeLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SpladeLoss | |
| ``` | |
| ## FlopsLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.FlopsLoss | |
| ``` | |
| ## CSRLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.CSRLoss | |
| ``` | |
| ## CSRReconstructionLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.CSRReconstructionLoss | |
| ``` | |
| ## SparseMultipleNegativesRankingLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseMultipleNegativesRankingLoss | |
| ``` | |
| ## SparseMarginMSELoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseMarginMSELoss | |
| ``` | |
| ## SparseDistillKLDivLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseDistillKLDivLoss | |
| ``` | |
| ## SparseTripletLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseTripletLoss | |
| ``` | |
| ## SparseCosineSimilarityLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseCosineSimilarityLoss | |
| ``` | |
| ## SparseCoSENTLoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseCoSENTLoss | |
| ``` | |
| ## SparseAnglELoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseAnglELoss | |
| ``` | |
| ## SparseMSELoss | |
| ```{eval-rst} | |
| .. autoclass:: sentence_transformers.sparse_encoder.losses.SparseMSELoss | |
| ``` |