为什么我不再从事算法的工作了?

点击量:1069

结缘

从我2016年接触人工智能到现在已经有三年多的时间了,启蒙学习来自于吴恩达在斯坦福教的那一门CS229机器学习公开课,我当时(2013年)看的并不是现在Coursera上的那一门机器学习课,而是一个画质很模糊的公开课视频。由于画质太渣,有些板书公式的推导看不清楚,似懂非懂。但是,当时就有一个巨大的疑问一直浮现在我的脑海里:“机器到底是如何学习的?”带着这个疑问,2017年开始我就在Coursera开始正儿八经的学习机器学习了,不得不说Coursera上的那门《机器学习》真的很适合入门,比周志华的西瓜书好太多了,学完之后又去学了《深度学习》系列,整体而言难度并不大,用到的数学80%都是高中数学。

2016年下半年我就有了出国留学的打算,主要想法是工作了两三年觉得重复性的工作太无聊了,没什么激情,想趁着年轻出去看看外面的世界。当时选定的三个国家和地区是香港、新加坡和英国。英国想去的学校(比如帝国理工啥的)学费太高,伦敦地区的租房又很贵,超预算;新加坡的NUS需要考GRE,而且offer来的太晚;而NTU则没有什么好的CS硕士项目;那么很自然地就来到了香港。其实,那时候并没有抱着能学到多少知识的心态去读书的,纯粹是为了向体验一把生活,放松一下。为什么这么说呢?因为你要知道CS相关的工作本来就不太需要硕士学位,一个好点的本科学位足够用了,大学里教授的那些理论知识很多跟实际工作是脱节的,而且现在是互联网时代,你想学什么网上没有呢?对吧。因此择校的时候就很简单,当看到科大宣传片里的无敌海景时我就缴械投降了,心想以后可以每天去学校跑步了,这海景操场实在太美了(事实证明我还是太naive了,科大的workload还是比较重的,基本天天跑图书馆,从来没有去跑过步,当然我们图书馆也很美^V^)。

HKUST有两个硕士项目,一个是BDT(Big Data Technology),另一个就是弱化版的CS:IT(Information Technology)。BDT是最近几年刚开的一个硕士项目,字面上是大数据,其实学的东西就是现在很火的那一套人工智能的,课程也类似,质量还是比较高的。那时候我也自学了一段时间人工智能,说实话,是有一些想转行的打算的,但当时没有申请BDT,主要还是不够坚决,对人工智能的发展前景看得不是特别清楚,想走一步看一步,于是就很保守地申请了IT。

后来到了科大之后,除了上IT的课之外,我还去旁听了好多BDT的课,甚至还有些UG的课。整个学习的重心都倾向于人工智能这一块,转行的意愿也约而来越强烈。

总之呢,通过Coursera的自学和科大的课程,算是把人工智能的整个脉络分支了解的比较透彻了,也诞生了现在的博客。

毕业时的选择

其实,直到2018年六七月份临近毕业找工作时,我对人工智能的发展前景依然不是很明朗,很多公司的招聘要求写的都非常高大上,各种高端的算法名词和工具集合,但他们到底在做什么呢?真的有那么多事情可以做吗?临近毕业时写下了如下的思考:

今晚看了几集杨澜拍的纪录片《人工智能真的来了》,很有感触。本来是想看看从一个媒体人的视角是如何看待AI的,看完之后发现虽然有那么一点点浮夸,但总体来说还是靠谱的。因为我熟悉各种AI技术的底层原理,所以一直觉得他们还太过愚蠢,根本谈不上智能。也因此,这一两年来我一直在徘徊:有时候觉得当下的AI不过是个巨大的泡沫;有时候仔细想想,又发现AI确实能有很多应用场景。到底是泡沫还是机会?一直举棋不定,直到今晚终于思考出了点眉目。
虽说目前的人工智能技术还远远未达到人们所想的那种“智能”的程度,但,不得不说,最近几年,各种新兴技术的发展,尤其是深度学习在几个重点领域取得的重大突破,已经深刻影响到我们生活的方方面面了!比如,语音识别,机器翻译,智能助手,图像识别,目标检测,人脸识别等等领域,机器的能力已经超过人类水平了!而基于以上这些底层技术的整合将会催生出很多有巨大想象空间的技术,最具代表性的就是自动驾驶。这个东西基本就定了,你不要还觉得很科幻,或者还觉得它只是一个实验室产品。因为技术上完全没有问题,剩下的是一些伦理、法规以及各种配套设施在拖后腿。目前来看,国家在政策层面是大力支持的,所以这些问题会很快被一一解决。其实仔细想想,除了自动驾驶还有很多行业是要被AI颠覆的,特别是那种严重依靠经验的职业,最典型的就是医生。大家想想,医生是如何诊断病情的?就是根据你的症状嘛。比如,你发烧,喉咙痛,乏力,流鼻涕;那医生就判断你很可能是感冒了。其实,医生诊断这个行为是一个非常典型的机器学习的过程:通过历史数据去学习一个模型,然后用这个模型去预测新样本。唯一不同的是,医生脑子里的模型是根据他这一生所学的知识以及他的诊断经历来学习得到的,但一个医生一生所能接触到病例数量是非常有限的;而机器则非常不同,它能学习这个世界上所有医生诊断过的所有病例样本,这种数据规模上的碾压使得使得机器在常见病的诊断上一定会做得比某一个医生更好。那为什么我们还没有看到AI在医疗诊断领域的大规模应用?我觉得一个非常大的问题可能是医疗数据的整合是十分困难的,也就是世界各地各大医院的各种医疗数据没有一个统一的标准组织起来,还有是因为一些隐私问题有些医院不愿意公开。但我相信在不久的将来,各国政府一定会推动这件事向前发展。还有一些更容易被取代的职业就不说了,比如收营员,高速公路收费员,股票交易员…
以上这两个例子都很美好,那是不是就说明人工智能真的就遍地开花了呢?很遗憾,我个人觉得并不是。
现在的AI技术都是大数据驱动的,没有数据扯AI就是挂羊头卖狗肉,忽悠人的,而小公司是很难获取到海量数据的,所以现在这块主要是一些巨头在竞争高地,发布平台,制定标准;还有一些专注于AI的创业公司做的也不错,比如第四范式,waymo等。而对于传统行业或者中小型公司来说,我觉得AI的影响是非常有限的。它并不能像互联网那样对行业产生深刻的变革,它更大的应用价值可能是可以解决一些不痛不痒的隐性业务需求,而这些对一个公司的业绩影响可以说是微不足道的。对公司管理层而言,还是要锚定公司的核心业务,不能盲目跟风,不能为了迎合AI热而去搞AI;对从业者来说,一定要认真思考你去的部门,所做的东西究竟是不是核心业务,到底能不能产生实际价值。否则,等这波潮水退去,这些临时成立的AI部门很可能就解散了。
——写于2018年5月6号,大浦仔村,香港

可以看出这些分析还是比较理性和客观的。

anyway,毕业回上海还是优先去找了人工智能的工作,差不多把上海大大小小的AI公司都面了个遍,也拿到了两三个offer,最后决定去一家金融科技公司做知识图谱相关的研发工作。

理想有多么丰满,现实就有多么骨感

为什么这么说呢?在这家公司呆了差不多8个月的时间,让我对当下一些高大上的人工智能创业公司有了更深刻的认识。具体地,涉及到很多隐私就不说了。

最后聊一聊为什么要放弃做算法。当初挤破了头不惜降薪也要进来,现在为什么又要走了呢?

  1. 缺少大规模,高质量的训练数据
    这几乎是很多小公司的死穴,无解。很多在学术界声称是已经被解决的问题,在工业届依然一筹莫展,为什么?就是因为大部分小公司连一份相对完美的数据集都拿不出来,你训练个啥子?光有牛逼的算法有啥用。
  2. 技术的局限性
    除了图像和语音领域的大部分难题被算法攻破,达到了商业落地的标准。其余的都无法达到商业落地的标准,或者说技术实现难度很大(缺少训练语料)。像一些NLP的问题,离完美解决还差十万八千里。你看到的一些看似非常智能的对话机器人要么是像Sophia那种很明显是假的,出来骗人的。要么就是很智障的那种。你对着机器说了一句话,你以为机器理解了你吗?你想多了,它的回复也只是看上去很智能,其实它根本不知道你在说什么。所以我说Elon Mask担心将来AI会使得人类灭绝完全是不懂技术式的杞人忧天,人类现在连自己是怎么思考的都没有弄明白,还谈什么造出来一个有意识的机器人,这不是搞笑吗?人工智能技术看起来高大上,实际上落地非常困难。一方面是很多公司缺少大规模、高质量的训练数据;另一方面是现有技术还没有成熟,13年火热起来的深度学习其实局限性也很大,它就像个黑盒子一样,研究员们只知道输入和输出是什么,但并不知道为什么会这样。以至于现在学术界的深度学习论文都是在比拼网络结构,至于为什么要用这种结构呢?不知道,反正实验结果不错,那就是有效的,然后再找一个看上去很reasonable理由反过来再去解释这个结构。这个其实是很不严谨的,至少在数学上要给出证明它为什么是有效的。所以一切基于深度学习的应用都很难说是安全的,这个问题很大。由于人工智能技术的不完善导致它所能创造的价值其实十分有限,很多岗位其实是不值得设立的,一旦经济形势不好,这批所谓的算法研究员最先下岗。即使在图像、语音这两个技术相对完善的方向也不需要那么多公司,最后只会剩下几家垂直做语音和图像的外包公司,以后AI is a service应该是趋势,也就是说做AI的就那么几家。大部分公司都不会有自己的AI部门,而是寻求外包,这样不仅效果好,成本也低。
  3. 人工智能究竟能创造多少价值?
    上面我们说了图像和语音是比较成熟的技术,除此之外的像一些NLP技术其实还很不成熟。比如,我们曾经做过一些命名实体识别的工作,搞了很多复杂的算法,标注了很多数据,最后发现,效果并不比简单规则的方式好多少。另一个例子是模型的准确度,比如一个算法团队辛辛苦苦搞了一个月,嗯,算法模型的准确度提高了1%。看上去不错是吧,在学术界这肯定是可以发一个不错的paper的,但是不好意思,在工业界,如果没有大规模的用户(很多小公司就是这样),这1%的改善所创造的价值几乎为零。然后,你就发现对于一个公司而言,他投入了大量的人力资源,最后产出在哪里?如果你的工作没有创造价值,那你的价值又在哪里呢?
  4. 算法的技术门槛在降低
    面试问来问去就那几个问题,问不出个所以然来,问各种算法模型的基本原理,比如让你推导SVM,其实特别像孔乙己中茴香豆有几种写法,实在没什么意思;其次,算法都是公开,主要区别就是数据集,你甚至都不用自己写code,调参都不需要。
  5. 学历的天花板
    算法的最大的领导必然是个博士。这几乎是无法改变的学历天花板,而小硕在这个赛道就是打杂的,很难混出什么名堂,何况我还是个授课型的硕士。所以我切换赛道简直就是以己之短博他人之长,毫无胜算,简直是把一手好牌打的稀巴烂啊。
  6. 市场逐渐饱和
    饱和的速度远比我当初想象地要快。我16年开始学机器学习的时候觉得人才是非常稀缺地,但是3年后的今天算法工程师已经烂大街了。
  7. 算法的市场需求太小
    我没有做过精确的统计,不知道确切的算法和开发的需求比例。但是一个很直观的现象就是:一个公司可以没有算法,但是绝对不能没有开发。所以算法的需求是很低的,这会导致一个很严重的问题:职场机会太少了,跳来跳去就那么几家,这就意味着你跳槽时丧失了议价能力,这是一件很可怕的事情。

当然也不是说算法就不能做,而是对于我这个半途出家的Java工程师而言已经没有机会了。一个是出来的太晚了,另一个是需要去大厂的核心算法组历练一段时间才行。目前看来是没有机会了。小公司做算法根本做不出什么东西,而大公司的算法坑位就那么多,想进去太难了。
那很多人就说了,你回去写Java就有前途了吗?其实你要明白一件事情:技术本身是没有价值的,只有结合了特定的商业模式才有它的用武之地。决定你发展的,不仅仅是技术本身,还有技术所服务的产品以及你所在的平台。只有产品创造价值了,哪怕你是写简单HTML的,你也能被惠及到,技术的难度并不决定你的发展高度。
从更大维度上来说,你最终这辈子能取得多大的成就,首先取决你所在的时代,然后才是你的努力。

为什么我不再从事算法的工作了?》上有18条评论

  1. 很合理,现在AI行业已经开始劝退了,大部分转进去做AI的又会转出来做开发。你的视野也很清晰,点赞

    回复
  2. 邓晨

    有些同感,现研二,实验室从事NLP研究,感觉除了机器翻译,其他方向不敢说未来不能落地,但至少离落地还很遥远,各个方向除了推出的任务和数据与实际数据相比有很大的限制不说,真正带来的功用可以说微乎其微,感觉NLP也许还需要十几年来发展吧。对于不想继续做研究的我来说,别说十年,就是五年也很珍贵吧,现在已经开始利用空余时间学习JAVA开发了,毕竟自己一个人摸索,JAVA开发学习之路也是道阻且艰。

    回复
      1. 邓晨

        最近实验室要做自己每个方向的综述Presentation,百度的时候看到了您之前写的关系抽取的综述,在侧栏看到了这篇文章,哈哈

        回复
  3. Turbo

    大佬好~下半年就研三了,由于专硕是两年半的学制,一开学就要准备毕业的相关事项。现在在一家算法公司实习,公司业务方向是图像视频,在学校的研究方向是量化投资,当初选择这家公司是觉得可以提高自己独当一面的能力。各大厂已经开始秋招,最近在投递简历和准备笔试面试。忽然发现很迷茫,因为简历上写的都是算法相关的,而大厂的算法就比较难进,投研发岗又觉得好像没有那些敲了几年代码的前辈强^(–.–)^
    PS:我是在搜NLP相关东西的时候看到您的文章的,然后顺藤摸瓜去了知乎看您的帖子,发现涉猎很广呀,希望以后也能像你一样做自己~

    回复
  4. Derry

    最后一段很实在啊,技术到底还是工具,创造价值永远在于使用工具的人,即产品 商业模式什么的

    回复
  5. Moretz

    有感触,准研一,NLP相关的研究生,大四毕业时候在一家小公司做算法实习,确实小公司对算法的需求并不是那么强
    ps:Google搜索核技巧的讲解找到这里(Google第一条就是你,属实有排面奥)

    回复
  6. iridiumcao

    刚刚看了李开复的《人工智能》,Google 找点资料,搜到你的 blog,然後逛逛,就看到你这篇文章。
    很多内容,我是赞同的。技术服务于业务。

    回复
  7. 磨刀老中医

    研一刚入学,本来是打算做NLP,并且把这个定位自己的研究方向,但听您这么一说还真的是有点动摇,分析的很透彻

    回复
    1. fanyy 文章作者

      如果想走学术路线的话,最好还是读个PhD吧。如果只是找工作,NLP也不是可以,就看你的实力了,实力很强也能拿到很好的大厂offer,只不过竞争激烈而已。

      回复
  8. wzc118

    作为应届毕业生瑟瑟发抖,还是进了算法这个坑,自己非科班,侥幸进了大厂,计算机基础不扎实,也不知道自己能走多高混多远。

    回复
    1. fanyy 文章作者

      应届生不用担心呀,一来你还年轻,有时间可以积累;二来我在文章里也说了,大厂还是有实际业务场景和数据去支撑算法研发的,好好积累不会差的。

      回复

Derry进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注