sentence-transformers Embedding Models 损失函数
2025-11-07
深度学习
00

目录

1. 根据数据格式选择
2. 根据任务目标选择
3. 性能优化建议

常见任务与损失函数对照表

任务类型典型场景推荐损失函数数据格式
语义检索问答系统、文档检索MultipleNegativesRankingLoss(query, passage)
语义相似度STS、相关性评分CoSENTLoss(sent1, sent2) + score
文本分类NLI、关系分类SoftmaxLoss(sent1, sent2) + class
重复检测去重、相似度二分类ContrastiveLoss(sent1, sent2) + 0/1
三元组学习有明确负例的检索TripletLoss(anchor, pos, neg)
无监督学习领域适应、预训练DenoisingAutoEncoderLoss(damaged, original)
知识蒸馏模型压缩MSELoss / MarginMSELoss教师模型嵌入

1. 根据数据格式选择

python
展开代码
# 检查你的数据格式 print(dataset.column_names) # 如果只有两列文本,无标签 → MultipleNegativesRankingLoss # 如果有两列文本 + score列 → CoSENTLoss # 如果有两列文本 + label列(类别)→ SoftmaxLoss

2. 根据任务目标选择

  • 目标是检索:优先 MultipleNegativesRankingLoss
  • 目标是相似度评分:优先 CoSENTLoss
  • 目标是分类:使用 SoftmaxLoss

3. 性能优化建议

  • 检索任务:使用 CachedMultipleNegativesRankingLoss 增大批次
  • 相似度任务:优先 CoSENTLoss 而非 CosineSimilarityLoss
  • 有硬负例:使用 OnlineContrastiveLoss 而非 ContrastiveLoss
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!