ModelScope保姆式教程带你玩转语言生成模型

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: PALM预训练语言生成模型是针对实际场景中常见的文本生成需求所设计的一个模型。模型利用大量无监督数据,通过结合自编码和自回归任务进行预训练,更贴合下游生成任务所同时需要的理解和生成能力。

一、线上体验

首先访问平台网址https://modelscope.cn/#/models 选择可在线体验,
根据任务筛选或者关键词搜索可查找您感兴趣的模型。
图片.png

图片.png

图片.png

点击模型,进入模型详情页,您可以查看该模型具体的模型介绍。模型提供者将在此处介绍模型具体的应用场景、功能描述、技术方法、模型训练与使用还有效果评估,供您参考。 右侧有“在线体验”功能,您可以通过切换默认示例来查看模型效果,或输入适合该模型的测试信息进行模型的效果测试。

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

图片.png

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

本模型主要用于给输入文档生成摘要内容。用户可以自行尝试各种输入文档。具体调用方式请参考代码示例。
如何使用

在安装完成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在摘要数据集上的效果:
图片.png

@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"}

图片.png

代码范例

你可以尝试使用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中提供官方镜像无需自主进行环境安装,更加方便快捷,推荐大家使用!

图片.png

成功登录后,您可直接在模型详情页中,点击“在Notebook中开发”,并选择需要运行的实例环境(CPU环境或GPU环境)

图片.png

图片.png

系统将预装ModelScope官方镜像,点击“启动”按钮即可在Notebook中使用。此时实例启动需要一些时间,请耐心等待,当环境启动后点击“查看Notebook”,则跳转notebook页面,即可在新环境中使用。

图片.png

系统将新开一个页面,点击Python3,进入为您搭建好的Python3开发环境。

图片.png

复制模型详情页面里快速使用的代码到该python环节中,点击运行按钮,即可跑出推理结果。(一些模型的使用方法,可参看具体的模型卡片的README信息中的代码要求)

图片.png

图片.png

三、跑通模型推理

若您准备好本地环境或者已经打开一个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()

相关文章
|
4月前
|
自然语言处理
在ModelScope中,你可以通过设置模型的参数来控制输出的阈值
在ModelScope中,你可以通过设置模型的参数来控制输出的阈值
108 1
|
4月前
|
API 语音技术
ModelScope-FunASR**有支持热词又支持时间戳的模型**。
【2月更文挑战第30天】ModelScope-FunASR**有支持热词又支持时间戳的模型**。
170 2
|
4月前
|
人工智能 API 决策智能
Modelscope结合α-UMi:基于Modelscope的多模型协作Agent
基于单个开源小模型的工具调用Agent,由于模型容量和预训练能力获取的限制,无法在推理和规划、工具调用、回复生成等任务上同时获得比肩大模型等性能。
|
4月前
|
文字识别 并行计算 语音技术
ModelScope问题之下载模型文件报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
674 3
|
4月前
|
数据采集 自然语言处理 搜索推荐
ModelScope问题之模型encoder配置报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
185 0
|
4月前
|
人工智能 达摩院 自然语言处理
超好用的开源模型平台,ModelScope阿里达摩院
超好用的开源模型平台,ModelScope阿里达摩院
326 1
|
1月前
|
人工智能 开发框架 物联网
赢万元奖金 | 第七届CCF开源创新大赛ModelScope开源模型应用挑战赛开启报名!
第七届CCF开源创新大赛(后简称“大赛”) 由中国计算机学会(CCF)主办,长沙理工大学、CCF开源发展委员会联合承办。
|
4月前
|
API
使用ModelScope平台进行模型验证时
【2月更文挑战第9天】使用ModelScope平台进行模型验证时
121 4
|
4月前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
391 3
|
3月前
|
人工智能 开发工具 Swift
ModelScope联手OpenDataLab:直接调用7000+开源数据集,赋能AI模型加速研发
魔搭社区和OpenDatalab浦数合作,共同开启一场模型与数据的深度融合,旨在为中国开发者打造更加高效、开放的AI体验。