人工智能实战 第四次作业(DEBUG4FUN团队)

项目内容
这个作业属于哪个课程人工智能实战2019
这个作业的要求在哪里第四次作业--第一部分(团队)
队伍名称Debug4FUN
队伍组成王俊杰、何峥、段峙宇、田博、张有驰、杨佳宁
作业内容对联项目

NABCD

Need

对联,又称楹联或对子,是中文语言的独特的艺术形式,是中国传统文化的瑰宝。对联用途广泛,有春联、贺联、挽联、增联、行业联、自勉联等分类,可以说,对联在生活中随处可见,随处可用。因此,社会对对联的需求量极大。与此同时,对联形式多变,有正对、反对、流水对、集句对等;要求严格,好的对联必须对仗工整,平仄协调,字数相同,结构相同,需要创作者具有一定的文化素养,这给对联的创作带来了一定的困难,往往上联容易下联难。规整的基本框架,复杂的词意表达,使得AI生成对联这一项目大有可为。

Approach

数据收集:来自https://github.com/wb14123/couplet-dataset/releases的774491篇对联
数据处理:利用北航的校园云平台,在神经网络中对数据进行训练
生成结果:根据Tensor2Tensor库中的t2t_decoder,编写解码程序。输入上联,输出生成的下联。

Benefit

过年、赠人、丧事、喜事……都需要用到对联。不少人直接在网上搜索祝福语复制粘贴,没特色,没诚意。利用AI智能生成对联,人们可以不必绞尽脑汁地去凑对仗,仅给出上联便能得到一副完整而独特的对联。同时,AI生成的下联也可以给予启发,借用其中的意象来创作更加优秀的对联作品。

Competition

腾讯曾于2018年春节之际推出智能春联AI小程序,但现在已经进不去了。
王斌先生的AI对联网站(https://ai.binwang.me/couplet/)和微软对联(http://duilian.msra.cn/)是目前相对比较成熟的作品。虽然它们基本能够满足对仗工整与词性相似的要求,但意境还是有很大的改进空间

Delivery

在网站发布项目。

团队成员初步分工

王俊杰:算法实现,配置训练环境
何峥:配置资源平台,数据集添加
段峙宇:界面布局,算法实现
田博:编辑博客,数据集添加
张有驰:数据处理,数据集添加
杨佳宁:数据集添加

项目时间预估

16周前完成并完善项目基本要求,同时实现拓展功能

初版项目

模型训练结果
1625922-20190603183347568-363240518.png

终板训练结果

1625922-20190603190631212-271229276.png
1625922-20190603190651941-1581178331.png
1625922-20190603190700367-1172237541.png
1625922-20190603190708194-98651265.png

计划

在工程项目的计划阶段,我们认为工作项目从布置到交付的时间是绰绰有余的,我们评估了项目的难度和工作量,以此为基础制定了一个比较详实的计划。在计划阶段,小组内部会召开线上和线下的组会,组内成员会有机会完成充分的交流和意见交换,如果组员间有不同意见,我们一般会通过少数服从多数的方式来决策,考虑到组内人员能力的不一致,我们也会充分询问组内能力较强,意见比较权威的组员的意见,最后完成对于工程计划的定制。
在工程交付阶段,我们发现我们的工作到最后并没有全部完成,导致这个结果的原因有两个:其一、我们低估了项目前期布置资源,训练模型,搜集资料所需要的工作量,我们将大量的时间花在了确认什么样的工作是不可行的,在这个试探的过程中我们浪费了大量的时间和资源,并且项目的进展明显被拖慢。其二、虽然我们为每个工作阶段都留下了缓冲区,但在工程的完成中我们发现有许多其他突发的优先级较高的事物占用了我们本来还有冗余的工作计划,使工作计划每个阶段所需的时间需要大幅度延长。
我们并不是每个计划阶段都有清楚定义和衡量的交付件。在项目工作的初期,我们在配置工程所需的编程程序和运行环境时,没有发现版本不匹配的问题,这个潜在风险在项目后期爆发出来,使我们所做的一些工作变得无意义。我们在编写对联输出程序的时候,也察觉到了一些问题,但是我们没有时间进行修改。
通过该项目我们学到了计划定制的初期阶段一定要做好时间预估和风险预估,为计划留出更多的缓冲时间。

资源

做这个对联项目的资源是很丰富的,网络上有各种各样的帮助文档,Tensor2Tensor的学习与使用说明,以及老师们和助教的解答。但我们没有利用好这些丰富的资源,尤其是最方便的助教和老师的帮助,以致我们运行环境出现问题时没有快速及时的解决。这使得我们的项目卡壳,项目进度迟迟得不到推进。我们本应该更加重视环境配置的问题,尽早寻求助教的帮助,解决这一问题。
我们项目的亮点在于添加了新的数据集进入,但我们远远低估了添加数据集所花费的时间和难度,我们使用的最基础的方法——手动制作添加。我们手动搜索了一部分数据,另外使用爬虫爬了一部分数据。爬虫爬的数据杂而且质量不高,花费了很多时间人工筛选。同时,由于担心训练的数据有格式要求,又花费了一些时间将数据格式变为和训练数据一致。最后,进行人工上下联配对——这也是数据制作最耗费时间和精力的一部分。我们分了几部分分配给组员进行人工配对,根据自己的感觉进行合适的组合,虽然可能并不那么“匹配”,但是也没有更好的办法。这样,我们才最终完成数据集的制作,添加至训练集中,进行训练。
1625922-20190603191315644-570665501.png

我们本来还想做一个小程序,最初只是简单了解过小程序的制作过程,但后来真正尝试去做时,感觉所需精力有点多,还是应该主要把精力放在程序编写上,因此最后就只做了一个比较简单的界面。
如果还有机会参与项目,我们一定得多寻求帮助,和相同项目的其他组同学多多交流,可以避免犯很多不必要的错误和问题,这样项目的开展会更加顺利。

测试

1 团队是否有有一个测试计划?
团队对于项目的目标功能是否实现,可靠性、安全性需求是否满足等有一个初步的测试计划,团队成员对于预期实现功能,必须避免出现的问题如输入异常导致程序崩溃等,有了一致性的认识。
2.是否进行了正式的验收测试
由于在模型训练中遇到的问题导致进度落后,团队未能在结项前完成对于项目的正式验收测试,但对于在代码编写与调试中暴露出的问题,都进行了尝试与解决。

项目中遇到的问题与反思

1.在云平台的配置与使用过程中,面临coda, tensorflow, tensor2tensor, python, gpu 之间版本不匹配的问题。软件版本过多并且缺乏一定的兼容性,再加上团队成员们对此问题没有充分认识,使得成员间的合作效率变低,使用平台时频频报错。对于使用的平台以及软件间的兼容性,没有事先做好调查、做足准备功课,影响了后续任务的开展。
2.由于windows 与 Linux 的文件储存路径不一致,在Windows上decode.sh 不能运行,在更换ubuntu系统后,仍然面对缺失文件、找不到路径的问题。团队成员们对tensor2tensor的使用经验不足,以及代码的结构复杂性高可读性低,导致对问题原因的排查耗费了过多时间,并影响了团队的进度。

转载于:https://www.cnblogs.com/flowerypig/p/10969342.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值