weixin_72661020/Erlangshen-RoBERTa-110M-Similarity
模型介绍文件和版本Pull Requests讨论分析

Erlangshen-RoBERTa-110M-Similarity

1. 简介

Erlangshen-RoBERTa-110M-Similarity 是由 Fengshenbang 团队开发的基于 RoBERTa 架构的句子相似度计算模型。该模型基于 BertForSequenceClassification 架构,参数量 110M,支持中文和英文的句子对相似度判断。

  • 模型架构:BertForSequenceClassification
  • 参数量:110M
  • 支持语言:中文、英文
  • 推理框架:PyTorch + torch_npu
  • 任务类型:句子相似度(Sentence Similarity)
  • 标签映射:1 -> similar, 0 -> not similar

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/Fengshenbang/Erlangshen-RoBERTa-110M-Similarity
  • 模型配置文件:config.json

2. 验证环境

组件版本
昇腾 NPUAscend910
CANN25.5.2
PyTorch2.9.0
torch_npu2.9.0.post1
transformers4.57.6
Python3.11.14
  • NPU:Ascend910(单卡)
  • 模型路径:/opt/atomgit/models/Erlangshen-RoBERTa-110M-Similarity

3. 推理示例

由于该模型是 BERT 序列分类模型(非文本生成模型),直接使用 PyTorch 进行推理:

import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_path = "/path/to/model"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path)
model.eval()

# 使用 NPU
device = torch.device("npu") if torch.npu.is_available() else torch.device("cpu")
model = model.to(device)

# 句子对相似度判断
sent1 = "我喜欢看电影"
sent2 = "我爱看电影"
inputs = tokenizer(sent1, sent2, return_tensors="pt", padding=True, truncation=True, max_length=128)
inputs = {k: v.to(device) for k, v in inputs.items()}

with torch.no_grad():
    outputs = model(**inputs)
    logits = outputs.logits
    probs = F.softmax(logits, dim=-1)

pred = torch.argmax(logits, dim=-1).item()
label_map = {1: "similar", 0: "not similar"}
print(f"Prediction: {label_map[pred]} (confidence: {probs[0][pred].item():.4f})")

4. 精度验证

使用 6 组中英文句子对进行相似度测试:

python3 accuracy_test.py

验证结果

测试用例句子1句子2预期预测置信度结果
1我喜欢看电影我爱看电影similarsimilar99.77%PASS
2今天天气真好明天可能会下雨not similarnot similar99.98%PASS
3苹果是一种水果苹果是一种电子产品品牌not similarnot similar83.68%PASS
4我想去北京旅游我打算去北京玩similarsimilar99.02%PASS
5这本书很有趣这本书很无聊not similarnot similar99.97%PASS
6人工智能是未来趋势AI是未来发展方向similarsimilar99.25%PASS

总体精度:100% (6/6)

5. 性能参考

测试条件:20 轮推理,输入长度不超过 128 tokens

指标数值
平均推理时间6.61 ms
最小推理时间6.29 ms
最大推理时间7.36 ms
吞吐量142.86 queries/sec
总测试时间0.14 sec

6. 注意事项

  • 该模型为 BERT 序列分类模型,不支持 vLLM serve,需直接使用 PyTorch 推理
  • 模型输入为成对的句子,输出为相似度分类结果(similar / not similar)
  • 使用 ModelScope SDK 下载模型:modelscope.snapshot_download('Fengshenbang/Erlangshen-RoBERTa-110M-Similarity')
  • 当前验证使用单卡 Ascend910 NPU,无需多卡配置
下载使用量0