---
title: nlp_masts_backbone_clue_chinese-large
canonical_url: "https://www.modelscope.cn/models/damo/nlp_masts_backbone_clue_chinese-large"
md_url: "https://www.modelscope.cn/models/damo/nlp_masts_backbone_clue_chinese-large.md"
repository: damo/nlp_masts_backbone_clue_chinese-large
chinese_name: "MaSTS预训练模型-中文-搜索-CLUE语义匹配-large"
last_updated: 2023-03-14
license: "Apache License 2.0"
pipeline_tag: fill-mask
tasks:
  - fill-mask
model_type:
  - bert
architectures:
  - BertForMaskedLM
library_name:
  - pytorch
frameworks:
  - pytorch
language:
  - cn
domain:
  - nlp
downloads: 991
stars: 2
tags:
  - Alibaba
  - sentence-similarity
  - "文本相似度"
  - "文本对匹配"
---

# nlp_masts_backbone_clue_chinese-large

> nlp_masts_backbone_clue_chinese-large - damo 在 ModelScope 开源的模型。基于MaSTS预训练模型在QBQTC数据集上训练得到MaSTS中文文本相似度-CLUE语义匹配模型。集成在QBQTC数据集上训练得到的相似度匹配模型，在CLUE语义匹配榜上获得了第一名的成绩。

damo/nlp_masts_backbone_clue_chinese-large 是 ModelScope 魔搭社区上的fill-mask模型，采用 Apache License 2.0 许可。

- **Repository**: damo/nlp_masts_backbone_clue_chinese-large
- **License**: Apache License 2.0
- **Tasks**: fill-mask
- **Tags**: Alibaba, sentence-similarity, 文本相似度, 文本对匹配
- **Downloads**: 991
- **Stars**: 2
- **Last updated**: 2023-03-14

Source: https://www.modelscope.cn/models/damo/nlp_masts_backbone_clue_chinese-large

---

# MaSTS中文预训练-CLUE语义匹配模型介绍

基于此模型在[QBQTC数据集](https://modelscope.cn/datasets/damo/QBQTC/summary)上训练得到[MaSTS中文文本相似度-CLUE语义匹配模型](https://modelscope.cn/models/damo/nlp_masts_sentence-similarity_clue_chinese-large/summary)。集成在[QBQTC数据集](https://modelscope.cn/datasets/damo/QBQTC/summary)上训练得到的相似度匹配模型，在[CLUE语义匹配榜](https://www.cluebenchmarks.com/sim.html)上获得了第一名的成绩。

使用教程请参考 https://developer.aliyun.com/article/1128425 。

## 模型描述

模型通过对语义匹配任务改进的掩码策略进行无监督预训练。按照BERT文本对分类的方式，在QBQTC数据集上进行微调。

### 期望模型使用方式以及适用范围

模型主要用于在QBQTC数据集上进行微调。

### 模型局限性以及可能的偏差

模型训练数据有限，在其他数据上效果可能存在一定偏差。

## 如何使用

### 环境安装

请参考ModelScope[环境安装](https://modelscope.cn/docs/%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85)。

### Finetune/训练代码范例

```python
import os.path as osp
from modelscope.trainers import build_trainer
from modelscope.msdatasets import MsDataset
from modelscope.utils.hub import read_config
from modelscope.utils.constant import Tasks


model_id = 'damo/nlp_masts_backbone_clue_chinese-large'
dataset_id = 'QBQTC'

WORK_DIR = 'workspace'

# 通过这个方法修改cfg
def cfg_modify_fn(cfg):
    # 将backbone模型加载到句子相似度的模型类中
    cfg.task = Tasks.sentence_similarity
    # 使用句子相似度的预处理器
    cfg['preprocessor'] = {
        'train': {
             'type': 'sen-sim-tokenizer',
            # 第一个字段的key
            'first_sequence': 'query',
            # 第二个字段的key
            'second_sequence': 'title',
            # label的key
            'label': 'label',
            'mode': 'train',
        },
        'val': {
             'type': 'sen-sim-tokenizer',
            # 第一个字段的key
            'first_sequence': 'query',
            # 第二个字段的key
            'second_sequence': 'title',
            # label的key
            'label': 'label',
            'mode': 'eval',
        },
    }

    # lr_scheduler的配置
    return cfg

train_dataset = MsDataset.load(dataset_id, namespace='damo', subset_name='default', split='train', keep_default_na=False)
eval_dataset = MsDataset.load(dataset_id, namespace='damo', subset_name='public', split='test', keep_default_na=False)

kwargs = dict(
    model=model_id,
    model_revision='v1.0.2',
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    cfg_modify_fn=cfg_modify_fn,
)

trainer = build_trainer(default_args=kwargs)

print('===============================================================')
print('pre-trained model loaded, training started:')
print('===============================================================')

trainer.train()

print('===============================================================')
print('train success.')
print('===============================================================')

for i in range(cfg.train.max_epochs):
    eval_results = trainer.evaluate(f'{WORK_DIR}/epoch_{i+1}.pth')
    print(f'epoch {i} evaluation result:')
    print(eval_results)

print('===============================================================')
print('evaluate success')
print('===============================================================')
```

## 数据评估及结果

![榜单](./leaderboard.png)
