【BERT系列】SBERT的分析

读SBERT论文的一些报告
1

其次,在计算上,有与BERT是做NSP任务上是两个句子投入到BERT里面算,那么总共需要计算次数就是n*(n-1)/2次,1w的句子需要49995000次运算,作者用V100GPU上花了65h。原文是这样描述:
2
而作者在文章中夹带用SBERT计算1w个句子向量只需要5s,然后就散cosine相似度约0.01秒,原文描述如下:

在这里插入图片描述

从bert和Sbert结构上看
原生bert的计算句子向量结构图:
4

而SBERT分开两个网络,彼此独立计算句子向量,也就是它的复杂度是O((lenA)2 +(lenB)2),计算完后句子向量,可以直接计算cosine相似度。
而这种结构就是使用孪生的网络,下图两个bert网络共享权重,即这两个编码器都是一样的。
关于孪生网络和sentence bert这个介绍,老师您可以看

### SBERT-Chinese与BERT的主要区别 SBERT-Chinese模型基于预训练的BERT架构进行了改进,特别针对中文自然语言处理(NLP)任务优化。主要差异体现在以下几个方面: - **语义编码效率**:相比于原始的BERT模型,SBERT-Chinese通过微调特定于句子级别的下游任务(如相似度计算),能够更高效地生成高质量的固定长度向量表示[^1]。 - **性能提升**:在多个基准测试中显示,在涉及句子间关系的任务上,比如问答匹配、文本蕴含判断等方面,经过特殊设计用于衡量文档相似性的SBERT变体往往优于标准版BERT的表现[^2]。 - **资源消耗减少**:由于采用了更加紧凑有效的结构以及参数调整策略,使得SBERT-Chinese可以在保持较高精度的同时降低硬件需求和推理时间成本[^3]。 ### 应用场景对比 对于具体的NLP应用而言,选择哪种模型取决于具体的需求: - 当面对较为复杂的理解类问题时,例如情感分析或主题分类等单句内部特征提取工作,则可以优先考虑使用原生版本的BERT来获得更为细致深入的语言表征能力; - 若项目侧重于跨句子间的关联性评估,像信息检索中的查询扩展或是社区问答平台上的帖子推荐等功能实现,则建议采用专门面向此类用途而定制化的SBERT-Chinese解决方案,因为其专为提高两段文字之间的比较效果做了针对性增强[^4]。 ```python from sentence_transformers import SentenceTransformer, util model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') # 可替换为'sentence-transformers/paraphrase-xlm-r-multilingual-v1'或其他适合中文的预训练模型名称 sentences = ['这是一条关于科技发展的新闻', '科学技术正在快速发展'] embeddings = model.encode(sentences) cosine_scores = util.pytorch_cos_sim(embeddings[0], embeddings[1]) print(f"Cosine-Similarity: {cosine_scores.item():.4f}") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值