语言:
推理: false
许可证: apache-2.0
二郎神-SimCSE-110M-中文版
简介
基于SimCSE无监督版本,采用收集整理的中文NLI数据进行有监督对比学习训练。在中文句子对匹配任务中表现优异。
二郎神-SimCSE-110M-中文版以无监督SimCSE为基础,通过精选中文自然语言推理数据实施有监督训练。该模型在中文句对任务中展现出卓越性能。
模型分类
需求 |
任务类型 |
模型系列 |
架构 |
参数量 |
特性 |
通用 |
自然语言理解 NLU |
二郎神系列 |
Bert |
1.1亿 |
中文优化 |
模型详情
为构建通用句向量表征模型,我们基于BERT-base架构,结合海量无监督与有监督数据开展对比学习训练。最终获得的模型无需微调即可通过[CLS]标记输出进行相似度判定。区别于传统BERT需针对任务微调后再进行相似度计算的方式,本模型预训练完成后即具备直接提取句向量的能力。部分任务测评结果如下:
模型 |
LCQMC |
BQ语料 |
PAWSX |
ATEC |
STS-B |
BERT-base |
62 |
38.62 |
17.38 |
28.98 |
68.27 |
BERT-large |
63.78 |
37.51 |
18.63 |
30.24 |
68.87 |
RoBERTa |
67.3 |
39.89 |
16.79 |
30.57 |
69.36 |
RoBERTa-large |
67.25 |
38.39 |
19.09 |
30.85 |
69.36 |
RoFormer |
63.58 |
39.9 |
17.52 |
29.37 |
67.32 |
SimBERT |
73.43 |
40.98 |
15.87 |
31.24 |
72 |
本模型 |
74.94 |
56.97 |
21.84 |
34.12 |
70.5 |
注:本模型直接使用[CLS]标记输出,未进行白化处理;对比模型采用末层平均+白化处理
使用指南
加载模型
from transformers import AutoTokenizer, AutoModelForMaskedLM
model = AutoModelForMaskedLM.from_pretrained('IDEA-CCNL/Erlangshen-SimCSE-110M-Chinese')
tokenizer = AutoTokenizer.from_pretrained('IDEA-CCNL/Erlangshen-SimCSE-110M-Chinese')
使用示例
import torch
from sklearn.metrics.pairwise import cosine_similarity
text1 = '今天天气真不错,我们去散步吧!'
text2 = '今天天气真糟糕,还是在家写代码吧!'
inputs_1 = tokenizer(text1, return_tensors="pt")
inputs_2 = tokenizer(text2, return_tensors="pt")
outputs_1 = model(**inputs_1, output_hidden_states=True)
embedding_1 = outputs_1.hidden_states[-1][:,0,:].squeeze()
outputs_2 = model(**inputs_2, output_hidden_states=True)
embedding_2 = outputs_2.hidden_states[-1][:,0,:].squeeze()
with torch.no_grad():
similarity = cosine_similarity(embedding_1.reshape(1,-1), embedding_2.reshape(1,-1))[0][0]
print(similarity)
引用文献
若使用本模型,请引用我们的论文:
@article{fengshenbang,
author = {张嘉旭等},
title = {封神榜1.0:中文认知智能基础体系},
journal = {CoRR},
volume = {abs/2209.02970},
year = {2022}
}
亦可引用项目主页:
@misc{Fengshenbang-LM,
title={封神榜语言模型},
author={IDEA-CCNL},
year={2021},
howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
}