目录

工作两年

目录

工作两年

不知不觉已经工作两年了,一天天下来感觉充实而苦闷,充实是每天其实都能感觉自己在变强,很多的知识会扑面而来,如果不学就会自然落后了。苦闷是工作的确会比较累,休息的时候都是待在家里睡懒觉,特别是疫情之后,也不能回学校划船,唯一的活动就是在江边跑步。两年下来,的确积累了一些感触吧,也跟大家分享一下。

关于工作,在开始的时候主要是负责一些深度学习算法的落地,不过因为是直接面对客户的数据,没有像一般的机器学习算法比赛那样的干净的准备好了的数据,很多时候客户的数据还不是一下给完,不定期来一份我们需要清洗打标一份,感觉会比较锻炼人。有时候指标真的上不去,需要跟客户沟通,没办法一个模型完成所有东西的,需要另外使用其他像 opencv 等的工具设定规则去补足,然后性能速度没有达到要求的自己需要找瓶颈位置(譬如 ctpn 实现的连接文本块的方法需要正向一次反向一次匹配,我们发现这块性能比较差,然后使用并查集优化掉,这部分提速70%),成功交付下来,感觉还是应该 make hands dirty 一点。这期间也在提升了自己对整个深度学习领域的认识,不同框架的特点,模型部署,模型压缩,分布式训练等,可以说也强化了自己对一些计算机不同领域的认知吧。

我自己参与交付了几个项目之后,可能公司感觉这样子做解决方案项目效益不是很高吧,很多的项目定制化太高,没办法沉淀下来,项目就没有继续接了,我们也开始做了一些产品化的尝试,包括尝试沉淀一些通用的解决方案什么的,不过数据还是太缺了,整体效果不是特别好。后面 TL 说可以尝试结合一下 k8s 的东西,把机器学习的能力集成在平台上。我自己没有想太多就答应了,这是自己的看法哈,一个是其实深度学习到现在,其实是有一些疲软了,两年前是YOLOv3,现在YOLOv4v5 还能成为新闻,证明的确没有太多的新知识进来,更多 paper 更像精密设计的灌水。然后好的研究看着论文金钱的气息就扑鼻而来,基本上留给小作坊可以摘的果子不多了。不过论文数量还是井喷式上升,有时候会觉得如果把比较不好的一半论文所花费的钱拿去打标一个大型公共数据集可能对学术的贡献反而更强,真心这样想~~ 另外,我自己也非科班出身吧,这些系统相关的知识的确是我所欠缺的,补足一下让深度学习研究的子弹飞一会,过段时间再来收割知识,应该是个好的选择,迄今为止我对自己跳出舒适圈的评价还OK。

我自己也就开始恶补k8s 的东西,开始看相关的资料,开始的时候会感觉有很多东西比较陌生,自己相当于一个kubectl/yaml 工程师,一些底层的东西没有弄得太懂。我自己会意识到可能是计算机基础太弱了,看到网上有人推荐《深入理解计算机系统》这书,买了回来每天下班回家看。感觉真的写得太好了,文笔很流畅,我很喜欢它相当于把我的知识结构串联起来的感觉。特别是从汇编讲到cpu架构,然后讲到具体的加法器乘法器等的门电路实现,再到存储的层次结构和虚拟内存,和编译器等。相当于把我大学期间跟计算机稍微一点点相关的知识(数字电路和c++程序设计)串联起来了。然后像存储的层次结构等的知识你大概可以理解为什么现在 k8s 上很多地方有cache,听过一个笑话,性能问题加一层cache和buffer 总能有效果,某程度上有那么一些感觉。有了系统相关的基础之后,因为自己有深度学习的基础吧,也去看了很多 gpu 相关的知识,一些多线程分布式等的内容,然后现在去看 k8s 相关的知识会感觉比较好理解。之前不是很敢看 TensorFlow,pytorch 等底层相关的代码,现在反过头来去看,可能还不能很清楚很多细节,不过大致上会有个概貌知道他们做了啥,cuda 相关的也可以大致读得下来。

5月份的时候吧,跟我对接平台后端的小哥离职了,我自己就想着自己知识应该还OK,就尝试去接他留下来部分的活,然后自己又硬着头皮去学了很多 go,http,网络编程相关的知识,现在大致上可以把派给我开发的活都接下来,虽然做了一段时间 k8s 的 CRUD 程序员,不过我感觉这些都是必须的,就像刚接触的时候,我自己甚至分不清 http/restful 的区别,现在算是比较熟悉公司的开发,冒烟,测试,发版的流程了。另外真不必妄自菲薄了,闻道有先后,术业有专攻,我永远相信很多参加过信息竞赛的中学生数据结构算法方面的能力比我强,不过感觉是投入的时间的确也比他们少,我除了求职的时候突击过算法之外,基本没有花太多时间,满打满算(算上看书看网课的时间)可能 300 小时左右,比别人差应该是理所当然的。可能有人会觉得视觉做得好好的,做这些会不会丢弃太多了,我自己还是觉得应该涉猎广一些,既然真的不懂就去学就好了,还是觉得更多的知识意味着更多的选择机会吧,要十年经验不是一年经验用十年对吧。相反,我还挺感谢组里的同事的,敢把后端这些东西直接就扔给我了,然后因为我们主要做 k8s,随便找一个同事就可以解答问题,学习起来还挺快上手的。

现在我还没有底气说我是一个系统工程师,我自己还是认为我自己是一个做视觉的,不过如果问我一个系统相关的问题我大概知道会跟什么知识相关,然后公司里找谁可以帮得上忙,然后我自己应该会能回答越来越多的问题,我应该也还会加油的~~。