刘馨蔓,一流科技工程师(实习),本科毕业于阿尔伯塔大学计算机科学专业,现在也是多伦多大学准研究生。她最引以为傲的小爱好是,2020年底自学了Ukelele弹唱,其次是剪辑Vlog。
本科期间,她获得过Dean’s Honor Roll、Amdahl Academic Achievement等各类奖学金,并曾在华为、蚂蚁实习。如今,尽管在OneFlow实习时间还不长,但她很快就得到不少同事赞赏,其mentor谢暄评价称,“她属于到哪儿都能发光的人,很棒的。”今年9月,她将在多伦多大学开启自己的研究生生涯。
以下是刘馨蔓的自述。
1
“不确定走哪条路?都试试”
我高一和高二就读于云南玉溪一中,那时对数学比较感兴趣,比较喜欢解决需要逻辑分析的问题。高三是在加拿大Columbia International College读的, 当时也就17岁,对未来没啥特别的规划,当父母问我想不想去国外念书,我觉得有机会能出去外面看看更大的世界很好,所以一拍脑门就去了。
高中毕业后,我申请了多伦多大学、滑铁卢大学、阿尔伯塔大学等大学并收到了offer,后来选择了阿尔伯塔大学,很大一部分原因是学费更便宜、奖学金更多,能给家里减轻一些经济方面的负担。
因为我觉得CS与数学比较相关且更实用,所以本科就选了这个专业。大一,在学习了编程课程后,我发现自己还算比较擅长这个工作。我一直觉得,兴趣和特长相辅相成,我们会因为擅长一个东西而对它更加感兴趣。
阿尔伯塔大学在AI领域比较出众,学校设置了很多AI相关的课程,我也能接触到很多很优秀这个领域的教授,学习AI的氛围也很浓郁。另外,由于我是CS honors的项目,所以每周要参加研讨会,会上,不同的教授会分享自己的研究课题或最新论文,大部分都与AI相关,听下来觉得很有趣。
大二时,我选了一门讲AlphaGo的课,后来还和同学一起组队做了一个五子棋agent,这是我学习AI的起点。选了AI相关课程后,发现自己还蛮擅长的,基本都能拿满分,和教授也比较聊得来。
大三是我对自己未来发展方向比较迷茫的阶段,不太确定自己想走科研路线还是去工业界,但这一年有幸上了Martha White教授的一门强化学习课程,由于表现优异且经常去找她讨论,我们的关系很好。
一次,和Martha讨论结束后,我跟她说了自己的困惑,她给的回复是,Why don't you try both if you are not sure(如果不确定走哪条路,为什么不都试试呢)?算是一语惊醒梦中人吧,暑假我就和她一起做了强化学习相关的科研工作,结束后,回国去华为实习了一段时间。
说起编程技能的习得,因为我是计算机科班出生,所以更多是从本科阶段的不同课程中学到的,比如软件开发课就会学到C,Java等,数值方法就会学Matlab,AI的课程大部分时候使用的是Python,数据库就会学习SQL。还有一些是在实习时学到的,比如在华为就学到了Ruby语言。
从学校科研项目和实习经历中,我得到的结论是,我并不完全能享受纯理论研究或纯软件开发工作,而是更希望未来能从事applied research(应用性研究),这类似于机器学习工程师或是工业界的研究实验室所做的工作,既可以读论文学习前沿知识,也能把研究和理论工作进行落地。
未来想参与AI领域的科研工作的话,继续深造是一个比较好的选择。在我想清楚未来的大致方向后,就对加拿大高校的一些硕士方向做了调研,发现多伦多大学的MScAC是专门为想做applied research的同学而设立,很适合自己,就把它作为了申研目标。
为了增大录取到MScAC的机率并且丰富自己的履历,去年暑假,我到蚂蚁的研发效能部实习,9月实习期结束,我就回家在线上完成了自己最后一学期的课程,同时也完成了研究生申请。
今年2月,我顺利拿到MScAC的offer,并在4月收到了Vector Scholarship in Artificial Intelligence(人工智能向量奖学金)。
2
三次不同的实习经历
研究生生活开始前,我想实习一段时间,在同学吕嘉熹(OneFlow实习生)的介绍下知道了OneFlow。考虑到此前我已经有华为和蚂蚁这种大公司的实习经历,所以这次找实习更看重的不是公司title,而是自己能在这段实习中获得什么。
第一次在华为通用软件开发岗实习时,我学习了一些之前没接触过的通信网络知识,也学习了Ruby的基本知识。因为华为对业务保密比较严格,实习生看不到代码也参与不了日常开发工作,所以我当时只单独负责了一个小的边缘项目—— 命令行自动化工具整改(该工具用于自动生成c语言框架)。最后这个项目顺利完成了,帮团队提高了工作效率。我的实习答辩也很成功,顺利拿到了return offer。最大的收获其实是了解了华为的企业文化,体验在公司上班实习是什么样子。
在蚂蚁的实习也是软件开发岗,但当时的主管考虑到我有机器学习的相关知识背景,就给我安排了一个测试数据分析的任务。经过两个月的努力,我顺利根据测试数据筛选出需要优先治理的App和测试用例,并将分析结果总结到报表中。因为要继续读研不考虑转正,所以我仅在自己组内进行了实习答辩,很顺利。
与在华为实习相比,蚂蚁的氛围更轻松活泼一些,这可能跟我所在的小组整体要比华为时所在小组更年轻?而且在蚂蚁的时候有很多实习生和我一起工作玩耍,在华为时因为实习的时间比较特殊,整个部门就我一个实习生。
在大厂,实习生负责的或许只是一个不太重要的边缘项目,但在OneFlow我可以和大家一起搭建推荐库,也能了解到公司的核心代码。而且我之前没有参与过开源社区的开发工作,所以来OneFlow实习是一个很好的机会。在跟暄哥和德澎哥交流后,就决定加入OneFlow大家庭实习啦。
这是我第一次参与开源项目的开发,体验了从创建分支、开发、提交PR、PR合并这个流程。我的主要工作是和推荐组一起搭建推荐模型库,之前并没有接触过,过去的两个月,我用OneFlow复现了DeepFM(github.com/Oneflow-Inc/models/tree/a0c9af5621b04b3e1c4be48be491471a76c30225/RecommenderSystems/deepfm),并且了解了DeepCTR。
我之前也用过PyTorch,OneFlow的语法设计得和PyTorch很像,有利于工程师快速上手,降低学习成本。对OneFlow最大的感受就是快,尤其是开了并行之后,不愧是至简至快的深度学习框架。同时,OneFlow也在为大规模的训练作业提出自己的优化方案,我所在的推荐组即将发布OneEmbedding,这是大规模Embedding方案。
OneFlow的工作氛围非常轻松融洽。虽然是在远程工作,但我有问题时会加入OneEmbedding组的会议直接问前辈们,他们会很耐心地和我讲解而且解释得很清楚!我的mentor暄哥也很关心我,会不定时地和我交流最近的工作状态以及给我一些改进建议。总之,我觉得自己融入到了这个团队中,和大家相处得非常愉快。
今年9月,我就要去多伦多大学去读研了。之前也一直在加拿大留学,但这次去多大也是新的学校和环境,也会对认识新同学有所期待,感觉会有很多大佬~也会期待自己在读研过程中结识到新的教授,并与他们能有一些科研项目的合作,当然也希望自己能找到心仪的实习项目顺利毕业啦!
其他人都在看
CUDA优化之PReLU性能调优
25倍性能加速,OneFlow“超速”了
天才制造者:独行侠、科技巨头和AI
DeepMind爆发史:决定AI高峰的“游戏玩家”
解读Pathways(二):向前一步是OneFlow
OneFlow v0.7.0发布:全新分布式接口,LiBai、Serving等一应俱全
欢迎下载体验OneFlow v0.7.0:GitHub - Oneflow-Inc/oneflow: OneFlow is a performance-centered and open-source deep learning framework.https://github.com/Oneflow-Inc/oneflow/