点击左上方蓝字关注我们

【飞桨开发者说】郑博培,北京联合大学机器人学院2018级自动化专业本科生,飞桨开发者技术专家PPDE,深圳市柴火创客空间认证会员,百度大脑智能对话训练师

前言

尊师重教是中国的优良传统,早在公元前11世纪的西周时期,就提出“弟子事师,敬同于父”,古代大教育家孔子更是留下了“有教无类”、“温故而知新”、“学而时习之”等一系列至理名言。传道授业解惑的教师,被中国人誉为人类灵魂的工程师。

9月10日是老师们的节日,每位同学对老师的祝福可能都有自己的方式。

精通PS的同学可能会自己做一张电子明信片送给老师:

细心的同学可能还会把贺卡打印出来,再配一朵小鲜花:

可是,我既不会做贺卡,语文水平也不高,想不出很优美的祝福语送给老师,但我又想表达我对老师的感恩之心,于是,我决定写一个会生成祝福语的AI送给老师。

先来看看效果,输入与教师节有关的关键词:

示例输入:['尊敬', '伟大', '师恩', '讲台', '青春', '教育', '耕耘', '黑板']

示例输出:

以上示例输出图片取自AI Studio同版教程:

https://aistudio.baidu.com/aistudio/projectdetail/878918

生成祝福语的可行性分析

基于PaddleHub提供的面向生成任务的预训练-微调框架ERNIE-GEN(ERNIE-GEN详细介绍地址:

https://www.paddlepaddle.org.cn/hubdetail?name=ernie_gen&en_category=TextGeneration

模型概述

ERNIE-GEN 的全称是 An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation。

ERNIE-GEN 是面向生成任务的预训练-微调框架。首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。

在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。

此外,ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。ERNIE-GEN用了三种方法来提高语言生成能力:

  1. span-by-span 生成任务:让模型能够每次生成一个语义完整的片段。

  2. 填充式生成和噪声感知生成:缓解曝光偏差问题。

  3. 多片段-多粒度目标文本采样:预训练阶段增强编码器和解码器的交互。

Mulit-Flow Attention 框架,用于实现 span-by-span 的填充式生成:

ERNIE-GEN能在五大典型生成任务上大显身手,其中包括生成式摘要 (Gigaword 和 CNN/DailyMail)、问题生成(SQuAD)、多轮对话(Persona-Chat) 和生成式多轮问答(CoQA)。

更多详情参考论文ERNIE-GEN:An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation。

地址:

https://arxiv.org/abs/2001.11314

ERNIE-GEN在智能文本生成上也有不错的效果,比如写爱情诗歌、说土味情话、对爱情对联。下面一起来看一下如何用ERNIE-GEN写教师节祝福语。

具体实现

数据集的准备

根据教师节这个场景采集对应的教师节祝福语。

训练集的格式应为:

"序号\t输入文本\t标签"

验证集的格式应为:

"序号\t输入文本\t标签"

以下是我在网上收集到的,质量较高的教师节祝福语,我在这基础上也有加上自己的祝福:

1 教育 教子教女,辛勤半辈

2 讲台 三尺讲台,三寸舌,三寸笔,三千桃李

... ... ...

8 教师节 春蚕到死丝方尽,蜡炬成灰泪始干

9 教诲 教诲如春风,师恩似海深

10 桃李 学而不厌,诲人不倦,桃李芬芳,其乐亦融融

11 祝福 敬爱的老师,您的教诲如春风,似瑞雨,永铭我心,我虔诚地祝福您:安康,如意

12 教导 您的谆谆教导,是爱的清泉,将在我心灵的河床里,永远流淌

13 师生 老师,我们诚挚的祝福,就像老树上的翠绿,浓浓密密,与岁月俱增

14 敬爱 当我们采摘丰收果实的时候,您留给自己的却是被粉笔灰染白的两鬓白发,向您致敬,敬爱的老师

15 青春 您的教诲,是明朗朗的阳光,照在我的心田里,让我青春之花开放

... ... ...

我一共准备了两百条左右的数据,在文本生成的任务中,数据量越多,模型的效果越好。

一般情况下,一千条左右的数据量就能有很好的效果,当然,在数据集有限的情况下,两百条左右的数据也有不错的效果。

2.将PaddleHub更新到最新版本

使用PaddleHub前,我们最好都要将PaddleHub更新到最新版本。

!pip install --upgrade paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple

3.安装ERNIE-GEN

使用下面这条命令安装ERNIE-GEN。

!hub install ernie_gen==1.0.1
!pip install paddle-ernie

4.在ERNIE-GEN的基础上做finetune

在ERNIE-GEN的基础上做finetune有专门的微调API,默认采用中文ERNIE 1.0参数作为热启动参数。具体参数如下:

train_path(str):训练集路径。训练集的格式应为:"序号\t输入文本\t标签",例如:"1\t床前明月光\t疑是地上霜"

dev_path(str):验证集路径。验证集的格式应为:"序号\t输入文本\t标签",例如:"1\t举头望明月\t低头思故乡"

save_dir(str):模型保存以及验证集预测输出路径。

init_ckpt_path(str):模型初始化加载路径,可实现增量训练。

use_gpu(bool):是否使用GPU。

max_steps(int):最大训练步数。

batch_size(int):训练时的batch大小。

max_encode_len(int):最长编码长度。

max_decode_len(int):最长解码长度。

learning_rate(float):学习率大小。

warmup_proportion(float):学习率warmup比例。

weight_decay(float):权值衰减大小。

noise_prob(float):噪声概率,详见ernie gen论文。

label_smooth(float):标签平滑权重。

beam_width(int):验证集预测时的beam大小。

length_penalty(float):验证集预测时的长度惩罚权重。

log_interval(int):训练时的日志打印间隔步数。

save_interval(int):训练时的模型保存间隔部署。验证集将在模型保存完毕后进行预测。

运行结果是一个字典,包含2个键:

last_save_path(str): 训练结束时的模型保存路径。

last_ppl(float): 训练结束时的模型困惑度。

import paddlehub as hub
module = hub.Module(name="ernie_gen")
result = module.finetune(train_path='/home/aistudio/work/train.txt',dev_path='/home/aistudio/work/dev.txt',save_dir="ernie_gen_result",max_steps=600,max_encode_len=200,max_decode_len=200,noise_prob=0.2,batch_size=5,log_interval=20
)
module.export(params_path=result['last_save_path'],module_name="TeacherDayBlessing", author="zbp")

5.使用模型API预测

模型转换完毕之后,通过hub install $module_name安装该模型

!hub install TeacherDayBlessing

最后通过API预测的方式调用自制module:

import paddlehub as hub
module = hub.Module(name="TeacherDayBlessing")
test_texts = ['尊敬', '伟大', '师恩', '讲台', '青春', '教育', '耕耘', '黑板']
# generate包含3个参数,texts为输入文本列表,use_gpu指定是否使用gpu,beam_width指定beam search宽度。
results = module.generate(texts=test_texts, use_gpu=True, beam_width=5)
for result in results:print(result)
-------------------------------------------------------------------------------
['当我们采摘丰收果实的时候,您留给自己的却是被粉笔灰染白的两鬓白发,向您致敬。']
['老师,您是伟大的,像一支蜡烛照亮别人燃烧自己。祝您节日快乐!']
['横式竖式,算不尽老师的爱;字里行间,装不下老师的情。']
[ '寒来暑住,三尺讲台轮回着日月;春华秋实,花园里面弥漫着芬芳,老师您辛苦了!']
['无论我成为挺拔的白杨,还是低矮的小草,老师,我都将以生命的翠绿向您致敬。']
['教的是书,育的是人。燃烧自己,照亮他人。播种理想,浇灌希望。教师节,向敬爱的老师致敬。']
[ '用语言播种,用彩笔耕耘,用汗水浇灌,用心血滋润,这就是我们敬爱的老师崇高的劳动,祝老师们节日快乐!']
['横式竖式,算不尽老师的爱;字里行间,装不下老师的情。 ']

总结与展望

在做这个项目之前,我在想,AI能具有创造力吗?

做完以后,我坚定了这个想法,能!

不光是写祝福语,用AI写古诗、对对联、说情话,这些都不在话下。

最后,也欢迎大家更换关键词,给老师写一句教师节祝福语吧!

微信扫描下方二维码添加飞桨运营小哥哥,并备注"Hub",加入PaddleHub技术交流群

基于PaddleHub的教师节祝福语生成教程地址:

https://aistudio.baidu.com/aistudio/projectdetail/878918

如在使用过程中有问题,可加入飞桨官方QQ群进行交流:1108045677。

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

飞桨PaddleHub项目地址:

GitHub: 

https://github.com/PaddlePaddle/PaddleHub 

Gitee: 

https://gitee.com/paddlepaddle/PaddleHub

飞桨开源框架项目地址:

GitHub: 

https://github.com/PaddlePaddle/Paddle 

Gitee: 

https://gitee.com/paddlepaddle/Paddle

END

PPDE Club 互动有礼

9月12日(本周六),飞桨为社区的核心开发者准备了一场共享技术与脑洞碰撞的极客趴,来自北京、河北、广东、安徽、辽宁等全国多个地区的 PPDE(飞桨开发者技术专家) 相聚在北京中关村,一起嗨聊、一起造!

此次活动席位有限,但我们同样感谢所有社区开发者对飞桨的关注和对社区的贡献。我们准备了精美礼品,参与留言互动即有机会获得,10个名额,等你来拿~

公众号后台回复”PPDE Club“即可获得具体参与方式

教师节祝福语太单调?来用PaddleHub生成独家祝福语相关推荐

  1. 基于PaddleHub的圣诞节祝福语

    基于PaddleHub的圣诞节祝福语 目录 基于PaddleHub的圣诞节祝福语 一.前言 二.模型介绍 模型名称 模型概述 查看代码 三.实现过程 准备数据 查看参数 finetune方法 expo ...

  2. 祝福语大全 计算机,【一到十的祝福语】 从一到十的祝福语_一到十祝福语大全_东城教研...

    一到十的祝福语 一到十的祝福语: 1.一帆风顺 二龙戏珠 三阳开泰 四平八稳 五福临门 六六大顺 七星报喜 八面威风 九九回一十全十美 2.祝你:一生平安 二人同心三生有幸 四季发财 五谷丰登 六畜兴 ...

  3. ios 渐变透明背景_PPT设计的总是太单调,不如换个背景试试,超精彩!

    原标题:PPT设计的总是太单调,不如换个背景试试,超精彩! 在PPT的设计中,有一个元素也是至关重要. 那就是背景,背景的好坏效果不仅会影响页面的美观,同时还会影响PPT的内容,看一下. 而大多数人为 ...

  4. 桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!

    前言 前段时间,写了篇博客关于Python自制一款炫酷音乐播放器.有粉丝问我,音乐播放器为什么要用PyQt5,效果是不是比Tkinter赞?PyQt5真的可以实现这些炫酷的UI画面吗?之前没接触过Py ...

  5. 彩虹物语服务器维护,红手指彩虹物语云手机使用教程_红手指彩虹物语云挂机教程_彩虹物语息屏挂机教程_红手指云手机官网...

    <彩虹物语>是一款2D横版卷轴格斗ARPG,玩家将在泰尔大陆会合,开启奇妙小岛的冒险之旅在泰尔大陆上,可以和个性鲜明的宠物.圣灵结伴冒险:一起挖矿掠夺.酒馆闯荡.收集宝藏等等,这些新奇有趣 ...

  6. 维汉在线翻译电脑版_支持汉语维吾尔语互译_维文翻译汉语和维语学习

    维汉在线翻译电脑版,现在可以免费试用,维文智能翻译和文字识别可以帮助我们工作还有学习维语. 可以支持维汉互译,即维语翻译成汉语,汉语翻译成维语,还可以把英语也翻译成维语等等. 现在看下它的文字识别功能 ...

  7. ChatGPT专业应用:生成书籍推荐语

    正文共 1078 字,阅读大约需要 7 分钟 书评人等必备技巧,您将在7分钟后获得以下超能力: 生成书籍推荐语 Beezy评级 :A级 *经过寻找和一段时间的学习,一部分人能掌握.主要提升效率并增强自 ...

  8. 团队激励语、职场标语、行动口号激励语

    团队激励语.职场标语.行动口号激励语 2010年08月08日 [b] 行销篇 服务三一五 回访老客户 争取转介绍 举绩两不误 红五月里拜访忙 业绩过半心不慌 新单续保并肩上 全力冲刺创辉煌 六一销售少 ...

  9. 用python祝福父亲节_父亲节给爸爸的祝福语微信48条

    父亲节给爸爸的祝福语微信48条 撑起亲情的保护伞,风雨再大也不怕:摘下严厉的面具,再硬的心也柔软:望着沧桑的背影,感动常在心间.父爱如山,父亲是永远的靠山.父亲节快乐!下面是小编为大家整理推荐的父亲节 ...

最新文章

  1. hdu5391 Zball in Tina Town
  2. java.lang.ClassCastException(java强制类型转换异常)
  3. 构造函数与new关键字
  4. 英国科研学术网络Janet遭遇DDoS攻击
  5. python调用库有哪些_十大Python机器学习常用库 python开发,你用过几个?
  6. 聚类分析与判别分析十题_数学建模系列
  7. 网络内共享计算机无法访问,如何解决无法访问局域网内共享文件夹的问题?
  8. 兄弟连猿代码less css 视频教程学习平台
  9. 计算机网络——虚拟专用网与网络地址转换NAT
  10. 对Git暂存区的理解
  11. [艾兰岛]制作传送门之搭建系列——kura酱长期更新
  12. MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
  13. 人工智能html5背景,HTML5人工智能基础及实践
  14. 雨刮器全国产化电子元件推荐方案
  15. 机器学习之模拟退火算法
  16. 组学数据上传(五):代谢组学数据
  17. 帝国时代2决定版服务器证书身份验证失败,《帝国时代2决定版》常见问题解决方法介绍 常见问题怎么解决...
  18. 浅谈氢能源三大竞争优势
  19. 如何在本地搭建网站(图文教程)
  20. element UI 饿了么 UI 分页 按钮不显示的问题

热门文章

  1. python小白到大牛pdf_清华大学出版《python小白到大牛》PDF版分享
  2. ISO-8601,日期时间格式表示法的国际标准
  3. pandas读取带中文的csv
  4. Qt植物大战僵尸实现修改阳光和无冷却
  5. 论文分享 Simple Baselines for Human Pose Estimation and Tracking
  6. uTools插件-Excalidraw轻量的在线白板绘图工具
  7. STM32F4主板硬件设计与接口
  8. 加密市场的6大长期预测:以太坊将比许多人想象的更重要
  9. 金融行业开源软件研究评测报告——JSON组件
  10. COSCon'22@Beijing | 北京分会场等你赴约