机器学习科研的十年
博士的第三年,我和小伙伴们开发了一种可以用低于线性复杂度就可以训练更深模型的内存优化算法。当时我非常兴奋地把这一结果写下来然后把稿子后给导师看。他和我说:Hmm,这个结果如果投到NeurIPS的话或许可以中一篇poster,但是这并不是特别有意思。在我沉默之后他又补充了一句:论文并非越多越好,相反你可能要尝试优化你的论文里面最低质量的那一篇。最后我们只是把这篇论文挂在了Arxiv上。Carlos的说法或许比较极端(这篇论文依然影响了不少后面的工作),但也的确是对的,用李沐之前说过的一句话概括,保证每一篇论文的质量接近单调提升,已经是一件难以做到但是又值得最求的事情。 选择做什么眼光和做出好结果的能力一样重要,眼界决定了工作影响力的上界,能力决定了到底是否到达那个上界。交大时敖平老师曾经和我说过,一个人做一件简单的事情和困难的事情其实是要花费一样多的时间。因为即使再简单的问题也有很多琐碎的地方。要想拿到一些东西,就必然意味着要放弃一些其他东西,既然如此,为什么不一直选择跳出舒适区,选一个最让自己兴奋的问题呢。 第四年之后: 坚持做什么博士第三年,我和小伙伴们参加GTC,结束后老黄party的角落里,我一个人在发呆。深度学习的框架发展已经铺开,可接下来应该做什么,我一下子感到迷茫。第三年的暑假我没有去实习,而是决定一个人在学校尝试开发脑海中显现的抽象概念 -- 深度学习中间表示。暑假结束之后,我完成了第一个版本,可以比较灵活地支持深度学习系统里面的计算图内存优化。但是总是觉得还缺少着什么 -- 系统的瓶颈依然在更接近底层的算子实现上。暑假之后在去加州的飞机上,我尝试在纸上画出为了优化矩阵乘法可能的循环变换,回来之后,我们决定推动一个更加大胆的项目 -- 尝试用自动编译生成的方式优化机器学习的底层代码。 这个项目早在之前我也有一些想法,但是一直没有敢去吃这个螃蟹。原因是它的两个特点:从零开始,横跨多领域。因为要做底层代码生成和想要支持新的硬件,我们需要重新重新搞清楚很多在之前被现有的操作系统和驱动隐藏掉的问题,这就好象是在一个荒岛上一无所有重新搭建起一个城堡一样。而这里面也涉及了系统,程序语言,体系结构和机器学习等领域。这让我想起之前在ACM班时候重头搭建编译器和MIPS处理器并且连接起来的经历。也是那段经历让我觉得为了解决问题去吃多个领域的螃蟹是个让人兴奋的事情。那段经历给我留下的第二个印记是理解了合作和传承的重要性。这门课程设计有一个传统,每一门课程的老师都由上一届学长担任。每一届的同学都会在之前的基础上有所改进。我也曾经为这门课做过一些微小的贡献。演化到现在,这门课程已经从只做简单的答辩,到现在已经有在线评测的OJ。大家一起的合作塑造了这个课程。推动新的机器学习系统和塑造这门课程一行,需要各个团队的同学合作,足够时间的耐心关注和不断地改进。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |