FAIR 田渊栋:从工程师到管理者,是让个人能力 scale 到团队中

阅读数:2974 2019 年 3 月 16 日 08:00

FAIR田渊栋:从工程师到管理者,是让个人能力scale到团队中

本文为 Robin.ly 授权转载,文章版权归原作者所有,转载请联系原作者。

采访视频地址: https://youtu.be/BZpOs8QMLCg

下文是采访的文字整理。

Alex:我个人比较关注田博士的职场生涯,先是做研究,现在做研究管理。众所周知,田博士是知乎上的网红,他在网络上发表了很多文章讲述过去的研究经历。我特别希望能了解他的心路历程。田博士在 NIPS2017 年发表了 ELF(ELF: An Extensive, Lightweight and Flexible Research Platform for Real-time Strategy Games)的论文,请问你当时做这个研究平台的初衷是什么?

田渊栋:初衷是能让内部和外部都能更快地开始使用 Reinforced Learning (RL) 一类的算法。RL 目前的问题是,大家有很多不同的算法,每篇文章都认为自己是做得最好的,但这样使对比变得非常困难。第二个问题是 RL 很难上手;这跟传统上做 image recognition 区别很多。假设要做一个分类器,比如在 ImageNet 上做更好的成绩,即使一个对技术不是很了解的业余人士也可以从网上下到一些代码直接跑起来,并且可以通过一些修改得到更好的结果。这个过程上手非常快。但是像强化学习 RL,上手就比较慢,因为需要花不少时间在平台和系统的搭建上,或者让性能提升上。这其实是一个非常大的问题。我自己也想有一些 hands-on 的经验,能够构建一个这样的系统,对我自身未来的发展有力——出于这两个原因我去做了这个研究平台。

Alex:你认为 Reinforcement Learning 的研究难点在哪里以及未来的方向是什么?

田渊栋:现在 RL 有很多难点。RL 跟 supervised learning 相比,RL 的方向可以做得非常多。现在只是刚刚起步。比如,现在 RL 的方法其实并没有脱离《Machine Learning》这本书的范畴,可能唯一的区别就是把以前 reinforcement 做了 30 年的工具,换成了 function approximate,或把如何估计值函数和策函换成了神经网络,然后就又火了一波。但其实有很多问题还没有解决。比如说如何使析出性在析出了 reward 的情况下有更好的性能,如何去探索这个世界,如何对这个世界建模,形成一个 model base 给 RL,如何做层次式的推理,如何做 planning。我相信这个方向以后会有很大的发展,但现在大家做的只是刚刚开始。

Alex:不知道你有没有关注 Google DeepMind 在这个领域做的很多投资,他们希望把这方面产业化。你怎么看他们在产业化这方面的努力?

田渊栋:我相信他们最近能产业化的就是 DeepMind HealthCare。我听说最近 Google 准备 take over 这个部分,当然内部具体的工作我们都不清楚。产业化这方面,我认为可以在围棋或国际象棋等棋类项目上展开——Google 内部应该有一个比较好的国际象棋的软件,就是 AlphaGo Zero,但一直都没有公开。其实国际象棋界这方面也受到了很多人的质疑,认为 Google 用 AlphaGo Zero 的算法训练出来的软件跟传统的国际象棋软件相比有差距。如果 Google 可以公开软件,跟人类最强的国际象棋选手或者说软件相比,应该会有很多有意思的事情发生。我相信他们在 Healthe Care 领域有一些策略,但 目前为止我没看到他们把产品跟 RL 结合起来的意向。

Alex:今天的题目叫 Games as the Vehicle of AI,你怎么看 game 在 AI 进步这方面的价值?你创造了很多 game 相关的东西,你怎么看待你的作品?

田渊栋:Game 是 AI 一个非常好的平台。因为在游戏里,第一是有无穷无尽的数据可以用。数据非常重要,基本上是 AI 的生命。对于一个神经网络 / 模型,如果不用数据去训练它,完全不行。像最近的 BigGAN,可以生成一个非常清楚,非常好的虚拟的图像,但不是真实的照片。一个很大的共性就是用比原来的方法,比其他文章多一个 magnitude,多十倍的数据去训练系统,从而得到一个更好的结果——这是其一。另外从传统上看,解决图像分类的问题,不管用什么样的方法,只要有足够的数据总是能够让运行效果更好。所以数据非常重要,所以 reinforcement learning 如果没有数据也更难做。游戏其实是一个很好的环境,通过这个环境把数据标定的问题转化成一个游戏环境模拟的问题。那模拟的问题就不再需要人去标定,这样的话可能需要计算资源,类推就可以了。这在很大程度上减少了负担,是一个非常重要的点。另外,游戏其实跑起来比正常的摄影要快得多,可以不停地跑。比如 robotics,因为 robotics 一个 simulator 不太好做,所以很多时候还是需要真的机器去抓东西。像 Google Robotics,可能需要十几台,几十台这样的 robots 在里面抓,然后把抓到的 experience 存下来,放在一个存储库里面训练。这都是因为目前没有足够的数据去训练,所以游戏在这部分的优势很明显。

Alex: 像无人车这种仿真也是使用了类似的方法吧?

田渊栋:我希望是这样,但是无人车仿真,需要量化怎么去建模人和人之间的关系,怎么样去建模人和车之间的关系。因为行人的预测或者说行人的行为方式不可控,在模拟的过程中可能会有一些偏差,这是个很大的问题。

Alex: 大部分 engineer,都经历过一个角色的转换,从 ic(individual contributor)到 team leader 或者 manager,你现在作为一个团队领导,怎么看当初从一个 individual contributor 到一个 manager 的身份转变?有些人会有一种常见思路,当了 team leader 之后感觉不舒服,因为以前自己能做的事情现在还得去教别人,还不如自己做更快。你怎么看?

田渊栋:我觉得这是一个很磨练人的过程,对人的思维方式和思考问题的角度有一个很大的提升,非常重要。开始时,我也觉得组里的人怎么做这么慢,要不我来吧。但这其实不好,首先组里的人觉得你做得很快,那他 / 她的升职空间受到了阻碍——

Alex: 有挫折感?

田渊栋:对,有挫折感,另外就是不可能一辈子所有事都是你自己来做。和人合作以后,整个能力 scale 的扩展程度可以非常大。一个人一天毕竟只有 24 个小时,即使不吃不喝不睡,也只有 24 小时做事情。如果和别人去讨论去合作,最终找到一个合作的点,大家都会很开心。其实周围的聪明人很多,跟别人合作就会发现他的 idea 和你的 idea 之间是互补的关系,或者它们之间是一些相互促进的关系,从而意识到合作的重要性。这样可以让一个人去撬动更大项目,或者说更大的方向,这是非常重要的一个因素。当然我自己还是会尽量去写 code,还是会经常去做一些一线的工作,但同时也要意识到,不可能一个人包办所有的工作。像这个 OpenGo 的 project,一开始的代码 90% 是我写的。写完之后等到团队的士气带起来,大家发现这个方向真的可以做出来。我就放手了。虽然大家不知道能不能够复现谷歌的结果,但已经士气高涨——谷歌游戏当时的结果大家都觉得很难做出来,但依然实现了。我写代码其实是起到一个带动的作用,大家看到了有效果的苗子,自然而然就会有人愿意去真正从头到尾把它做出来,这就是很重要的带动作用:让很多人愿意为了这个项目去花时间花力气做好。

Alex:我的理解是,这个过程是如何把自己的个人能力 scale 到你的团队,使得团队更强,能够做更大的事情?还有一个比较 challenging 的问题:从大概 2016 年后,AI 创业的浪潮非常猛烈,国内很多 AI researcher 都去创业了,为什么你没有去创业呢?我作为一个投资人也很想听听你的想法。

田渊栋:我认为现在是一波 AI 的 hype,对于 AI,大家的期望值高于 AI 实际的能力,所以大家都在做 AI。有一句话说得很好,如果大家都在做这个事情,就不要做这个事情。我在知乎上还曾写过一篇文章,讲“我们要给 AI 泼冷水”。业内人都知道,AI 现在并不是特别厉害还有很多问题。像无人车,我离开的时候给整个组发了封信,说我觉得我们每个人都像一个 neural,然后 back-propagation,我认为这个事情不能这么做——没有人回复我的评论。那时候是 2014 年,我认为这是一个大问题,我觉得我应该去做 AI,但不应该去做一个 neural 投资自己的作用。这其实也是我对自己的角色定位。既然已经看出了问题,我当然也不会去赶这一波。因为最好的创业环境是这样:等大家都觉得这个东西做不出来的时候,你发现有一条路是可以走出来,那才是最好的机会。当然这个时候可能现在还没到。作为像我这样接触过一线科研的研究员来说,每天都要看很多文章,了解技术行业的最新进展,比如,每天有一篇 arXiv 的 paper 上来,马上就拿来看一下有没有问题——把 arXiv 当成新闻来刷。这样的经历使得我们比别人更有直觉,知道什么样的东西可能有效,什么样的东西可能无效。也就是说第一线知识是在我们这根线上,等到我们发现这东西有效,再过一点时间发现可以做出来。随后慢慢大家都会看到这个方向是对的,之后我们再给大家 code,大家就会知道具体怎么做。所以我们这边应该是一个最敏感的前线。

Alex:我认为田博士是典型的管理思维。我自己长期在中美两地跑,在中国看到的情况会不太一样。比如说靠谱的 AI researcher 普遍认为目前 AI 有很多不靠谱的工作。但是,凡是碰到的 startup founder 基本都认为 AI 无所不能。其实我认为这种现象是合理的,因为在中国这个市场,很多人实际做的是挂羊头卖狗肉的事情,比如技术是 featuring AI,但是做的产品是整个全流程的 solution。我有 AI,但是我卖的是 solution——这个跟硅谷的思路完全不同。硅谷希望找到一个 cutting-edge technology to enable 这件事。而中国可以说,如果有一个 AI 的 medical imaging 技术,将做出来的 solution 直接卖给医院,所以更关心的是要借这个机会去占领市场。这些创业者从 VC 那边拿到很多资本,所以可以打败传统做 IT solution 以及做医院解决方案的人。例如安防的 micro image,虽然很多公司是 AI 或者 featuring AI,但实际上做的是整套产品。所以我想从 basic 角度来看,中美市场有不同的特点,毕竟中国市场有很多东西依然比较空白。这是我对田博士的观点的一个补充。

田渊栋:对。 虽然现在我有一部分时间在管理上,但是我总体还是比较偏技术,还在扮演着 tech leader 这样的角色。比如说给大家一些 career path advice,或者说做一些 management 跟大家协调一些工作。但总体比较偏技术,跟 business 还是没有太大的关系。

Q1:田博士你好,我在自动驾驶行业工作。请问你对 Inverse Reinforcement Learning 怎么看?

田渊栋:Inverse Reinforcement Learning 是一个分支,就是说怎么通过已有的 human demonstration,比如说人会给一些展示,把这个问题做好,然后通过展示人的一些 demonstration,反过来去推环境里边的 reward,dynamic。我当时跟 Chelsea Finn 聊过一次,她跟我说这个其实不太好做,因为 Inverse Reinforcement Learning 的主要问题就是它的 frame work reinforcement 这个 reward 到底怎么 assign 到其他各种不同的地方,这个 assignment 其实随机性很大。此外,Assign 之后还需要训练一个新的 reinforcement model, 你做 Inverse Reinforcement Learning 你会发现,它有一个 double 的 for loop。里边的 for loop 就是现在的 reward function,我们先要求我们最后的 policy 是什么,然后外面的 for loop 就是给定现在的 policy 找到一个好的 reward function。因此它的计算量很大,所以没有那么好做。有些时候可能还不如直接做 imitation learning,比如说自己 define 一些简单的 reward 就可以了。这个方向现在也在发展中,所以还是要关注一些文章,也许会有一些新的解决方法出现。

Q2:田博士你好,我也是无人驾驶领域的——我发现你最近很多文章都跟这个有关。上周你有一篇文章非常火,主要关于 Waymo 的老大公开认为无人驾驶不行。你以前也在 Google 工作过,我想问一下你对这个的看法。你已经离开 Waymo 5 年了,在做 Reinforcement Learning,我想知道你现在回头去看,认为 Reinforcement Learning 对无人驾驶有没有一些新的帮助?谢谢!

田渊栋:我认为对无人驾驶帮助最大的不是 Reinforcement Learning,而是 Deep Learning。因为有了 deep learning 之后,很多问题——比如行人检测,比如预测对方车辆行为或者车道预测——都变得更容易做了。而且所有的方法都有同一个框架可以用,这是一个很大的 boost。我个人觉得 RL 到目前为止对无人驾驶并没有那么重要。因为无人驾驶其实是一个非常特定的方向,比如让一辆车怎么样右转,那么右转的话,需要对这个车有非常好的了解,这样才能明确方向盘往哪边打多少,车会往哪边走。所以要求建立一个非常精确的模型,用这个模型可以做想要做的任何事情。这个时候并不需要 reinforcement。Reinforcement 还有一个问题就是数据量需要很大,但是无人车现在最大的问题就是数据量不够。可能开了几千英里,但是大部分数据都没用,有用的是那些马上要出事但还没出事的数据。因此,现在我觉得 RL 现在更大的用处是在一些不是很敏感的领域,比如说广告或者 application 以及做优化。在这些领域,RL 会是一个更靠谱的应用方案。无人车领域应用 RL 目前还是比较难,需要先把对神经网络的理解加深,然后再去想做 RL。

Alex:关于无人车 Waymo 的话题,我也比较关注。我 echo 下田博士之前讲的那句话——如果大家都这么认为的话,你可能要想一想为什么。整个资本界对于无人车的态度很热,SoftBank 投了很多钱给 Cruise,Honda 也投了大概 1billion 左右给 Cruise,Waymo 自己也买了大概有 8 万到 9 万辆的车去改装做无人车。投入估计起码在 3billion 美元以上。美国市场现在显然是 Google 和 Cruise 在 lead,而且更多资本还在不断投入,甚至开始 double down,下重赌注进去。所以他们讲的话,你可以大体忽略不计,因为 Waymo 自己作为 top 的公司可以说“你们后面的人不要做了,我自己做就好了,但不要当真。因为你要看他们在做什么,而不是看他们说什么。他们自己投了几个 billion,把整个 balance sheet 放上去去投资,并且没有进行外部融资,已经说明了问题。实际上大家已经选择了这个领域,发现了这个领域可以改变,所以已经在跟着下重注。至于这个事儿最后能否做成,谁也不知道。但是资本界是这样一个状况。

Q3: 但是市场的变化并不代表技术的变化。很多时候技术的难关并不是因为市场资本的操作就能够改变的吧?

Alex:对! 我从一个行外人士是这么看的:第一波出来做 AI 创业的人都是 AI 的 researcher,大部分是在学校里或者是企业里做 AI research 的人。他们中很多人一开始做的是 AGI,就是 artificial general intelligence,希望做出一个 AI 可以做任何事情——语音识别,无人驾驶,图像识别等等。但是做了一段时间以后发现不奏效,然后他们发现有些领域可以做,比如做安防里边的识别,无人驾驶里边的内容,或者是自然语言处理。投资以后发现某些领域可以继续发展,就在这个可以继续的赛道上投更多的钱。所以并没有说这个东西在技术上是实现了还是没实现,技术上是否实现只是相对现在而言,只是对于某个问题来讲是可以还是不可以。现在大家开始知道某个领域可能 work,所以开始产业化。产业化的时候,很多公司开始 narrow down 到一个很小的领域里,比如从个人助手细化到了客服。举个例子,买了手机之需要激活号码,这么简单的事情其实要花费很多的人力,但如果用 AI 做就很容易——这个就是所找到的某个细分领域。这个不是技术问题,而是关于大家怎么看这个问题,怎么样选择用对的技术去解决的问题。当然对做技术的人来说,要 grasp a big problem,需要时间。像无人驾驶这样的问题就非常难,但是它的市场诱惑力太大——万亿美元的市场,所以大家愿意继续投下去。

田渊栋:对,我这边的观点还是比较偏技术的,Robin.ly 那边就比较偏 business 一点。所以大家各取所需。

Q4:田博士你好,我有两个问题。第一个是,在 Facebook FAIR research team 内部,你们的 research 和 development 是怎么样的一个周期?包括 FAIR 跟 Facebook 自己的 Applied Machine Learning engineering team 是怎么合作的?

田渊栋:这个要具体问题具体分析。首先项目周期是什么,项目的周期很随意,没有特别严格的说半年一定要有东西出来。我的感觉是,基本上从开始立项到有一些初步结果需要至少半年——这只是一个 rough number,无论做的快慢还是一开始有多少雄心壮志,总是需要有这样的一个时间去摸索。一般来说可能要花半年,然后做一篇文章或者几篇文章出来,接下来就看这个方向到底对不对,可不可以继续往下走——像 Planning 的话我们内部是半年 evaluate 一次,所以也会按照这样一个时间去考虑什么样的项目可以做。第二个关于合作,还是比较随意一点。我们这边的 FAIR 其实是比较偏 research 的,还有一个部门叫 Applied Machine Learning,相对比较偏产品,但是彼此有很多合作,特别是在 vision。Vision 已经是一个比较成熟的方向,现在有 deeplearning,有 complement infrastructure,所以也很方便。比如 FAIR 的 vision 组做了一个很好的模型,那么同样的代码就可以直接 transfer 过来,可以在大数据上再跑一遍或者说微调一下,在产品上可以做 work。实际上是一个非常平顺的过渡,所以这种合作是非常常见的。RL 这边很多时候需要我们出个主意或者给个建议。

Q5: 会不会觉得 engineering team 有时候做得东西有点 low?

田渊栋:没有,我从来不觉得 engineering team 做的东西 low。第一,像 OpenGo 这个项目,本身 engineering 性质的任务非常重,但我不觉得花时间做 OpenGo 这个项目是浪费我的时间。我觉得这是一个非常重要的方向,我愿意花时间去探索。所以我不觉得 engineering work 是一个 second level。另外,现在 research 和 engineering 很多时候需要 merge,因为好的工作都是一个 good combination of research and engineering,Google 的很多工作就是这样。并没有说我们只要想 idea,然后下面的人干活就可以,这样对统一士气会有影响, 士气受影响会是一个很大的问题。如果希望别人 follow 这个方向,你就要展示什么叫 leadership,你得有他 / 她看不见的东西,或者说你能做别人做不了的事情,让别人觉得心甘情愿的认可你,要跟着你走而不是靠。这样的话才是一个很牢固的 relationship。

Q6:田博士, 我在 Nvidia 做 vision 的研究。在 vision 领域现在有一个方向是做人类检测,因为 vision 的很多项目有时候缺少数据,要先从 synthetic 的数据入手。所以要首先 train,然后 transfer 到 real 的数据上。我想问:RL 现在都用 GAN 做,就是用 synthetic 的数据做,那么这也面临了一个 domain transfer 的问题。那你觉得 RL 的 domain transfer 的问题跟一般 vision 的 domain tranfer 的问题有什么区别 / 不同?这个问题会不会更难解决,或者有什么特别的方法去解决这个 domain transfer 的问题?

田渊栋:我觉得这个是一个很好的问题,非常专业。主要包含两个问题。其实 RL 这边的 domain transfer 包含两部分:一部分是说图片要怎么样 transfer 过来,假设在 trainagent 的时候,用的是一个比较虚拟的环境,那么虚拟环境中图片的质量和真实世界中图片的质量不同。这个问题我认为不是特别难解决,我们大不了可以在 vision 这边先 pre-train 一个模型,这个模型的输出作为 RL 的输入,这样的话 tranfer 相对来说就比较容易。比较难的地方是 dynamics transfer。假设有一个 robot,这个 robot 有一个 simulator,但这个 simulator 跟现实世界的不一样,有很多现实世界的物理量或者物理过程没办法模拟,比如说一个机械手的摩擦力,每个地方的参数,这些值跟现实世界都不一样,跟虚拟世界也不一样。这种情况下一点点的参数改变就会导致整个算法的结果不同,这个是更难的问题。最近我们看到有一些 transfer 的文章,比如说 OpenAI 最近有一个机械手,train 了大概 50 天。主要用的是在一个 simulator 的 environment,生成了大量的机械手跟立方体互动的一些 trajectory,然后拿这个去训练。最后发现可以拿真的机械手把立方体转过来转过去,变换 orientation。做 simulation 的时候有很多地方要做 randomalization,比如说把机械手的一些 dynamics 做一些模糊化处理,或者加一些噪音,通过这种方式让整个系统变得稳定。这是目前为止比较可行的方法。文章里面有很多的 domain randomization,甚至包括考虑电池没电时候的 actuation,jointforce 强度会发生变化,这个也要做 randomization。把这些因素全都考虑进去,最后这个 model 才会有用。主要问题是没有办法降低 samplecomplexity,就需要大量的数据用大量的机器去跑。我记得 OpenAI 用了 5000 块 GPU,大概跑了 50 天,最后跑出来了。而 OpenAI Five 的人用了大概 12 万 8 千块 GPU 去跑。这个过程需要大量的 data 去堆,把那些不确定性,把那些 dynamics 上的 model 铺好的东西给砌平,然后才能 transfer。这是目前的情况,虽然希望有更好的办法,但是现在还没有。这也是大家都在努力的一个领域。谢谢大家!

Alex: 相信大家也想和田博士线下一对一的交流。我们的活动到此结束,感谢大家的关注。下一次活动将在 12 月 15 日,邀请 Google Brain Principal Software Engineer 吴永辉博士来分享关于 NLP 以及 Machine Translation 方面的内容,欢迎大家保持关注。

查看原文链接 https://www.robinly.info/blog/no-7-yuandong-tian- 田渊栋 -fair-robin-ly-livestreaming-event

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论