添加URL

课程秉承了“实战”风,老师简单理了一下NLP模型发展脉络,每个时期代表模型的优缺点,就一猛子扎进了BERT的关键技术——Transformer和Attention工作机制,于是编码解码、Query、Key、Values、Embedding、Softmax、矩阵运算带着满满的优越感向我碾压过来。算了,既然这是实战课,理论的问题就不要深究了吧,只要知道BERT是两步训练,知道如何使用ModelArts得到分类结果和评估,就达到今天学习的目的了。

这次课后作业比第一课难度低了很多。这主要得益于ModelArts提供了线上训练环境,免除了在本地搭建环境的痛苦。另外教辅材料准备都十分到位——预训练模型、微调模型、训练数据集、微调和评估代码,还有详细的作业指南一应俱全。

BERT工作流程及本次课程作业

  • 体验作业: 要求对调优模型的分类结果进行评估,只需要上传数据集、模型、脚本,指定输出文件的位置,提交任务,就可以让ModelArts干活了。评估结果会记录在日志文件里,日志文件可以在线浏览,也可以下载到本地。运行时间也只需要短短1~2分钟。

  • 进阶作业: 复杂一点,第一步先调优,要把预训练的模型参数应用到TNEWS数据集做训练,再按照体验作业的过程对调优的结果进行评估。第一步调优运行14分钟,第二步评估仍然只需要1-2分钟。

  • 老师提供的作业指南在附件里。作业过程当中文件上传遇到点状况。由于bert_base.ckpt文件超过1GB,我琢磨在上传这个文件的当口不如去设置参数。于是我把上传任务启动后就返回(是在同一个标签下返回)MobelArts配置算法来源、数据来源、运行参数等等,用不了5分钟就都配置好了。我再去obs检查数据集目录,没有这个文件,而且在控制台中也找不到查看文件传输进度的功能。后来在“任务管理”帮助文件里了解到,上传过程中不能关闭网页,否则记录会丢失。虽然文档没有说任务本身会丢失,但是后来再传输文件的时候,我会单独打开一个标签专门用于文件传输。

  • 费用也是我担心的一个问题。课前看过华为云应用的报价,动辄几千几万,好有冲击力。不过我只是想了解一下MindSpore,又不是上线企业应用,花费太高可承受不 了。老师讲ModelArts在公测阶段可以免费使用,只是赶上业务量大的时候需要排队。模型、数据集和代码需要用obs存储,用量少的话也是免费的。听老师这样说我就放心了。完成作业的第二天,我成功收到了华为云费用账单:

想想占用了人家差不多2GB的存储容量,才花5毛7分钱人民币,学习成本并不高,完全能接受。

老师讲的NLP算法演进历史虽然不是重点,但是我觉得深入了解一个领域的发展过程是很必要的。只有知道以前人们是怎么应对挑战的,以及如何改进的,才有可能理解最新的成果为什么是这个样,以及如何更好加以运用。我理解实战课时间有限,能讲到已经非常好了。加深了解是课后做的事情。

老师讲的NLP发展简史。尽量记录,但是还不能理解

第一次亲手“全程”操作一个训练任务,我对算法过程产生了一些联想。

首先是关于“学习”这件事。老师讲当前TNEWS分类最高的准确率57%。我觉得这样的成绩没有实用价值。问题会不会出在数据上呢?看统计学习方法有一个假设叫独立同分布。我不知道深度学习还需不需要这个假设。因为BERT学习包括预训练和调优两个阶段,而预训练使用的是一个超级大的通用语料库(华为使用的是中文维基。据说谷歌最早使用了英文维基),调优是把从预训练中得到的参数,应用到另外一个数据集(实验中用的是TNEWS数据集)上,再生成一组新的参数。我猜这两个数据集的差异很大。怎么测量这种差异我还没有概念,不过可以类比一下,让老中医去按西医的方法给病人开刀一定不会有好结果。我觉得在预训练的时候把领域知识带进去,实际应用的效果会有提高,比如用各类媒体发表过的标题作为预训练的数据集,再对今日头条的新闻标题做分类,准确率应该会有很大的提高。这个问题以后有机会要实际验证一下。

其次是关于“算法设计”这件事。BERT一出山就刷新了很多NLP任务的成绩很了不起,但是在创新性方面,感觉Transformer的贡献似乎更大。而相对于Word2Vec来说,从Seq2Seq到Transformer开创的东西似乎并不多,每一代新模型都是对前辈的修补。这是不是说模型开发基本是经验驱动的,尝试的作用很大(模型改进是不是就是传说中的“炼丹”)?就好比积木块都一样,只是用不同的方法把它们连接成不同的样子,然后看看力量是不是加强了,加强的就留下变成新擂主。至于为什么加强的,可能还是没搞清楚。感觉这又有点像老中医,说不清药物为什么起了效,如果非要说,他会扯一堆天地人,精气神,七经八脉之类的无法实证的东西。如果是这样的话,那么算力的作用就非常大了,因为只有算力够强,迭代的速度才够快,练丹师傅才能更快发现哪个模型力气大。

最后是关于“算法实现”这件事。感觉实现是很难的。一个算子后面涉及多少数据转换,多少矩阵运算,多少微分,加乘。假如是自己去实现一个算法,又要学习多少数学,又要知道多少驱动硬件的知识。实在太难。而且,最最要命的是,知识量往往是天花板。我亲身经过过一次。大约半年前自学CS231,做multiclass SVM Loss作业,我只想到用数值计算的方法实现求导,一个循环要6分多钟。能做出来感觉挺好,但是觉得这么慢不对劲。后来看Github上一位MahanFathi的作业,人家用解析法,代码量是我的1/20,只用几秒钟就能跑一个循环。我信心碎一地,至今不碰CS231,除非有高人带。所以我觉得有MindSpore真好,计算这种工作让它做好了,我就想想网络搭几层,怎么连接就行了吧。

机器学习一小白,胡思乱想净瞎猜。欢迎大佬指导。

前课笔记:

MindSpore21天实战营手记(一):基于MindSpore Lite开发端侧AI图像分类应用

有大神打比赛,求带。哪里写得不对,请大牛指教。欢迎加微信

转自文章链接: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=84847

感谢作者的努力与分享,侵权立删!

两年前学华为大数据,听过塔吉特向一位高中女生推荐促销婴儿用品,引起女生父亲的投诉,后来证实女生怀了小BB的故事。女生当然不会把这件事告诉别塔吉特,那塔吉特是怎么知道的呢?原来塔吉特的Apiroi 算法 挖掘了顾客的购物清单,推测这个女生怀了小BB,进而无脑向她推送跟小BB有关的商品信息。当时我还能听得懂Apriori是怎么干活的。Wide&Deep也是 推荐算法 ,可是有深度,我理解不了。不过咱上的是 实战 课,想那么多理论的东西干嘛。撸起袖子把代码跑起来就好了。 课程回看:https://www.bilib
【NLP】 新闻 文本 分类 ----- Bert 文本 分类 Bert 算法 介绍基于 Bert 的文本 分类 Bert Pretrain Bert Finetune Bert 算法 介绍 Google在NAACL 2018发表的论文中提出了 BERT ,与GPT相同, BERT 也采用了预训练-微调这一两阶段模式。但在模型结构方面, BERT 采用了ELMO的范式,即使用双向语言模型代替GPT中的单向语言模型,但是 BERT 的作者认为ELMo使用两个单向语言模型拼接的方式太粗暴,因此在第一阶段的预训练过程中, BERT 提出掩码语言模型,即类似完形填空的
2017年Transformer模型横空出世,encoder-decoder的创新效果显著,2018年Google又提出了 BERT 预训练模型,可谓是大大推动了NLP的进步,关于transformer和 BERT 的文章网上已经有很多大佬写了,对于transformer不熟悉的同学可以先自学一波,本文主要用 BERT 结合微调实现一个包含十五个类别的 新闻 文本 分类 任务,菜鸟一枚,各位大佬多多指教! 模型搭建5分钟,数据处理一小时。机器学习中数据处理的功夫是必不可少的,毕竟,数据决定模型的 花板嘛 哈喽大家好,我是b站的up主girafree,今 来给大家分享一下 min dsp ore的使用初体验 我在华为的modelarts平台上用今日头条开源的 新闻 数据集对 BERT _base模型做了一次finetune和evalution,具体流程可以参考:https://bbs.huaweicloud.com/blogs/197542 整体上 min dsp ore的使用