开发者社区> XXL|||||> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ModelScope模型库体验之中文StructBERT系列预训练语言模型

简介: StructBERT在BERT的基础上提出改进优化,通过在句子级别和词级别引入两个新的目标函数,打乱句子/词的顺序并使模型对其进行还原的方式,能让机器更好地掌握人类语法,加深对自然语言的理解,使得模型学习到更强的语言结构信息。
+关注继续查看

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>

ModelScope

ModelScope平台汇集了行业领先的预训练模型,以开源的方式提供多类优质模型,开发者可在平台上免费体验与下载使用。


StructBERT介绍

StructBERT在BERT的基础上提出改进优化,通过在句子级别和词级别引入两个新的目标函数,打乱句子/词的顺序并使模型对其进行还原的方式,能让机器更好地掌握人类语法,加深对自然语言的理解,使得模型学习到更强的语言结构信息。

image.png

在公开数据集上比BERT均稳定取得提升

image.png


中文系列StructBERT

ModelScope上开源了各种规模大小的中文StructBERT模型,都汇总在了下面的表格中,我们可以根据需要采用不同大小的模型。

模型ID

模型参数量

模型链接

damo/nlp_structbert_backbone_tiny_std

9M

TINY

damo/nlp_structbert_backbone_lite_std

30M

LITE

damo/nlp_structbert_backbone_base_std

102M

BASE

damo/nlp_structbert_backbone_large_std

326M

LARGE

我们可以代码中指定modei id进行调用,也可以把模型仓库拉取到本地进行使用,比如:

git lfs install
git clone http://www.modelscope.cn/damo/nlp_structbert_backbone_large_std.git


在ModelScope中调优StructBERT

我们可以用自己的数据,在StructBERT基础之上进行训练调优(fintune),定制自己的个性化模型。在ModelScope中,用十行代码就可以实现定制调优。


环境准备

  • 如果您需要在本地运行模型,需要进行相应的环境安装准备,包括:安装python环境(python>=3.7)、安装深度学习框架(pytorch或者tensorflow)、安装ModelScope Library。具体请参考官方文档:环境安装
pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
  • 若您觉得本地安装较为复杂, ModelScope 平台也提供在线的运行环境,您可直接在Notebook中运行。ModelScope还提供免费算力资源,具体额度可以参考官方文档:免费额度说明

image.png


配置训练

  • Modelscope中可以使用配置文件,设定数据预处理、模型训练、模型评估等流程,模型仓库中模型等配置文件名称为 configuration.json?

? image.png

  • 在配置文件中,我们可以设定训练所需的相关字段,比如运行框架(pytorch/tensorflow)、任务名称(分类、相似度等)、前处理流程(preprocessor)以及训练优化器(optimizer);详细的字段说明可以参考Configuration详解
  • 如下是我们使用StructBERT来训练句子相似度模型的一个配置文件示例

image.png

十行代码开启训练

下面afqmc(Ant Financial Question Matching Corpus)数据集为例,演示基于StructBERT进行模型训练

# coding=utf-8                                                                                                                                                  
    
from modelscope.msdatasets import MsDataset    
from modelscope.trainers import build_trainer      

if __name__ == '__main__':      
    train_dataset = MsDataset.load('afqmc_small', split='train')    
    eval_dataset = MsDataset.load('afqmc_small', split='validation')    
    kwargs = dict(
        model = './nlp_structbert_backbone_tiny_std',   # configuration.json所在模型目录   
        train_dataset = train_dataset,    
        eval_dataset = eval_dataset,    
        work_dir = '/tmp')    
    
    trainer = build_trainer(default_args=kwargs)    
    trainer.train()  

运行代码后在日志中我们可以很方便地观察训练进度(比如loss变化、memory占用、训练时长等)

image.png

更多ModelScope的finetune设置,可以参考文档:文本分类finetune最佳实践


ModelScope体验反馈

  • 整体来说,ModelScope上已经开源了许多重要场景的优质模型,可以让开发者在更高的起点上(如StructBERT等预训练模型)结合自身场景进行开发。
  • 另一方面,ModelScope目前还刚刚起步,一些工作还有待建设(比如更多更有意义的真实数据集),期望ModelScope越做越好

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
与字节、小米、移动云等企业一起揭秘 RocketMQ 实践之道
作为面向开源及消息领域的顶级项目,2022 年 7 月 21 日-7 月 22 日,RocketMQ Summit 如约而至,近四十个优质议题与讨论,等待你的参与!
154 0
Spark3.0分布,Structured Streaming UI登场
Spark3.0分布,Structured Streaming UI登场
202 0
IDEA使用C3P0连接Mysql数据库
IDEA使用C3P0连接Mysql数据库
245 0
102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文
机器翻译,是一条漫漫长路;SOTA 模型,都包含着作者们的深刻见解
179 0
MySql数据库列表数据分页查询、全文检索API零代码实现
前面文档主要介绍了元数据配置,包括表单定义和表关系管理,以及表单数据的录入,本文主要介绍数据查询和分页在crudapi中的实现。数据查询主要是指按照输入条件检索出符合要求的数据列表,如果数据量大的情况下,需要考虑分页。
155 0
Spring4.0MVC学习资料,Controller中的方法详解和使用(四)
<p>在以前,mvc的框架,基本上就是struts框架了。但是现在不一样了。springmvc出来了。spring的mvc框架不亚于struts了,springmvc出来了,我们有了更多的选择。</p> <p>Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块
1873 0
+关注
1
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
http://www.vxiaotou.com