奥赛金牌得主C,爱好篮球,曾跟随队伍在新生杯中夺冠;王者荣耀大神玩家,打过北京高校联赛,在一百多支队伍里拿了第三;喜欢听歌,是周杰伦的老粉。毕业自北京大学计算机科学与技术专业的他,目前在幻方负责模型和算子的优化。
以下内容根据C自述整理:
00后工程师与计算机的结缘
与计算机的结缘,是从小学开始的。当时,学校组织了一次统考,考的好的同学就可以参加信息学小组。我考进去了以后,就开始接触编程了。
我觉得编程很有趣,和文化课完全不一样。代码是有魅力的,我很享受做题——学习新算法,把这个算法进行个人的运用,解决问题,再拿到一个高分,这个过程会给我很大的成就感。这也是我一路坚持下来了的原因。
高中我也搞信息学竞赛,虽然并不算特别顶尖,不过也拿到了北大预录取的资格。到了大三,我开始打acm的竞赛。其实当时很佛,也没有太多训练,更多的是基于爱好,不过icpc和ccpc还是都拿到了金牌。
从大厂到量化,幻方的面试让我印象深刻
大三的时候,我去了一家互联网大厂实习。那份实习给我的感觉,就是“只是一份实习”,更多的是体会了一下大厂的氛围。
在同学的安利之下,我了解到了幻方。他告诉我,幻方工作内容很有趣,办公的环境氛围也很不错,我就试着投了投简历。
幻方的面试,如果想靠短期突击准备,是没那么容易通过的,更多的还是靠平时的积累。幻方考察的是你武器库里的真刀实枪。一般的应届生,工程和技术运用的经验都比较少,应付大部分的面试,都是去背网上八股文式的面经。大多数情况下,只要稍稍复习一些专业课书本上的知识,看看网上面经,加上自己本身就有着不错的算法基础,都可以通过面试。
但这一套,在幻方是行不通的。幻方的面试更注重考察你是否深入掌握了知识,浮于表面的理解是没法糊弄的。有些问题,需要你自己亲手尝试过,理解了内部实现的结构和原理,或者有相关的前沿知识,才能答得比较漂亮。再加上面试官有很强的技术能力,你是否口胡很容易被看出来。
另外,面试中的算法题,也都是很新颖、很有意思的,而不是leetcode中被反复炒冷饭的题目。总而言之,幻方面试的考察是很到位的,而且也有一定的难度。 通过面试,拿到幻方的实习offer以后,我甚至没有等原来实习公司的转正答辩,就直接来幻方入职了。
在幻方,迅速成长
其实来幻方之前,我完全不会python,对机器学习也是一窍不通,更没有技术工程上的细节的处理、和别人合作写好代码之类的经验。这些我都是从零学起的。
好在我的组长和mentor非常耐心,技术水平又很高,总能给我非常关键的指点,耐心地帮我解决问题。
除此之外,组长根据我打acm的经历,为我私人化定制了了工作内容,设计了更匹配的岗位:模型和算子优化。怎么让代码跑得更快,节省下时间,使机器运行更多的任务。
优化算子是一件很奇妙的事情。刚接触这份工作的时候,我发现只要把一行代码做一些小小的修改,就能将这行代码的性能提升三倍。于是,我去查看了它的源码,才发现虽然这两句话看起来只差了一点,但内部实现相差非常多。
后来我在优化算子的过程中,有一次我写的代码和市面上标准的PyTorch库相比,一开始我只能做到80%的性能,但通过我慢慢地优化,把性能5%、5%地往上提升,最后我写的平均性能可以达到标准库的130%。这个过程给我留下的印象真的挺深刻的。
在幻方工作,最直观的感受,就是**“快”。在幻方,我写的代码,马上能被用上,很快就会在模型、算子上有所体现,这是比较有成就感**的;而以往实习,我的代码往往要经过一层一层包装,才会有向外的呈现。
另外,在幻方,即便你只是一个实习生,也有充分solo展现的机会。除了一些团队合作的工作,我还能够全权负责一个自己的模块。我周围的人,无论是写代码的速度,还是思考的能力,都是强得离谱,这也是我切身的体会;因此,团队合作过程中,讨论时也只要稍稍一说,大家就都能明白对方的思路,交流丝毫没有障碍。
独立负责一个模块后,我在技术上的进步更快更明显了。在大厂,我什么都要了解一点,但都不专精;之后再用到这块知识的时候,由于以前学的不够深入,还得从头复习一遍才能运用,会浪费很多时间。而在幻方,我可以自主把控节奏,也不用花太多精力在副线上,技术水平提升会很快。
量化公司非常注重技术上的细节,比如性能、代码的准确度。我们公司一直希望能把性能做到最top的级别,对标的内容也都是现有的开源代码中最好的那部分。在幻方,我很迅速地成长起来。短期内,我学会了很多工程代码规范和特殊命令,这些都让我从一个学生慢慢蜕变为职场人,也拿到了转正offer。
拿到转正的机会后,我决定留在幻方。除了公司的薪酬、日常福利好到没话说之外,我能感觉到在幻方,自己的技术提升很快。另外,对北漂多年的浙江人来说,杭州这座城市非常宜居。对了,幻方还拥有强大的算力资源,研发效率直接拉满,训练还没开始就结束,完全不用等的体验真的很不错。
虽然还没有毕业,但我已经以正式员工的身份加入幻方大家庭啦!