Press "Enter" to skip to content

李沐团队新作Gluon,复现CV经典模型到BERT,简单好用 | 强烈推荐

上周,李沐老师公布 GluonNLP0.6 版本,借助 Apache MXNet,大家可以尝试在 Gluon 中复现 BERT 了。TensorFlow 和 PyTorch 两大框架一直是大多数人关注的焦点,即使 MXNet 在 2017 年加入动态图接口 Gluon 后,也一直没有成为大家的首选,而这次把“可复现的 BERT 模型带到我们身边”的 GluonNLP0.6 是否好用? 这个周末,就和营长一起尝试下 MXNet 框架的 Gluon,除了 TF 和 PyTorch,它值得你一试。

 

前言

 

据官方介绍,MXNet 是一款轻量、灵活的深度学习框架。MXNet 0.11 版本发布时加入动态图接口Gluon,李沐老师称其为“可以一次性解决产品和研究的需求”。从特点分析,Gluon 可以同时支持静态图和动态图,不仅学习了 Keras、Chainer 和 PyTorch 的优点,接口更简单,支持动态图,并且比静态图更灵活、简单。

 

 

(Gluon 发布时,特征总结图)

 

推荐理由

 

也许现在大家在研究和工作中,仍然主要使用 TF 和 PyTorch,但是经过营长尝试,Gluon 还是非常值得大家学习的,尤其是对于初学者,非常容易上手!对于研究者来说,Gluon已经支持很多经典、重要的模型,在加上 其教程非常易读,所以在大家的研究中也值得一试。此外,Gluon 的部署也很容易,如果模型已经达到你的需求,也可以尝试用于业务需求中。

 

边练边学

 

从 2017 年 7 月 Gluon 发布到现在,Gluon 不断增加、完善各类模型组成的 CV 和 NLP 工具包。截止目前,GluonCV 工具包已经更新到 v0.3,GluonNLP 工具包已经更新到 v0.6,也是刚刚发布的这个版本,已经复现 BERT。接下来,营长将与大家分享一下自己在 Gluon 上的初体验,有营长成功迈出的第一步,相信大家也可以用得顺利,玩得愉快。

 

一、安装 MXNet

 

1、先从安装 MXNet 开始,安装方法非常简单。一句 pip 命令行就可以搞定。

 

 

2、练习  MXNet 中内置的 NDArray,支持了很多函数和功能。

 

 

 

就像学习 Numpy 一样,要想深度掌握 NDArray,还需要大家多花一些时间去学习,发现他们之间的区别。

 

安装方法与详细教程:

 

https://gluon.mxnet.io/

 

大家都知道李沐老师在 UC 开了新课程,还有配套中文教材,理论与动手结合,简直就是小白华丽变身为专业的首选。

 

https://zh.d2l.ai

 

接下来营长还继续尝试了 Gluon 的 CV 和 NLP 两个工具包。经过团队很多人的努力与贡献,工具包在不断丰富和完善。真的是要感谢李沐老师和其整个团队~

 

团队的主要 contributors:

 

 

(受篇幅大小局限,截图部分只显示了 CV Top3,NLP Top6)

 

全部 contributors:

 

https://github.com/dmlc/gluon-cv/graphs/contributors

 

https://github.com/dmlc/gluon-nlp/graphs/contributors

 

内容贡献:

 

李沐 ,最近在知乎上为大家介绍了可复现的 BERT 的 GluonNLP 0.6

 

https://zhuanlan.zhihu.com/p/59809338

 

解浚源 (Eric) ,在其知乎文章中为大家详细介绍了 GluonCV0.3

 

https://zhuanlan.zhihu.com/p/46946101

 

二、初尝 GluonCV–GluonCV 0.3:超越经典

 

暂不说  CV 工具包的功能、性能等方面,使用简单是小白营长的第一感受!通过文档教程,分分钟上手。目前最新的 v0.3 版本已经成为“超越经典”的 CV库,不仅复现,还能超越原作,甚至对一些模型的改动结果在提升准确度的同时,速度也得到了很大的提升。改版了 Model Zoo 页面,交互式地对比各模型预测精度与性能,改进模型部署能力。

 

1、可以支持的模型与应用主要有:

 

 

上 GluonCV 文档:

 

https://gluon-cv.mxnet.io/index.html

 

2、新交互式 Model Zoo 页面,在页面中可以根据你查看的标准进行放大或缩小:

 

 

 

3、模型与性能上,已经增加或改进的有:

 

新模型: YOLO v3、Mask-RCNN、DeepLabV3、

 

新性能: 性能优化的模型有 Faster-RCNN、图像识别的 ResNet-50 和 ResNet-101、语义分割任务的 PSPNet 预训练模型,

 

        (来源: https://zhuanlan.zhihu.com/p/46946101 )

 

新应用: 行人重识别、GAN。

 

新功能:部署。

 

除了满足研究的需求,在项目中有需求的小伙伴们一样可以使用。通过 GluonCV 中提供的功能,你可以快速上线,如果这些模型的效果已经达到了业务要求,你还可以省去训练步骤直接应用。

 

介绍了这幺多,是不是真的好使?营长依旧为大家亲测~同样一行代码就让你轻松上手 GluonCV。

 

 

安装完以后,接下来也不用担心会不知所措。用 Demo 趁热打铁,而且还很简单,不信你可以往下看~

 

 

(模型准备上线中,营长已下线

 

可能接下来都不是营长写文章的时间,而是写代码的时间了,别阻止营长,简单到飞起,根本停不下来~

 

 

而且各位大佬们简直太 nice 了,完整代码都给准备好了,你还不学吗?

 

 

在 Tutorials 页面,还有更多哦~

 

 

三、下一步——GluonNLP 0.6:送你复现的 BERT

 

        (来源:李沐老师的知乎)

 

据李沐老师在文章中的介绍:

 

这次的复现,团体从头开始对 BERT 进行了预训练,训练中的语料库使用了包含 20 亿词(除去图片和表格)的英文维基百科,以及去重后包含 5 亿 7950 万词汇的书籍。在混合精度训练以及梯度累加的条件下,8 块 Volta V100 GPU 使用了 6.5 天将 BERT 基本版模型训练好,并在验证集上得到了如下结果:

 

 

(来源:李沐老师的知乎)

 

看了更多 GluonNLP 复现了的结果,是不是忍不住要去调戏一下 GluonNLP,营长也要去安装一下了。

 

教程请戳下面

 

https://gluon-nlp.mxnet.io/install.html

 

发布文档:

 

https://github.com/dmlc/gluon-nlp/releases

 

除了要安装 GluonNLP,还需要安装 Master Branch。别说了,营长安装好了,还得继续研究,你要不要加入?

 

 

后续还需要大家进行深度研究与使用,里面除了详细、易读的教程外,还有每个 API Reference,满足大家对源码研究与使用的需求~

 

 

就像在文章开头说的,也许大家现在在学习研究和工作中可能还是以 TF 和 PyTorch 为主,但是想要换个口味,小白快速上手,Gluon 是一个好选择!也欢迎大家加入我们的讨论,与大家一起交流、反馈使用感受!

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注