StructBERT中文文本相似度模型是在structbert-large-chiese预训练模型的基础上,用atec、bqcorpus、chieseSTS、lcqmc、paws-x-zh五个数据集(52.5w条数据,正负比例0.48:0.52)训练出来的相似度匹配模型。由于licese权限问题,目前只上传了BQCorpus、chieseSTS、LCQMC这三个数据集。 其他数据集: 模型基于Structbert-base-chiese,按照BERT文本对分类的方式,在atec、bq_corpus、chieseSTS、lcqmc、paws-x-zh五个数据集(52.5w条数据)上进行微调。 你可以使用StructBERT中文文本相似度模型,对通用领域的文本相似度任务进行推理。
输入形如(文本A,文本B)的文本对数据,模型会给出该文本对的是否相似的标签(不相似, 相似)以及相应的概率。 在安装完成ModelScope-lib之后即可使用 在安装完成ModelScope-lib,请参考 modelscope环境安装 。 模型训练数据有限,不能包含所有行业,因此在特定行业数据上,效果可能存在一定偏差。StructBERT中文文本相似度模型介绍
模型描述
期望模型使用方式以及适用范围
如何使用
环境安装
推理代码范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
sematic_cls = pipelie(Tasks.setece_similarity, 'damo/lp_structbert_setece-similarity_chiese-large')
sematic_cls(iput=('商务职业学院和财经职业学院哪个好?', '商务职业学院商务管理在哪个校区?'))
Fietue/训练代码范例
import os.path as osp
from modelscope.traiers import build_traier
from modelscope.msdatasets import MsDataset
from modelscope.utils.hub import read_cofig
model_id = 'damo/lp_structbert_setece-similarity_chiese-large'
dataset_id = 'BQ_Corpus'
WORK_DIR = 'workspace'
cfg = read_cofig(model_id)
cfg.trai.max_epochs = 2
cfg.trai.work_dir = WORK_DIR
cfg.trai.hooks = cfg.trai.hooks = [{
'type': 'TextLoggerHook',
'iterval': 100
}]
cfg_file = osp.joi(WORK_DIR, 'trai_cofig.jso')
cfg.dump(cfg_file)
trai_dataset = MsDataset.load(dataset_id, amespace='DAMO_NLP', split='trai')
eval_dataset = MsDataset.load(dataset_id, amespace='DAMO_NLP', split='validatio')
kwargs = dict(
model=model_id,
trai_dataset=trai_dataset,
eval_dataset=eval_dataset,
cfg_file=cfg_file)
traier = build_traier(default_args=kwargs)
prit('===============================================================')
prit('pre-traied model loaded, traiig started:')
prit('===============================================================')
traier.trai()
prit('===============================================================')
prit('trai success.')
prit('===============================================================')
for i i rage(cfg.trai.max_epochs):
eval_results = traier.evaluate(f'{WORK_DIR}/epoch_{i+1}.pth')
prit(f'epoch {i} evaluatio result:')
prit(eval_results)
prit('===============================================================')
prit('evaluate success')
prit('===============================================================')
模型局限性以及可能的偏差
训练数据介绍
数据评估及结果
数据集
Avg
ATEC
bq_corpus
ChieseSTS
LCQMC
paws-x-zh
Accuracy
0.8831
0.8662
0.8668
0.9736
0.8959
0.8629
相关论文以及引用信息
@article{wag2019structbert,
title={Structbert: Icorporatig laguage structures ito pre-traiig for deep laguage uderstadig},
author={Wag, Wei ad Bi, Bi ad Ya, Mig ad Wu, Che ad Bao, Zuyi ad Xia, Jiaga ad Peg, Liwei ad Si, Luo},
joural={arXiv preprit arXiv:1908.04577},
year={2019}
}
点击空白处退出提示
评论