谈谈怎样提高炼丹手速

文 | 夕小瑶

最近搞定几件焦头烂额的大事后,终于有了一丢丢的时间来写写文章,并且偶尔思考下算法工程师的核心竞争力是什么。

前不久一时兴起写了篇标题党文章《惊了!掌握了这个炼丹技巧的我开始突飞猛进》,简单描述了一下我的升级打怪路线图。后来想了想,发现还有一点极其重要的基本功常常被大家忽略,但确是初级&中级算法工程师之间拉开差距的重要因素,那就是:手速

手速有什么用呢?

假如一件事情工程量较大(大型实验 or 策略pipeline复杂 or 从0到1单纯的代码量大),那么别人整整一周才能完成的工作你两天就做完了,于是你就多出来了5天的时间去刷刷paper、或者冥(fa)想(dai),于是你就成了一个有灵魂的打工人(有时间自我提升了!还能储备套路和灵感!)。

换个视角,假如你手速不行,大家预期你两周能完成的工作,实际你做了三周,这就会导致你陷入到了“不断赶ddl”的节奏怪圈和产出焦虑中,不仅失去了成长和灵魂,还可能失去生活和女朋友!哪怕你曾经是个聪明的小机灵,也会由于疲于赶ddl而失去思考的机会。

再比如,假如一件事情风险很大(成功后收益当然也更大),对正常人来说是不敢尝试的,毕竟谁都不想怒肝五天后发现是个代码全废的失败idea,于是周报上:“本周无进展,只有个失败的尝试”。

于是,大部分人只去尝试一些确定性强的有收益的事情,当然这类事情也很难带来大的惊喜和差异化,而手速快的你就有资本去尝试这类风险较高的操作(毕竟失败了你也没耽误主线进度),于是你就相比其他人有了命中高收益事件的可能性

短时间内,这个 “灵魂收益”+“高收益事件命中收益” 可能看不出太大意义,但长线下去就会引起质的差异。毕竟“文能创新写paper,武能光速肝产出”的小可爱在职场中是相当稀少的,绝大部分人仅有其一,而当两者兼备时便能产生奇妙的化学反应,取个五毛钱的名字,叫做“核心技术差异化”。

get了手速的重要性,接下来就谈谈怎么提高炼丹手速。

提高炼丹手速

最重要的是工具层面的基本功:

  1. 熟练掌握主力编程语言(比如python)。不是单纯的记住语法就叫熟练了,还包括常见的写法优化、代码效率优化、高频代码段的光速实现、光速修报错(常见python层报错还靠Google的话建议面壁)等。

  2. 熟练掌握shell,积累替代python代码段的奇技淫巧。带过几个实习生,发现实习生手速慢的其中一个重要原因是普遍不熟悉shell这种high-level脚本语言,经常管道黏几个命令就能搞定的事情,实习生往往要花几十分钟写一坨python代码,还效率极差,数据规模一大就尴尬。

  3. 熟练掌握主力深度学习框架。这里不是说必须要去深究框架层源码细节,而是说要对框架底层运行机制和常用API的行为有非常清晰的把控,如果还能做到框架能力覆盖面(哪些功能/操作这个框架实现不了,或者实现代价高,甚至有bug)方面的把控和大版本差异化点方面的了解,那就更好了。这会在你尝试一些比较有脑洞的想法,或者快速验证一些fancy但闭源的论文idea时有很大的帮助。如果你想实现一个操作却不知道这个框架有没有API支持,那就说明对这个框架的了解还不够。

这种工具层面的基本功怎么提升呢?没有好的捷径,那就是多写代码,尤其是主导研发万行代码以上的项目,会非常锻炼你的语言/框架基本功。如果没有这种机会,也可以偶尔抽出些精力去重构实验项目代码,提升其易用性和灵活性。

再说说积累和习惯问题

为每种经典算法任务都积累一个重构的不错的完整、易用、灵活的project,这种project就是将来你完成其他相近project的热启动project。由于这个project是经过你的手重构的,所以二次上手成本和魔改成本会远低于你去找个外部的github repo。

以NLP为例,基于传统cnn/lstm的文本分类、文本匹配、序列标注、自回归生成、阅读理解基线project,基于BERT的分类匹配标注阅读理解MLM project,离散检索&向量检索project,离散聚类&向量聚类project,serving project,知识蒸馏project,多feature ensemble,多任务学习project等都可以根据自己实际需要抽时间折腾重构&沉淀,亲测上手新任务时还是非常省心省力省时间的。建议大家业余抽点精力将自己工作内容相关的project时不时的重构、打磨一下,一年后做类似的project时你会非常感激自己当年的勤劳的!

最后说一些不建议频繁尝试的提高手速的奇技淫巧:

再次警告下,不建议频繁尝试!否则后果自负!

  1. 咖啡。在非常困和非常精神的时候就别考虑了,在微困和微乏时就是效率神器了。强烈建议不要喝太浓的、太劣质的和太甜的。如果发现出现眩晕、头皮发麻、焦虑、注意力不集中或易出汗等现象,就说明这杯咖啡对你来说太浓了,或者太劣质了;如果喝完没有任何感觉,反而更想睡觉了,说明糖加多了或者太劣质了。另外,熬夜后第二天千万不要喝咖啡,强行提神很容易造成免疫系统异常(生病、过敏甚至影响很长一段时间的精神状态)。

  2. 换个环境。当前所处环境干扰较多(尤其是非背景白噪声的干扰,比如时不时有人说话、手机提醒音、有人来回走动甚至戳你聊会天)时,找个没人的会议室/角落可以大大提升注意力。长期未被打断的沉浸式做一件事情时,人的注意力状态/效率大概是蓝色线,长期处于敏感干扰较多的环境中时,人的效率大概是红色线。当然,一人占用会议室是浪费公共资源,且乱换环境也有被怀疑摸鱼的风险,所以虽然可以大大提高手速,但是尝试要慎重。

  3. 扔掉手机,屏蔽聊天工具通知甚至直接退出(后果自负。。。

  4. 隐藏mac docker栏/windows 通知栏,营造沉浸式开发环境(后果自负

若想再进一步,就是研究一些高阶的时间管理技巧了,统筹规划下自己的时间碎片和事件列表,尤其当N多线条并行推进时,若缺乏必要的时间管理能力和意识,很容易丢三落四、将事情搞得一团糟并且导致自己无暇炼丹,更不必说手速了。这方面又能写一篇文章了,大家感兴趣的可以自行去知乎做做功课,这也是打工人进阶的必备能力!

好啦,本期分享就到这里了,大家有什么困惑或者想听的经验分享也可以在评论区留言,下期分享的锦鲤主题可能就是你!没抽中的小伙伴也不要难过,下次一定!

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | 神经协同推理

论文笔记整理:叶橄强,浙江大学计算机学院,知识图谱和知识推理方向。Paper link: https://arxiv.org/abs/2005.08129Github link: https://github.com/Scagin/NeuralLogicReasoning背景:推荐任务推荐作为一种认知智能任务&#xff…

在服务器上安装anaconda遇到的问题总结

1 安装anaconda需要一些安装包,需要提前备准备好,比如bunzip2, gcc编译等软件。 cd /anacondaRElyanacondaREly文件夹下放了anaconda所依赖的安装包,切换到该路径 rpm -Uvh *.rpm --nodeps --force安装好anaconda 需要的依赖环境…

LeetCode 693. 交替位二进制数(位运算)

1. 题目 给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。 输入: 5 输出: True 解释: 5的二进制数是: 101输入: 7 输出: False 解释: 7的二进制数是: 111输入: 11 输出: False 解释: 11的二进…

全栈深度学习第6期: 模型测试和部署

一起追剧鸭简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目,通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。Berkeley深度学习追剧群目前已有1000小伙伴加入,公众号后台回复口令 深度学习追剧 入群。…

开源开放 | 欧若科技通过 OpenKG 开放 Nebula Graph 图数据库

开源工具名称:Nebula Graph贡献者:杭州欧若数网科技有限公司 Nebula GraphOpenKG 链接:http://openkg.cn/tool/nebula-graph-database 谣言盐水漱口能预防感染?钟南山院士团队公开辟谣:「盐水漱口有利于…

pkuseg-python的postag.zip在不能联网的服务器上的解决办法

关于pkuseg-python的基本介绍和使用: pkuseg.pkuseg( postag True)时,会触发download.py文件的下载命令,从github中下载,进而会导致服务器报错,如下 进而在pkuseg文件下打开download.py和__in…

数据库的方向 - 行vs列(转自: IBM i 中国开发团队)

转载地址:https://www.ibm.com/developerworks/community/blogs/IBMi/entry/database?langen 原文链接:http://ibmsystemsmag.blogs.com/you_and_i/db2/ 数据库的方向 - 行vs列 如果你是一位数据库专家的话,这篇博客可能帮不了你什么。 …

Android自动化页面测速在美团的实践

背景 随着移动互联网的快速发展,移动应用越来越注重用户体验。美团技术团队在开发过程中也非常注重提升移动应用的整体质量,其中很重要的一项内容就是页面的加载速度。如果发生冷启动时间过长、页面渲染时间过长、网络请求过慢等现象,就会直接…

NLP领域的首次Hard Label黑盒攻击!

文 | 阿毅编 | 小轶背景前段时间已经和大家分享了两篇关于NLP Privacy的文章。今天,我们又来给大家推送优质论文了(公众号学习法)。其实,NLP与其他方向的跨界结合这段时间层出不穷,且都发表到了非常好的顶会上。目前有…

论文浅尝 - ACL2020 | 利用知识库嵌入改进多跳 KGQA

论文笔记整理:吴畏,东南大学硕士研究生。来源: ACL 2020论文地址: https://www.aclweb.org/anthology/2020.acl-main.412.pdf开源代码: https://github.com/malllabiisc/EmbedKGQA动机在多跳KGQA中,系统需要对KG的多个边缘执行推理以推断出正…

MCI:移动持续集成在大众点评的实践

一、背景 美团是全球最大的互联网生活服务平台,为3.2亿活跃用户和500多万的优质商户提供一个连接线上与线下的电子商务服务。秉承“帮大家吃得更好,生活更好”的使命,我们的业务覆盖了超过200个品类和2800个城区县网络,在餐饮、外…

LeetCode 260. 只出现一次的数字 III(位运算)

1. 题目 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。 示例 :输入: [1,2,1,3,2,5] 输出: [3,5]注意: 结果输出的顺序并不重要,对于上面的例子, [5,…

没有什么多模态任务是一层Transformer解决不了的!

文 | 子龙曾几何时,多模态预训练已经不是一个新的话题,各大顶会诸多论文仿佛搭上Visual和BERT,就能成功paper1,VisualBERT、ViLBERT层出不穷,傻傻分不清楚......这些年NLPer在跨界上忙活的不亦乐乎,提取视觉…

论文浅尝 - KDD2020 | 真实世界超图的结构模式和生成模型

论文笔记整理:毕祯,浙江大学硕士,研究方向:知识图谱、自然语言处理。链接:https://arxiv.org/abs/2006.07060动机图已被用作对人或物体之间的成对关系建模的强大工具。而超图是更广泛概念的一种特殊类型,其…

LeetCode 1122. 数组的相对排序

1. 题目 给你两个数组,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 示…

老板让我用少量样本 finetune 模型,我还有救吗?急急急,在线等!

文 | ????????????????编 | 王苏今天介绍的是一篇 NAACL21 新鲜出炉的工作!NAACL 上周四出的结果,这篇工作本周一上传 arxiv,周二被王苏小哥哥发现,周三拜读了一下,今天就来和大家分享啦!&…

如何基于深度学习实现图像的智能审核?

背景 美团每天有百万级的图片产生量,运营人员负责相关图片的内容审核,对涉及法律风险及不符合平台规定的图片进行删除操作。由于图片数量巨大,人工审核耗时耗力且审核能力有限。另外对于不同审核人员来讲,审核标准难以统一且实时变…

论文浅尝 - WSDM2020 | QAnswer KG: 基于RDF数据设计一个可移植问答系统

论文笔记整理:谭亦鸣,东南大学博士。来源:WSDM 2020链接:https://link.springer.com/chapter/10.1007/978-3-030-49461-2_251.介绍知识图谱问答(KGQA)系统的目标是:基于自然语言问题,从RDF数据集中抽取对应…

LeetCode 868. 二进制间距(位运算)

1. 解题 给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离。 如果没有两个连续的 1,返回 0 。 输入:22 输出:2 解释: 22 的二进制是 0b10110 。 在 22 的二进制表示中,有三个 …

Kotlin代码检查在美团的探索与实践

背景 Kotlin有着诸多的特性,比如空指针安全、方法扩展、支持函数式编程、丰富的语法糖等。这些特性使得Kotlin的代码比Java简洁优雅许多,提高了代码的可读性和可维护性,节省了开发时间,提高了开发效率。这也是我们团队转向Kotlin的…