百度飞桨:给出关键词,AI自动生成元宵节祝福~

元宵节,祝福语

  • 一. 前言
  • 二. 模型介绍
  • 三. 数据准备
  • 四. 执行代码
    • 4.1 安装依赖
    • 4.2 开始训练
    • 4.3安装模型
  • 五. 预测输出
  • 六. 元宵节快乐
  • 七. 总结

百度飞桨系列文章

  • 百度飞桨:春节写春联:你写上联,AI写下联
  • 百度飞桨:(情人节特辑)想做就做,让爱豆对你说情话,过凡尔赛式情人节~

关注专栏百度飞桨

一. 前言

元宵节,中国的传统节日之一,又称上元节、小正月、元夕或灯节,时间为每年农历正月十五。正月是农历的元月,古人称“夜”为“宵”,正月十五是一年中第一个月圆之夜,所以称正月十五为“元宵节”。根据道教“三元”的说法,正月十五又称为“上元节”。元宵节习俗自古以来就以热烈喜庆的观灯习俗为主。

百度飞桨:给出关键词,AI自动生成元宵节祝福~_第1张图片

元宵节的形成有一个较长的过程,根源于民间开灯祈福古俗。据一般的资料与民俗传说,正月十五在西汉已经受到重视,不过正月十五元宵节真正作为全国民俗节日是在汉魏之后。正月十五燃灯习俗的兴起也与佛教东传有关,唐朝时佛教大兴,仕官百姓普遍在正月十五这一天“燃灯供佛”,佛家灯火于是遍布民间,从唐代起,元宵张灯即成为法定之事。

二. 模型介绍

本项目基于百度飞桨PaddleHubERNIE-GEN框架

  • ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。
  • 此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。
  • 下图是模型结构:

百度飞桨:给出关键词,AI自动生成元宵节祝福~_第2张图片

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

三. 数据准备

  • train_path(str): 训练集路径。
  • dev_path(str): 验证集路径。

训练集部分展示:

1	花灯	玉兔呈祥!万马奔月!合家团圆!万事吉利!庆佳节!欢欢喜喜闹花灯
2	佳节	元宵佳节闹花灯,灯红人喜庆佳节;碰杯邀月送相思,月圆人圆乐团圆
3	月圆	愿你人圆家圆团团圆圆,事圆福圆花好月圆
4	朋友	在这美好的日子,没有最美的词句,没有多情的言语,没有精美的礼品,有的只是朋友深深的祝福,元宵快乐
5	思念	又到元宵节,分别已几天;梦中想起你,醒来对愁眠;独坐陋室内,思念千里外;奈何相思苦,短信表祝福:时时开心在,刻刻笑开怀
6	共庆	这世界巡回看三遍,谁与我共庆元宵;玉界琼田三万顷,着我扁舟一叶
7	喜气	元宵佳节到来之际,祝您圆梦圆心,全家团团圆圆喜气洋洋乐无穷
8	祝福	带上诚挚的祝福,愿你开心大本营,开心总动员,开心大风车,开心每一年,开心每一月,开心每一天,开心每一刻,开心,开心,元宵节开心
9	幸福	海天一色庆元宵,想念时刻静悄悄,祝福缓缓起浪涛,给你问候荡最高,且把关怀挂树梢,但求幸福为你俏,元宵到,衷心祝愿你节日快乐,前途看好
10	特别	奉上一颗祝福的心,在这个特别的日子里,愿你幸福如意快乐,一切美好与你同在
11	汤圆	你不是饺子却有陷儿,你不是馄沌却也有汤,你不是糖果却也很甜,我已经迫不及待了,来吧我的汤圆,来吧我亲爱的元宵节
12	喜悦	我相信:祝福,就是我们需要的;能够祝福的,都是可爱的!在至爱的元宵节,深深地祝福你!愿我的祝福给你的元宵平添一份喜悦
13	团圆	我在这里,你在那头,我望着窗外,伴随着无尽的思念仿佛看见你忙碌的身影,月儿圆盼团圆,好想对你说:亲爱的,我下班了,麻溜煮汤圆
14	佳节	明月当空高高照,元宵祝福在微笑,十五汤圆别样甜,快乐常伴你身边,温馨短信给你发,此后你将大发达,正逢佳节,祝愿你心想事成,顺心如意
15	贺忱	致元宵贺忱与最美好的祝福
16	雪花	北风吹,雪花飘,雪花飘飘元宵到,祝福化作吉祥语,愿君常欢笑
17	学生	祝您元宵快乐,您的全体学生敬上
18	吉祥	元宵到,送你一个彩灯,红色代表开心,绿色代表幸福,黄色代表梦想,蓝色代表思念,橙色  代表寄托,紫色代表希望,青色代表吉祥,愿绘出你四季的安康
19	正月	带着诚挚的祝福,祝福你元宵佳节好事如正月十五的月儿一样圆,好运如汤圆一样圆又圆,好日子如彩灯一样五彩缤纷,祝你元宵节快乐
20	元宵	元宵节到了,朋友,我对你的思念,就像这元宵一样,塞得鼓鼓的,捏得圆圆的,煮在锅里沸了,盛在碗里满了,含在嘴里,呀,太甜了
21	祝愿	千万个祝愿,在寒风中凝固,但元宵节的灯笼,元宵节的汤圆,元宵节的短信祝福却在温暖中传送,愿温馨,温情,温柔在祝福中停留,祝你元宵节快乐
22	庙会	元宵节:逛庙会,猜灯谜,观花灯,放鞭炮,扭秧歌,跑旱船,锣鼓喧天真热闹;沸腾的快乐,温暖的情怀,美好的生活一年更比一年好,祝元宵节快乐
23	夜空	美丽的夜空,把梦想呈现;圆圆的明月,把幸福实现;漂亮的花灯,把节日妆扮;温馨的短信,把祝福传递;我的心愿:愿你元宵节快乐幸福每一天
24	快乐	好一个冷时硬中甜,好一个热时软中粘,好一个有心不外露,好一个清白自在圆;愿可口的汤圆带给你元宵的幸福无边,元宵的快乐无限
25	甜蜜	我用真诚为竹签,用祝福为丝线,用幸福为灯台,做了一个彩灯,送给你,祝你:虎年幸福安康,虎年甜蜜吉祥,元宵节快乐,前程一片光辉
26	家庭	正月十五月儿圆,锅里的元宵圆,幸福的家庭圆,开心的日子圆,甜蜜的爱情圆,一家人幸福又团圆,事业圆,学业圆,美梦圆,一年四季团团圆圆
27	繁星	天上繁星晶晶亮,地上彩灯换色彩;天上明月寄相思,地上汤圆寄团圆;又逢一年元宵节,温馨祝福送心田;健康吉祥送给你,愿你梦想都实现
28	牵挂	有个人时时牵挂着你,日日惦记着你,年年思念着你,元宵的灯火,是他含情的眼,元宵的汤圆,是他温暖的肩,愿这条短信带给你一生的幸福甜甜
29	岁月	人生吧,可短暂了,眼一闭,一睁,一年就过去了;元宵节将至,祝可爱的你在匆匆流逝的岁月中幸福永驻,金钱可以有,悲伤真没有,幸福一定有
30	良宵	灯火万家,良宵美景 ;笙歌一曲,盛世佳音;祝你元宵节快快乐乐,热热闹闹1	星辰	圣诞树点燃了,无数的星辰亮起,天空上写下你的名字,当流星划过时,也把我的思念与祝福一同捎去

四. 执行代码

代码基于飞桨的 BML CodeLab 编写

4.1 安装依赖

!pip install --upgrade paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple
!hub install ernie_gen==1.0.1
!pip install paddle-ernie

4.2 开始训练

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=800,
    max_encode_len=250,
    max_decode_len=250,
    noise_prob=0.2,
    batch_size=10,
    log_interval=50, 
    use_gpu=False
)

module.export(params_path=result['last_save_path'], module_name="YuanXiaoModule", author="zr")

在ERNIE-GEN的基础上做finetune有专门的微调API,具体参数如下:

  • train_path(str): 训练集路径。
  • dev_path(str): 验证集路径。
  • 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): 训练结束时的模型困惑度。

4.3安装模型

!hub install YuanXiaoModule

五. 预测输出

# 模型预测
import paddlehub as hub
module = hub.Module(name='YuanXiaoModule')
test_texts = ['今夜']
# generate包含3个参数,texts为输入文本列表,use_gpu指定是否使用gpu,beam_width指定beam search宽度。
results = module.generate(texts=test_texts, use_gpu=True, beam_width=2)
for result in results:
    print(result)

输出:

月到十五分外圆,把你疼爱把你怜,常常把你挂心间,今夜的汤圆甚是粘,我们何时能团圆。

六. 元宵节快乐

正月十五月儿圆,正月十五汤圆圆,短信祝福到身边,祝大家事业一年胜一年,好运好事喜连连,小日子过得甜又甜,元宵佳节幸福又团圆~

百度飞桨:给出关键词,AI自动生成元宵节祝福~_第3张图片

七. 总结

  • 欢迎大家更换关键词,给家人朋友写一句元宵节祝福语吧!

  • 大家可以自行准备数据集,该项目数据集和验证集准备的不是很充分,可能导致模型的精度不高,进而模型训练得到的祝福语有时会超出你的想象。

  • 来AI Studio互粉吧,等你哦,来互关呀~请点击—> 非鱼子焉

  • 欢迎大家喜欢收藏评论三连,感兴趣的朋友也可互相关注一下啊~

你可能感兴趣的:(百度飞桨,人工智能,深度学习,paddlepaddle,PaddleHub,python)