简介

PromptCLUE:大规模多任务Prompt预训练中文开源模型。

中文上的三大统一:统一模型框架,统一任务形式,统一应用方式。支持几十个不同类型的任务,具有较好的零样本学习能力和少样本学习能力。

针对理解类任务,如分类、情感分析、抽取等,可以自定义标签体系;针对生成任务,可以进行采样自由生成。

千亿中文token上大规模预训练,亿级中文任务数据上完成训练,训练任务超过150+。

比base版平均任务提升7个点+;具有更好的理解、生成和抽取能力,并且支持文本改写、纠错、知识图谱问答。

统一模型框架:采用Text-to-Text的生成式预训练模型进行统一建模。

统一任务形式:Prompt统一不同的NLP任务间的差异,转化为统一的text-to-text数据形式。

统一应用方式:对目标任务形成拿来即用的模型,下游应用时都可转化为统一的prompt自适应方式,进行zero-shot/few-shot测试。

项目地址:
https://github.com/clue-ai/PromptCLUE

DEMO地址:
www.CLUEbenchmarks.com/clueai.html

在线DEMO:

效果对比--16类中文任务

任务类型 Base版 Large版
分数 63.47 70.55(+7.08)
参数 220M 770M
理解任务(acc / 10类)
分类 classify 89.56 92.89
情感分析 80.55 85.64
相似度计算 70.94 78.47
自然语言推理 78.00 86.67
指代消解 30.00 64.00
阅读理解 mrc 71.69 84.78
关键词提取 41.44 47.78
信息抽取 ner 63.02 70.09
知识图谱问答 - 53.11
中心词提取 66.50 71.50
生成任务(rouge/ 6类)
翻译-英中/中英 55.92 59.67
摘要 31.71 34.48
问答 qa 21.18 27.05
文章/问题生成 35.86 39.87
改写 - 57.68
纠错 - 93.35

在线使用

在线demo | huggingface下载地址 | colab使用示例 | 自定义数据集进行训练 | prompt中文数据集

相关技术与训练过程

  1. 三大统一:统一模型框架(text-to-text),统一任务形式(prompt),统一应用方式(zero-shot/few-shot)。(T0)

  2. 大规模预训练:在t5-large版基础上,使用数百G中文语料,训练了100万步,累计训练了1.5万亿个中文字词级别token

  3. 大规模任务数据:使用了16种任务类型,数百种任务,累积亿级别任务数据。

  4. 混合预训练:一方面将下游任务作为预训练语料,另一方面将下游任务和预训练语料一起训练,减少任务灾难遗忘以及缩短预训练和下游任务的距离,更好的适应下游任务(ExT5)

  5. 混合采样:针对众多数据量差异极大的任务,采用在每个训练batch内对所有的任务进行按照比例采样,根据任务的数据量进行平滑采样,并且同时限制任务数据量采样池的上限。平滑采样可以减少任务训练有偏危害,在每一batch内训练可以减少异质任务之间训练负迁移的情况(T5)

  6. 分阶段训练:一方面指在预训练分阶段,涉及训练序列长度的分阶段(128和512),加快预训练速度(Bert);另一方面,在下游训练分阶段, 涉及学习率和序列长度的变化以及递减式对下游任务的数据量限制,更好的适应下游的不同任务

  7. 增加语言模型的训练:参考t5.1.1, 除了使用Span Corrpution构建的方式进行无监督训练,同时在使用prefix LM的方式训练,增强生成任务的能力(LM adapted)

  8. 增加对模型的encoder以及decoder的训练:根据下游任务数据分别构建Data_text,Data_target预训练数据语料,是加入到预训练中,分别增强模型的encoder理解能力和 decoder的生成能力(见UIE)

  9. 重新构建模型中文字典:使用sentencepiece上在千亿token上学习并构建模型字典,更加符合中文语言习惯

Large版在线申请

在线申请

License(许可证)

1)PromptCLUE-base可直接下载和使用;2)PromptCLUE-large版的非商用License

使用方法

安装需要的项目和包

git clone https://github.com/huggingface/transformers.git
pip install ./transformers
pip install sentencepiece

加载模型

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("ClueAI/PromptCLUE-base")
model = AutoModelForSeq2SeqLM.from_pretrained("ClueAI/PromptCLUE-base")

使用模型进行预测

import torch
from transformers import AutoTokenizer
# 修改colab笔记本设置为gpu,推理更快
device = torch.device('cuda')
model.to(device)
def preprocess(text):return text.replace("\n", "_")
def postprocess(text):return text.replace("_", "\n")
def answer(text, sample=False, top_p=0.6):'''sample:是否抽样。生成任务,可以设置为True;top_p:0-1之间,生成的内容越多样、'''text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pt").to(device) if not sample: # 不进行采样out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_length=128, num_beams=4, length_penalty=0.6)else: # 采样(生成)out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_length=128, do_sample=True, top_p=top_p)out_text = tokenizer.batch_decode(out["sequences"], skip_special_tokens=True)return postprocess(out_text[0])

支持的任务(部分)

意图分类
新闻分类
情感分析
自然语言推理
阅读理解
阅读理解-自由式
摘要
翻译-中英
翻译-英中
通用信息抽取
简历信息抽取
医疗信息抽取
电商客户需求分析
医疗语义相似度
问题生成
指代消解
关键词抽取
情感倾向
根据标题文章生成知识图谱问答相似句子生成/改写纠错中心词提取.....

使用自定义数据集进行训练-PyTorch实现

  • 使用pCLUE数据集进行训练、预测和效果验证, pytorch实现--在线colab

pCLUE基准上的效果

示例输入

新闻分类(classify)
Input:
分类任务:
折价率过低遭抛售基金泰和跌7.15%,证券时报记者 朱景锋本报讯 由于折价率在大盘封基中处于最低水平,基金泰和昨日遭到投资者大举抛售,跌幅达到7.15%,远超大盘。盘面显示,基金泰和随大盘高开,之后开始震荡走低,午后开始加速下行,几乎没有像样反弹。截至收盘时,在沪深300指数仅下跌2.56%的情况下,基金泰和收盘跌幅高达7.15%,在所有封基中跌幅最大,而昨日多数封基跌幅在2%左右。
选项:财经,娱乐,时政,股票
答案:Model output:
财经
-----------------
意图分类(classify)
Input:
意图分类:
帮我定一个周日上海浦东的房间
选项:闹钟,文学,酒店,艺术,体育,健康,天气,其他
答案:Model output:
酒店
-----------------
情感分析(classify)
Input:
情感分析:
这个看上去还可以,但其实我不喜欢
选项:积极,消极
答案:Model output:
消极
-----------------
推理(generate)
Input:
请推理出上下文的关系:
前提:对不起事情就是这样。
假设:事情就是这样,不需要道歉。
选项:中立,蕴涵,矛盾
答案:Model output:
矛盾
-----------------
阅读理解(generate)
Input:
阅读文章,给出答案:
段落:
港汇指数,全称港元实际汇兑指数(Effective Exchange Rate Index for the Hong Kong Dollar)是由香港政府统计处编制的一项指数,以反映港元与香港主要贸易伙伴之货币的名义有效汇率加权平均数的变动情况。加权比重是按1999年至2000年平均贸易模式所制定,但政府并未有公布详细的计算公式。旧港汇指数基准日为2000年1月1日,基数为100点。由2012年1月3日起,新系列港汇指数 (包括15种货币及以2010年1月 = 100) 已取代旧港汇指数系列。港汇指数的作用,主要是用于反映香港的货品及服务的价格相对于其主要贸易伙伴的变动,并通常被视作反映香港价格竞争力的指标。
问题:港汇指数的加权比重如何制定?
答案:Model output:
按1999年至2000年平均贸易模式所制定
-----------------
阅读理解-自由式(generate)
Input:
阅读以下对话并回答问题。
男:今天怎么这么晚才来上班啊?女:昨天工作到很晚,而且我还感冒了。男:那你回去休息吧,我帮你请假。女:谢谢你。
问题:女的怎么样?
选项:正在工作,感冒了,在打电话,要出差。
答案:Model output:
感冒了
-----------------
摘要(generate)
Input:
为下面的文章生成摘要:
北京时间9月5日12时52分,四川甘孜藏族自治州泸定县发生6.8级地震。地震发生后,领导高度重视并作出重要指示,要求把抢救生命作为首要任务,全力救援受灾群众,最大限度减少人员伤亡
答案:Model output:
四川甘孜发生6.8级地震
-----------------
翻译-中英(generate)
Input:
翻译成英文:
议长去了台湾,中国人民很愤怒。
答案:
-----------------
Model output:
The secretary went to Taiwan and the Chinese people were angry.翻译-英中(generate)
Input:
翻译成中文:
This is a dialogue robot that can talk to people.
答案:
-----------------
Model output:
这是一台可以与人交谈的对话机器人。通用信息抽取(generate)
Input:
信息抽取:
据新华社电广东省清远市清城区政府昨日对外发布信息称,日前被实名举报涉嫌勒索企业、说“分分钟可以搞垮一间厂”的清城区环保局局长陈柏,已被免去清城区区委委员
问题:机构名,人名,职位
答案:
-----------------
Model output:
机构名:新华社,清城区政府,清城区环保局,清城区区委
人名:陈柏
职位:局长,区委委员简历信息抽取(generate)
Input:
阅读文本抽取关键信息:
张玄武2000年出生中国国籍无境外居留权博士学历现任杭州线锁科技技术总监。
问题:机构,人名,职位,籍贯,专业,国籍,学历,种族
答案:
-----------------
Model output:
人名:张玄武
职位:杭州线锁科技技术总监
国籍:中国国籍
学历:博士学历
-----------------
医疗信息抽取(generate)
Input:
从文本中抽取信息:
患者精神可,饮食可,睡眠可,二便正常。患者通过综合治疗头晕症状较前减轻,患者继续口服改善脑血管及调整血压变化药物。
问题:症状,治疗,检查,身体部位,疾病
答案:Model output:
症状:头晕
治疗:改善脑血管及调整血压变化药物
身体部位:二便
-----------------
电商客户需求分析(classify)
Input:
电商客户诉求分类:
收到但不太合身,可以退换吗
选项:买家咨询商品是否支持花呗付款,买家表示收藏关注店铺,买家咨询退换货规则,买家需要商品推荐
答案:Model output:
买家咨询退换货规则
-----------------
医疗语义相似度(classify)
Input:
下面句子是否表示了相同的语义:
文本1:糖尿病腿麻木怎么办?
文本2:糖尿病怎样控制生活方式
选项:相似,不相似
答案:Model output:
不相似
-----------------
问题生成(generate)
Input:
问题生成:
中新网2022年9月22日电 22日,商务部召开例行新闻发布会,商务部新闻发言人束珏婷表示,今年1-8月,中国实际使用外资1384亿美元,增长20.2%;其中,欧盟对华投资增长123.7%(含通过自由港投资数据)。这充分表明,包括欧盟在内的外国投资者持续看好中国市场,希望继续深化对华投资合作。
答案:Model output:
1、商务部发言人束珏婷表示,中国去年1-8月实际使用外资1384亿美元,增长20.2%,其中欧盟对华投资增长多少?
2、欧盟对华投资的增长是否达到预期?
3、欧盟在对华投资合作方面取得什么样的成果?
-----------------
指代消解(generate)
Input:
指代消解:
段落:
少平跟润叶进了她二爸家的院子,润生走过来对他(代词)说:“我到宿舍找了你两回,你到哪里去了?”
问题:代词“他”指代的是?
答案:Model output:
少平
-----------------
关键词抽取(generate)
Input:
抽取关键词:
当地时间21日,美国联邦储备委员会宣布加息75个基点,将联邦基金利率目标区间上调到3.00%至3.25%之间,符合市场预期。这是美联储今年以来第五次加息,也是连续第三次加息,创自1981年以来的最大密集加息幅度。
关键词:Model output:
美联储,利率目标区间,加息,基点
-----------------
情感倾向(classify)
文字中包含了怎样的情感:
超可爱的帅哥,爱了。。。
选项:厌恶,喜欢,开心,悲伤,惊讶,生气,害怕
答案:Model output:
喜欢
-----------------

技术交流和问题反馈

后台回复关键词【入群

加入卖萌屋NLP、CV、搜广推与求职讨论群

PromptCLUE:大规模多任务Prompt预训练中文开源模型相关推荐

  1. 技术实践:大规模知识图谱预训练及电商应用

    本文作者: 张文(浙江大学).黄志文(阿里巴巴).叶橄强(浙江大学).文博(浙江大学).张伟(阿里巴巴),陈华钧*(浙江大学) 接收会议: ICDE 2021 1. 文章导读 本文介绍了浙江大学阿里巴 ...

  2. github设置中文_【Github】100+ Chinese Word Vectors 上百种预训练中文词向量

    (给机器学习算法与Python学习加星标,提升AI技能) 该项目提供了不同表征(密集和稀疏)上下文特征(单词,ngram,字符等)和语料库训练的中文单词向量.开发者可以轻松获得具有不同属性的预先训练的 ...

  3. MICCAI 2020 | 基于3D监督预训练的全身病灶检测SOTA(预训练代码和模型已公开)...

    关注公众号,发现CV技术之美 ▊ 研究背景介绍 由于深度学习任务往往依赖于大量的标注数据,医疗图像的样本标注又会涉及到较多的专业知识,标注人员需要对病灶的大小.形状.边缘等信息进行准确的判断,甚至需要 ...

  4. 基于Keras预训练词向量模型的文本分类方法

    本文语料仍然是上篇所用的搜狗新闻语料,采用中文预训练词向量模型对词进行向量表示.上篇文章将文本分词之后,采用了TF-IDF的特征提取方式对文本进行向量化表示,所产生的文本表示矩阵是一个稀疏矩阵,本篇采 ...

  5. 利用GPT2训练中文闲聊模型

    利用GPT2模型训练中文闲聊模型 最近看了一下GPT2模型,看到很多博主都用来写诗歌,做问答等,小编突然萌生一个想法,利用GPT2来训练一个闲聊模型!!(小说生成器模型已经破产,写出来的东西狗屁不通, ...

  6. 【深度学习】预训练的卷积模型比Transformer更好?

    引言 这篇文章就是当下很火的用预训练CNN刷爆Transformer的文章,LeCun对这篇文章做出了很有深意的评论:"Hmmm".本文在预训练微调范式下对基于卷积的Seq2Seq ...

  7. TensorFlow 调用预训练好的模型—— Python 实现

    1. 准备预训练好的模型 TensorFlow 预训练好的模型被保存为以下四个文件 data 文件是训练好的参数值,meta 文件是定义的神经网络图,checkpoint 文件是所有模型的保存路径,如 ...

  8. 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 直接调用 C++ 接口实现

    现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过直 ...

  9. Keras 的预训练权值模型用来进行预测、特征提取和微调(fine-tuning)

    转至:Keras中文文档 https://keras.io/zh/applications/ 应用 Applications Keras 的应用模块(keras.applications)提供了带有预 ...

最新文章

  1. CentOS6.3 Samba安装配置、多用户、加域
  2. QT的QDeadlineTimer类的使用
  3. android AIDL示例代码(mark下)
  4. InstallShield中通过修改注册表关闭Vista/Windows 7的UAC
  5. 【linux】常用网络操作
  6. 03-15 捍卫WAF
  7. scratch python插件_Scratch3.0设计的插件系统(上篇)
  8. 数据库系统概论第五版(第 4 章 数据库安全性)笔记
  9. stata面板数据:xtserial下载问题解决
  10. c语言程序设计慕课版答案潘晟旻,附件1团队及组成.doc
  11. Dynamics CRM: 表单(Form)中的显示字段变成只读的几种情况
  12. excel手机版_微软的新办公利器,这才是手机办公该有的亚子!
  13. 碎片化学习三款必备APP
  14. 电脑重装了系统开不了机怎么办?
  15. Python笔记:利用pygame模块实现三原色颜色滚动条效果
  16. Mybatis 批量插入数据 SQL
  17. 时间序列分析-----1---简介
  18. 视觉学习笔记6——YOLOv5(v6.2)部署与代码理解
  19. 脚本调度-sqoop导出分区表-判断分区目录是否存在
  20. 杭电计算机学院宿舍,走进杭电 | 不得不说的杭电寝室

热门文章

  1. orcad中添加图片
  2. 星战前夜无烬星河服务器维护中,星战前夜无烬星河异常空间攻略 刷异常技巧分享...
  3. 基于SSM(Spring+SpringMVC+MyBatis)框架的健身俱乐部管理系统
  4. 【机器学习中的数学】函数空间
  5. Spring的三种Bean的实例化方法
  6. Verilog always敏感电平说明
  7. 三菱880彩铅和uni的区别_彩铅工具测评 篇十八:新手想要花卉/多肉更有层次感?来试试三菱uni880彩铅!...
  8. 超详细消息队列MQ使用时常见问题以及解决办法
  9. 古老递归问题(兔子版本斐波那契数列)
  10. Vue前端框架快速入门