码农不容易! 我这十几年一直在学习,停都停不下来!因为互联网技术发展真的造化弄人:上学那会儿,老师说C++有前途,因为大多数的企业都用它来写服务器程序;过了两年突然原来这个世界是Java的,遂挑灯恶补Spring。然而,技术永远在诞生新的“概念”(就要玩死码农),hadoop又出来糟蹋我们的青春了(所以真正爱学习的程序员哪有时间去蹦迪),“大数据”吞噬了我们的“小时间”。 就在最近,很多人又开始慌了!各种技术前言的新闻都在露出一个似乎新的技术领域词汇“联邦学习”。没有办法,为了“保值”或者“升值”,程序员必须去了解和学习最新、最火的技术。


人才很稀缺

一个较新的行业领域,我习惯先看一下这个行业的人才市场。了解方式也不难,可以打开猎聘、拉钩、boss等招牌网站,搜索一下“联邦学习”、“多方安全计算”、“隐私计算”、“加密技术”等你想了解的关键词,基本上可以反映这个行业的薪水情况、哪些公司在做或者筹备、人才的要求及层次等。下图是我汇总了一部分企业招聘信息: 总体看下来,目前普遍处于招聘研究员为主,出价在50-100w年薪之间,学历要求普遍较高,资深一点的都需要研究生以上的学历。从岗位描述上基本上都在机器学习算法、联邦学习、多方安全计算等相关的技术上需要有比较深的认知。这些招牌单位有BAT这样的大厂,也有富数科技、华控清交这样的创业独角兽,还有银行、数据公司、汽车平台,甚至家喻户晓的抖音!就猎聘上的这些联邦学习人才缺口来看,涉足的公司还是很有代表性的。

为什么联邦学习人才很难寻觅呢?联邦学习我个人更觉得像一门边缘学科的交叉工程学,第一、需要具备比较深入的算法能力,比如掌握机器学习和加密技术的相关算法,包括算法的实现;第二、需要具备比较成熟的工程底子,比如掌握编程语言和分布式架构,包括c++、python,甚至spark等;第三、如果要突破瓶颈,可能还需要其他支撑的工具及技术,比如CPU等。可以想象,若要吸纳一个联邦学习的资深工程师,实在不易。年薪三五十万的工程师,普遍掌握的是比较片面的服务端架构技术,或者是比较纯粹的机器学习建模算法。但是,联邦学习所要做的工作,很大一部分工作量是在用分布式和加密等思路重写机器学习的算法(我们聊的很长时间都发现,会算法的不会工程、会工程的难以理解算法),很重要的瓶颈在联邦学习分布式算法的新能提高上,那么问题来了,能解决性能问题,又是一个工程挑战巨大的难题!

年薪有百万

请允许我粗略地来估算一个联邦学习架构师级别的身价:如果他能兼顾算法和工程,那么,我觉得年薪100w不算高。第一、架构师需要精通机器学习算法(这部分值30W);第二、架构师需要精通算法工程和平台服务工程(这部分值30w);第三、架构师需要精通分布式架构、先进的开源技术应用,需要为性能负责(这部分值40W)。这三个比较核心的技术素养如果缺其一,所主导的联邦学习平台,都可能是有缺陷的。有这样的技术见识、项目经验、学习能力的架构师,普遍可能都在7年以上。独角兽企业一定需要明白,如果要搞联邦学习这个项目,不是靠堆人口,而是需要复合型高精尖的人才,不然缺一些技能一不小心会成为“独脚兽”,面世的产品四不像。

大厂通常用高额年薪招揽人才,小作坊通常需要再付出期权的代价。腾讯微众蚂蚁这些普遍都50-100,而像富数科技这样的创业公司,普遍以员工持股的方式激励。(大厂还是小厂对码农来说,是眼前拿多点、还是未来可能拿更多的区别。)个人还是比较喜欢拿VC的创业公司,因为“当前的自由度、未来的不确定性”才是能增加男性荷尔蒙最好的激素,难道不是吗?我很建议如果你做联邦学习,给自己一个去创业公司尝试的机会,因为这个领域目前各家在同一起跑线上,你是背着一个沉重的行囊,还是一个轻便的背包在跑,肯定是后者跑的快嘛。

团队需配置

从微众、腾讯、神盾、蚂蚁金服、富数科技、华控清交等头部联邦学习平台机构分析得知,他们能站到第一阵营推出自己的计算平台,在团队配置上都有一个共同点:在算法人才上投入很大,科学家、博士后、博士级别的人数占比不低,但是在工程化上似乎都处于不太高的水准。表现出来的是各种开源版本的使用繁琐、上手困难、新能不高(抛开联邦学习算法上制约的新能而言),数据样本规模一超过十几万就表现的各种问题且极其慢(难道就没有一些更好的工程技术来优化吗)。我敢肯定的一点是大多数的科学家、博士后、博士更擅长的是理论和学术研究,擅长的是算法本身,至于具体要工程落地写成代码,其实未必是最懂或者说最合适的。这里面涉及到的工程问题很复杂,包括技术选型,就拿联邦学习最常用的算法逻辑回归来讲,到底是如何解决分布式迭代与通信才是效率最高的?编程语言用java、python还是c效率会最好?某个字段定义成float还是double?这层循环可以去掉吗?……是不是可以用CUDA编程在CPU实现一些并行逻辑?Spark框架可以重写一个SparkFL吗?大规模的ID预处理是不是可以用离线技术来做集群化处理?至于计算任务分布式调度是否可以用类似于ZOOKEEP来做?数据文件切片的颗粒度如何寻找最优解?很多工程上的问题,是不是可以用过往的集群技术和芯片技术来做生产优化。众所周知,企业级联邦学习的工程之路才刚刚起步,至少目前我看国内这几家联邦学习平台表现出来的性能和稳定性上,都还处于比较初级的版本阶段,有的甚至还只是出于理论阶段。

团队配置上,我还比较建议配置一组有联邦学习知识素养的销售和交付,因为它最终是要面向市场的,是要面向客户做交付实施的,如果连技术解决方案都讲不清楚,那何谈卖的出去呢?很重要,这个市场的B端客户教育,很有可能指望联邦学习平台的商务经理了。

人才画像

有一次一个做大数据的网友“知乎”我,因为看了我的联邦学习的相关文章,他说“我是做大数据的,如果我想进入联邦学习这个领域,需要学哪些”。我一开始写了一大段一个联邦学习工程师需要具备的技术技能,后来我没有直接发,因为我觉得这不太适合,这些只是我个人对技术的理解,如果我的要求过高,那可能会误导并引起一个试图进入联邦学习领域的有为青年的极度不适。我想了想,于是这样回答:“很高心您对联邦学习感兴趣,有一句话说的很不错——联邦学习是数据行业的最后一公里,我以前也是做大数据的,所以,我们这样的身份如果要做联邦学习是很顺其自然的,关键是再储备和整理一些关于机器学习算法和分布式架构方便的技术知识,然后把市面上仅有的几家联邦学习平台拿过来,自己体验体验,问题不大。”

case 2 ,这是一个偏工程(数据中台)的招聘需求: case 3 ,这是一个偏商务(售前)的招聘需求:

抓住机遇,面对疾风吧

强烈建议工作之余有时间的同学可以储备一些联邦学习这个行业的知识和技能,因为这个趋势很不错,国家政策层面明确说明数据是生产要素之一,数据需要开放和共享,又需要保护数据安全。放眼看去,互联网的技术发展到今天,联邦学习是目前最好的技术解决方案,如果日后成为数据流通的标准,那谁掌握了这门手艺,有可能你也就成为当红“艺人”了。高层次的人才年薪百万,对于联邦学习未来的行业需求来说,并不是空谈。要知道,这是一个当前极度疯狂的技术领域!请各位客官把握好时代的机遇,面对疾风吧。