原作者:CTO技术共享
原文链接:https://developer.aliyun.com/article/996608?spm=a2c6h.14164896.0.0.925270bcXfgDdD
一、线上体验
首先访问平台网址https://modelscope.cn/#/models 选择可在线体验,
根据任务筛选或者关键词搜索可查找您感兴趣的模型。
一、线上体验
首先访问平台网址https://modelscope.cn/#/models 选择可在线体验,
根据任务筛选或者关键词搜索可查找您感兴趣的模型。
点击模型,进入模型详情页,您可以查看该模型具体的模型介绍。模型提供者将在此处介绍模型具体的应用场景、功能描述、技术方法、模型训练与使用还有效果评估,供您参考。 右侧有“在线体验”功能,您可以通过切换默认示例来查看模型效果,或输入适合该模型的测试信息进行模型的效果测试。
ALM文本生成模型介绍
PALM预训练语言生成模型是针对实际场景中常见的文本生成需求所设计的一个模型。模型利用大量无监督数据,通过结合自编码和自回归任务进行预训练,更贴合下游生成任务所同时需要的理解和生成能力。
模型描述
针对实际场景中常见的文本生成需求,自主研发了PALM预训练语言生成模型。该模型通过在大规模文本上预训练得到,可作为下游自然语言生成任务的模型参数输入,以帮助提升下游任务的生成效果。PALM具有以下特点:
理解能力更强:为conditional generation特别设计了预训练任务,增强模型对上下文的理解能力。 所需标注更少:模型在海量文本语料上预训练,大大减少下游生成任务所需的标签数据量。 性能优良:中英文模型均使用大规模数据训练得到,且采用自研适应NLG任务的预训练目标。 适应各类生成任务:PALM可用于各类不同的生成任务,如摘要、问题生成、paraphrasing等等。 方便易用:下游使用方便,基于生成的传统encoder-decoder框架。
本模型是PALM通用预训练生成模型,在英文CNN/Dail Mail上进行finetune得到的英文文本摘要生成模型。PALM模型介绍,详见:PALM: Pre-training an Autoencoding&Autoregressive Language Model for Context-conditioned Generation
期望模型使用方式以及适用范围
本模型主要用于给输入文档生成摘要内容。用户可以自行尝试各种输入文档。具体调用方式请参考代码示例。
如何使用
在安装完成MaaS-lib之后即可使用text-generation的能力
代码范例
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
text_generation_en = pipeline(Tasks.text_generation, model='damo/nlp_palm2.0_text-generation_english-base')
result_en = text_generation_en("The Director of Public Prosecutions who let off Lord Janner over alleged child sex abuse started"
"her career at a legal chambers when the disgraced Labour peer was a top QC there . Alison Saunders ,"
"54 , sparked outrage last week when she decided the 86-year-old should not face astring of charges"
"of paedophilia against nine children because he has dementia . Today , newly-released documents"
"revealed damning evidence that abuse was covered up by police andsocial workers for more than 20 years ."
"And now it has emerged Mrs Saunders ' law career got off to a flying start when she secured her"
"pupillage -- a barrister 's training contract at 1 Garden Court Chambers in London in 1983 .")
print(result_en['text'])
模型局限性以及可能的偏差
模型在数据集上训练,有可能产生一些偏差,请用户自行评测后决定如何使用。
训练数据介绍
本模型英文训练数据集是CNN/Daily Mail,数据集28w左右, 具体数据可以下载
模型训练流程
暂时不支持在ModelScope内部进行训练
预处理
训练
数据评估及结果
PALM在摘要数据集上的效果:
@inproceedings{bi-etal-2020-palm, title = "{PALM}: Pre-training an Autoencoding & Autoregressive Language Model for Context-conditioned Generation", author = "Bi, Bin and Li, Chenliang and Wu, Chen and Yan, Ming and Wang, Wei and Huang, Songfang and Huang, Fei and Si, Luo", booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP)", month = nov, year = "2020", address = "Online", publisher = "Association for Computational Linguistics", url = "https://aclanthology.org/2020.emnlp-main.700", doi = "10.18653/v1/2020.emnlp-main.700", pages = "8681--8691"}
代码范例 你可以尝试使用modelscope-library加载模型,需先安装modelscope-library再运行如下代码 from modelscope.pipelines import pipeline p = pipeline('text-generation', model='damo/nlp_palm2.0_text-generation_english-base') 更多使用方法,请从“模型介绍”中获取使用说明和代码范例 拉取模型仓库到本地 git lfs install git clone http://www.modelscope.cn/damo/nlp_palm2.0_text-generation_english-base.git
二、环境准备
1、本地开发环境安装
如果您需要在本地运行模型,需要进行相应的环境安装准备,包括:
安装python环境。支持python3,不支持python2,建议3.7版本及以上。使用Anaconda进行安装。 安装深度学习框架。ModelScope Library目前支持Tensorflow,Pytorch两大深度学习框架进行模型训练、推理。您可根据模型所需的框架选择适合的框架进行安装。 安装ModelScope Library。我们提供两种安装方式,您可选择适合的方式进行安装。 pip安装。ModelScope提供了根据不同领域的安装包,您可根据对应的模型选择所需的安装包。 使用源码安装。
更完整的安装信息参考:环境安装指南。
2、在Notebook中开发
若您觉得本地安装较为复杂, ModelScope 平台也提供在线的运行环境,您可直接在Notebook中运行,Notebook中提供官方镜像无需自主进行环境安装,更加方便快捷,推荐大家使用!
成功登录后,您可直接在模型详情页中,点击“在Notebook中开发”,并选择需要运行的实例环境(CPU环境或GPU环境)
系统将预装ModelScope官方镜像,点击“启动”按钮即可在Notebook中使用。此时实例启动需要一些时间,请耐心等待,当环境启动后点击“查看Notebook”,则跳转notebook页面,即可在新环境中使用。
系统将新开一个页面,点击Python3,进入为您搭建好的Python3开发环境。
复制模型详情页面里快速使用的代码到该python环节中,点击运行按钮,即可跑出推理结果。(一些模型的使用方法,可参看具体的模型卡片的README信息中的代码要求)
三、跑通模型推理
若您准备好本地环境或者已经打开一个Notebook的预装环境实例,则根据下述代码可对该模型进行推理。 使用modelscope pipeline接口只需要两步,同样以上述中文分词模型(damo/nlp_structbert_word-segmentation_chinese-base)为例简单说明:
首先根据task示例化一个pipeline对象
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation',model='damo/nlp_structbert_word-segmentation_chinese-base')
输入数据,拿到结果
input = '今天天气不错,适合出去游玩'
print(word_segmentation(input))
{'output': '今天 天气 不错 , 适合 出去 游玩'}
载入数据集
ModelScope可以提供了标准的MsDataset接口供用户进行基于ModelScope生态的数据源加载。下面以加载NLP领域的afqmc(Ant Financial Question Matching Corpus)数据集为例进行演示
from modelscope.msdatasets import MsDataset
载入训练数据
train_dataset = MsDataset.load('afqmc_small', split='train')
载入评估数据
eval_dataset = MsDataset.load('afqmc_small', split='validation')
数据集的使用,具体参看数据集的介绍。
2、数据预处理
在ModelScope中,数据预处理与模型强相关,因此,在指定模型以后,ModelScope框架会自动从对应的modelcard中读取配置文件中的preprocessor关键字,自动完成预处理的实例化。
指定文本分类模型
model_id = 'damo/nlp_structbert_sentence-similarity_chinese-base'
配置文件的相关字段:
...
"preprocessor":{
"type": "sen-cls-tokenizer",
},
...
当然,对于进阶的使用者,配置文件也支持用户自定义并从任意本地路径读取,具体参考文档:Configuration详解
3、模型的训练
首先,配置训练所需参数:
from modelscope.trainers import build_trainer
指定工作目录
tmp_dir = "/tmp"
配置参数
kwargs = dict(
model=model_id, train_dataset=train_dataset, eval_dataset=eval_dataset, work_dir=tmp_dir)
其次,根据参数实例化trainer对象
trainer = build_trainer(default_args=kwargs)
最后,调用train接口进行训练
trainer.train()