← 返回列表
Lex Fridman Podcast播客3 Jun 2019来源: lexfridman.com主持: Lex Fridman

Rajat Monga: TensorFlow

一句话导读

这篇访谈讲的是谷歌TensorFlow团队负责人Rajat Monga回顾这个深度学习框架的诞生和成长。他认为TensorFlow开源是科技行业的关键转折点,证明了开放创新能成功。他看好TensorFlow的未来,认为它能让机器学习运行在任何有计算能力的设备上。重点提了三个东西:TensorFlow本身(已累计4100万次下载,是全球最流行的框架之一)、Keras(被整合为TensorFlow 2.0的推荐接口,让编程更简单)、PyTorch(被视为有益的竞争者,它推动了TensorFlow更快改进)。

AI 摘要AI 生成 · 可能有误 · 以原文为准

本报告基于Lex Fridman对Google工程总监、TensorFlow团队负责人Rajat Monga的访谈,核心讨论了TensorFlow从Google Brain内部项目到开源生态的演进历程。关键观点包括:TensorFlow起源于2011年Google Brain团队(由Jeff Dean和Andrew Ng领导)的专有库Disbelief,2014年开源,这一决策被视为科技行业的里程碑,证明了开放创新的成功。早期成果包括与语音研究团队的合作及著名的“猫论文”(cat paper),证明了扩展计算和数据规模能提升模型性能。报告强调TensorFlow 2.0(当时处于alpha阶段

全文约 11 分钟 · 8 个章节
深度解读

本期速览

Rajat Monga,Google 工程总监、TensorFlow 团队负责人,自2011年Google Brain成立之初即参与其中。本期主线是TensorFlow从Google内部专有库Disbelief到全球最流行深度学习框架的演进历程,以及2.0版本的设计哲学。全片最有分量的判断:Monga认为,TensorFlow开源决策是「科技行业的决定性时刻」,它证明了开放创新可以成功,并激励了众多公司开放源代码("It showed that open innovation can be successful and inspire many companies to open source their code")。


一、从Disbelief到TensorFlow:规模化的早期验证

Rajat Monga认为,Google Brain最初的核心命题是「能否将研究中的深度学习,用Google的算力和数据规模化」——而这一命题在头一两年就得到了验证。

  • 历史脉络:2011年,Andrew Ng和Jeff Dean发起Google Brain项目,当时深度学习尚未爆发但已展现潜力。团队首先构建了专有库Disbelief,目标是「scale the compute, scale the data, it does better」。
  • 早期成果:两个关键胜利——与语音研究团队的合作,以及著名的「猫论文」(cat paper)。Monga回忆,团队很快将计算扩展到数百、数千台机器,甚至有过10,000台机器的运行记录。
  • 推演:这些早期成功让Google内部看到深度学习将「impact lots of things」,语音是第一个落地产品,随后是图像(Google Photos)及其他产品。到2014年,团队已确信「this is a big thing, it's going to grow」。

二、开源决策:从内部工具到全球生态的转折点

Monga指出,开源TensorFlow的创意来自Jeff Dean,背后有两个核心驱动力:推动研究进步,以及Google此前在开源上的教训。

  • 机制拆解:作为研究团队,Google Brain一直在公开发表研究成果,开源软件是「分享研究」的自然延伸。同时,Google此前有Hadoop等开源项目——这些项目基于Google内部技术,但开源版本远不如内部版本好。Monga说:「我们知道自己构建的技术好得多……但最终提供的是基于边缘的API,没那么好,但大家已经习惯了。」TensorFlow开源的目标是「做出更好的东西,真正帮助社区,同时推动一个良好的标准向前发展」。
  • 竞争格局:当时已有Theano、Torch、Caffe等学术项目,但「level was significantly different」——TensorFlow在文档、生产部署支持上明显领先。Monga承认,这些现有库的设计(如图形vs非图形、Python接口等)影响了TensorFlow的设计决策。
  • 数据支撑:TensorFlow于2015年11月开源,截至访谈时已累计4100万次下载。Monga坦言:「4100万?我当时绝对没想象到这个数字。」

三、2.0的设计哲学:简化、统一与向后兼容的平衡

Monga强调,TensorFlow 2.0的核心目标是「简化」——通过将Keras作为推荐API、默认启用Eager Execution,大幅降低入门门槛。

  • Keras整合的决策过程:François Chollet在加入Google前就创建了Keras,最初只支持Theano后端。他加入Google后先在研究团队工作,利用业余时间维护Keras。Monga团队发现「人们似乎喜欢这个API,而且他就在这儿」,于是借调他一个季度来做整合——结果这个「季度」变成了两年多。Monga说,社区一直抱怨「该用哪个API?」,2.0必须「pick one」,而Keras是社区最爱的那个。
  • 向后兼容的权衡:Monga承认2.0会破坏部分向后兼容性,但这是「tricky balance」。他提出一个设计原则:「当你想做新东西时,先以clean slate(白板)来设计,然后再想办法让其他东西兼容。如果你一开始就担心兼容性,永远到不了好地方。」
  • 技术挑战:TensorFlow核心仍然「large and monolithic」,团队正在努力将其拆分为更模块化的结构。Monga比喻这就像「给一辆飞驰的汽车换引擎」——系统已运行四年且仍在快速演进,改造难度极大。

四、竞争与社区:PyTorch的推动与开源生态的构建

Monga坦承,PyTorch的竞争加速了TensorFlow在Eager Execution上的进展——「如果没有PyTorch,可能会花更长时间。」

  • 竞争的价值:PyTorch专注于研究场景,「don't need to worry about graphs, let me just run things」。Monga认为这种竞争「definitely interesting」,促使TensorFlow重新审视Eager Execution,最终在2.0中实现了「graph + eager」的融合。
  • 社区构建的关键:TensorFlow已有50,000次提交、近10,000个Pull Request、1,800位贡献者。Monga总结成功要素:时机(与深度学习爆发同步)、倾听社区、接受外部贡献、提高透明度(RFC流程、特殊兴趣小组)。他说:「作为小项目很容易,但规模大了之后,需要把流程、文档、开发者工具都考虑进去。」
  • 生态愿景:Monga将TensorFlow的使命定义为「让机器学习运行在每一个有计算能力的设备上」——从数据中心到手机,再到极小的芯片。生态系统包括TensorFlow.js、TensorFlow Lite、TensorFlow Extended(TFX)、TensorBoard等,目标是让所有组件「work well together」。

五、团队管理与个人反思

Monga认为,在TensorFlow这样的超大规模项目中,「团队产出的乘积远大于个体之和」——即使是超级明星,如果伤害团队协作也是问题。

  • 招聘标准:除了技术能力,Monga特别看重「motivation」——候选人想做什么、是否与团队方向一致。「即使是初级工程师,如果他们没有动力做好手头的事,再聪明也很难成功。」
  • 最难的部分:Monga认为是「striking that fine balance」——速度vs完美、何时让社区参与vs何时自己做决定、何时说「不」。这些平衡决策往往是最难的。
  • 关于广告业务的反思:Monga曾领导Google搜索广告团队。他认为搜索广告是搜索的延伸——「目标是让信息可访问,广告则是让产品或服务可访问」。他强调Google有最低质量标准,不达标的广告不会展示,即使损失收入。他预测未来将是「免费+广告」与「付费」混合的模式。

提及的标的

标的 嘉宾态度 关键数据
TensorFlow(框架) 看好(核心产品) 4100万次下载,50,000次提交,1,800位贡献者
Keras 看好(已整合为2.0推荐API) 由François Chollet创建,最初仅支持Theano后端
PyTorch 中性(视为有益竞争者) 加速了TensorFlow Eager Execution的开发
TPU(Google定制芯片) 看好(与TensorFlow协同演进) 已到第3代
Google Cloud 中性(TensorFlow可运行在任何平台) Colab提供免费TPU使用
Theano / Torch / Caffe 中性(历史参照物) 学术项目,文档和稳定性不如TensorFlow

值得记住的判断

1. Rajat Monga:TensorFlow开源是「科技行业的决定性时刻」——它证明了开放创新可以成功,激励了众多公司开放源代码。支撑:Google此前有Hadoop等开源项目,但开源版本远不如内部版本好,TensorFlow的目标是「做出更好的东西」。

2. Rajat Monga:设计新功能时应以「clean slate」开始,再考虑兼容性——「如果你一开始就担心兼容性,永远到不了好地方。」支撑:这是团队处理2.0向后兼容问题的核心原则。

3. Rajat Monga:PyTorch的竞争加速了Eager Execution的推出——「如果没有PyTorch,可能会花更长时间。」支撑:TensorFlow此前已多次讨论过Eager Execution,但竞争压力促使团队最终下定决心。

4. Rajat Monga:TensorFlow的使命是「让ML运行在每一个有计算能力的设备上」——从数据中心到手机到极小的芯片。支撑:生态系统包括TensorFlow.js、TensorFlow Lite、TFX等,目标是让所有组件「work well together」。

5. Rajat Monga:团队产出的乘积远大于个体之和——即使是超级明星,如果伤害团队协作也是问题。支撑:在TensorFlow这样的超大规模项目中,个体能力有限,团队协作才是关键。

6. Rajat Monga:Keras整合是「一个季度变成了两年多」的故事——François Chollet最初在Google研究团队利用业余时间维护Keras,借调整合后就没回去。支撑:社区对「该用哪个API」的困惑是推动2.0统一API的关键动力。

7. Rajat Monga:TensorFlow核心「large and monolithic」是当前最大技术挑战——团队正在努力拆分为更模块化的结构,比喻为「给飞驰的汽车换引擎」。支撑:系统已运行四年且仍在快速演进,改造难度极大。

8. Rajat Monga:搜索广告有最低质量标准,不达标不展示——「即使损失收入,也不会展示低质量广告。」支撑:这是Google搜索广告的核心原则,广告被视为搜索的延伸而非干扰。