PLUG知识库问题生成模型-中文-27B
PLUG知识库问题生成模型-中文-27B
  • 模型资讯
  • 模型资料

大规模中文理解和生成联合模型PLUG

PLUG (Pre-training for Language Understanding and Generation) 是一个270亿参数的大规模中文理解和生成联合预训练模型。

模型描述

PLUG是有海量高质量中文文本预训练得到的理解和生成联合模型。PLUG的训练由两阶段组成。首先我们训练了一个24层的基于StructBERT的encoder,然后我们基于此训练了一个24+6层的PALM encoder-decoder。这使得模型既可以通过finetune来处理文本分类、序列标注等自然语言理解(NLU)任务,也可以用来处理自然语言生成(NLG)的任务。

PLUG architecture

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

本模型可直接用于文本生成,也可以通过finetune用于各类文本理解的任务。用户可以自行尝试各种输入文档。具体调用方式请参考代码示例。

如何使用

在安装完成ModelScope-lib之后即可使用PLUG的能力。

代码范例

此范例为单机8卡(GPU)示例,运行时每张GPU约占用显存12G。

  1. 通过model_id获取默认model_dir
from modelscope.hub.snapshot_download import snapshot_download
model_id = 'damo/nlp_plug_knowledge-based-question-generation_27B'
model_dir = snapshot_download(model_id)
print(model_dir)
  1. 将模型二进制文件下载至model_dir/model,下载地址获取:https://github.com/alibaba/AliceMind/tree/main/PLUG#pre-trained-model-download

  2. 模型调用

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

input = '《鲁迅全集》 ||| 出版时间 ||| 1981年'
model_id = 'damo/nlp_plug_knowledge-based-question-generation_27B'
pipe = pipeline(Tasks.text_generation, model=model_id)

# out_length为期望的生成长度,最大为512
result = pipe(input, out_length=256)
print(result)

# 预期输出:output: {'text': '请问《鲁迅全集》是什么时候出版的?大家知道《鲁迅全集》是什么时候出版的吗?'}

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

模型训练数据有限,效果可能存在一定偏差。

训练数据介绍

数据来源于https://huggingface.co/datasets/wikipediahttps://commoncrawl.org/

模型训练流程

在中文wiki/ Common crawl等无监督数据上,通过"模型描述"章节介绍的训练任务训练了约300B字得到。

预处理

暂无

训练

暂无

数据评估及结果

Finetune

clue

  • 在问题生成任务上的finetune结果
Model Metric KBQG DuReaderQG DuReader-Robust
plug.zh BLEU-4 66.30 49.20 42.83

Zero-shot示例

  • 小说生成

novel generation

  • 技术文档撰写

Scientific Literature generation

  • 常识问答

common sense q&a

  • Zero-shot分类

zero-shot classification

开源信息

PLUG同时开源到了AliceMind,如果我们的工作对您有帮助,欢迎给我们Star。