致"七夕"--用 AI “炒个冷饭,写个情诗”

胡琦

共 3205字,需浏览 7分钟

 ·

2021-08-18 09:19

不知不觉又到一年“七夕”,也就意味着“中秋”也近了。我不是个懂浪漫的人,也不必去精心挑选礼物,珍惜眼前茶米油盐平平淡淡地生活,似乎所谓的“东方情人节”,也和我没太大的关系。如果硬是要发生点关系,那便是我要在“七夕”炒个冷饭,回顾一下华为开源自研 AI 框架 MindSpore 在自然语言方面其中的一个案例 --  《使用 BERT 网络实现智能写诗》,感受一下 MindSpore 版本的变化(PS:其实主要是挽救一下快过期的代金券)。

环境及源码说明

基于华为云 ModelArts 新版 Notebook,tensorflow1.15-mindspore1.2.0-cann20.2-euler2.8-aarch64实例,昇腾910(32GB显存)单卡规格,配搭ARM处理器,适合深度学习场景下的模型训练和调测。

案例出处 MindSpore 官方文档

  • 源代码出处: MindSpore Docs
  • 数据集来源: poetry.txt
  • 预训练模型来源:bert_base_v1.0_cn_wiki
  • 数据集托管在 AIGallery: bert_poetry

环境准备

温馨提示:本次实践使用 Ascend 资源,按需使用时单卡费用约 19.50/小时,建议先认证开发者加入沃土计划领取代金券

请参照ModelArts准备工作完成账号注册、环境开通等。

开通 ModelArts 开发环境 Notebook

下载资源到 OBS。理论上 AIGallery 支持数据集、Notebook、模型等资源的托管和分享,为了方便学习交流,我将此次实践的资源以数据集的方式上传分发,大家可自行下载到 OBS。接着我们就能在 ModelArts 开发环境 Notebook 通过 Moxing 框架使用 OBS 中的资源。

bert-poetry

比如我的脚本如下:

# 资源下载
import moxing as mox
mox.file.copy_parallel('obs://huqi88/AIGallery/bert_poetry/bert_poetry','bert_poetry')
print('Done!')

下载完成之后就能看到bert_poetry目录。

bert_poetry notebook

打开bert_poetry/bert_poetry.ipynb,选择MindSpore-python3.7-aarch64内核运行,即可体验 AI 写诗。

开始用 AI 写诗

我们执行!pip list可以查看当前环境安装的 python 依赖,也能够确认我们使用的是 MindSpore 1.2 的版本:

pip list

当然, MindSpore 1.3 中新增的run_check方法查看版本信息在当前的 Notebook 中是无法使用的,我也尝试在 Notebook 中安装新版本的 MindSpore,不过在执行run_check方法时提示某些.so文件找不到,多次尝试解决无果后就放弃了体验新版本。

尽管没能在 Notebook 中体验到最新的 MindSpore,但我还是感受到了 MindSpore 版本更新带来的变化,比如在 1.2 版本之前使用的GatherV2TensorAdd修改为了更加规范的GatherAdd,LearningRateSchedule改为从mindspore.nn.learning_rate_schedule中导入,而这些都可以在查看版本列表和接口变更中追溯到。

mindspore change list

我已经将基于bert-base预训练模型训练了 20 个 epoch的模型一并上传,因此我们可以直接推理:

# 推理
!python poetry.py --train=False  --ckpt_path=./poetry-20_1535.ckpt

poetry.py写入了默认的文字七夕快乐,因此能够直接得到推理结果:

**********************************
续写 【七夕快乐】: 

七夕快乐早朝还,
梦魂犹在锦城间。
不知系马东归去,
还有溪头江水闲。

cost time: 31348.7 ms



**********************************
藏头诗 【七夕快乐】: 

七夕今朝泪如雨,
夕风相送各东西。
快游不是归春至,
乐府何人肯忆家。

cost time: 162.8 ms

也可以通过input参数出入,比如有情人终成眷属

**********************************
续写 【有情人终成眷属】: 

有情人终成眷属,
放下不关身老身。
唯说一生长似我,
一壶芳兴属何人。

cost time: 31014.1 ms



**********************************
藏头诗 【有情人终成眷属】: 

有鸟随鸟下,
情人见我稀。
人生一世间,
终日我心知。
成事何由尽,
眷言几万重。
属官如有问,

cost time: 235.8 ms
poetry result

如果您对结果不满意,也可以自行修改配置文件\src\finetune_config.py再继续训练:

!python poetry.py
train poetry

不使用资源时记得删除实例!!!

鹏程·盘古α 大模型

如果您不想动手实践,那就直接享用业界首个2000亿参数以中文为核心的预训练生成语言模型 -- 鹏程·盘古α,这是真金白银打造的模型,基于“鹏城云脑Ⅱ”和国产MindSpore框架的自动混合并行模式实现在2048卡算力集群上的大规模分布式训练, 这个2048卡训练一个小时得花多少米?此外鹏程·盘古α模型基于国产全栈式软硬件协同生态(MindSpore+CANN+昇腾910+ModelArts),满满的“中国心”啊!那如果用鹏程·盘古α模型,会有怎样的表现呢?

体验地址:https://pangu-alpha.openi.org.cn/

Copy 攻城狮带您见证一下哈!

输入:不知不觉又到一年七夕,
盘古α续写:又到一年虐狗日,送上一首歌,送给所有还在单身的妹子,《单身情歌》
输入:七夕情人节到了,祝大家
盘古α续写:节日快乐,有情人终成眷属!一起对TA说出那句浪漫的话吧!
难得的节日,错过了也没什么,何必纠结呢!
鹏程·盘古α模型,侵删
鹏程·盘古α模型,侵删

我没有修改可选参数 topK 和 topP ,分别尝试了专业文档撰写和自由生成,不知道是不是因为训练集中的表情文字没有剔除,有时候生成的文字会有些难以理解的结果比如“大粽子,大粽子”,目前来看还不是太理想,不过对结果简单挑选之后,还是有满意的。(如果图片侵权,请联系作者删除,感谢!wechat:Hugi66)

尾声

人生路,走着走着就迷失了方向,珍惜眼前人,珍惜每一天。今天是七夕,祝有情人终成眷属!当然,如果您对 AI 感兴趣却不知道怎么上手,欢迎加入华为云AI实战营,和华为员工一起学 AI,也许还能找到志同道合的 TA!

  • 👉👉👉 https://marketplace.huaweicloud.com/markets/ai/gallery_full_stack.html

浏览 56
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报