金磊 发自 凹非寺
量子位 | 公众号 QbitAI

刚刚,谷歌官方宣布了一条重磅消息:

Keras之父François Chollet,正式离职

Keras之父,离职谷歌

这篇文章由谷歌两位VP(包括谷歌刚挖来的华人Bill Jia)共同撰写,表达了对这位在谷歌长达9年零3个月的AI大佬,在工作上的认可及离职的惋惜。

从内容上来看,谷歌先是肯定了Keras这个深度学习框架目前取得的成绩——

已经成为人工智能发展的基石,用户数量超过200万,简化了复杂的工作流程,让尖端技术变得唾手可得。

并且这项技术已然得到了广泛地应用,从Waymo的自动驾驶,到YouTube、Netflix和Spotify的推荐等。

不过虽然François已离职,但他承诺将继续参与Keras未来的发展,还将继续支持JAX、TensorFlow和PyTorch上的工作。

而谷歌的Keras团队,则将继续与François的开源社区保持合作。

Keras之父,离职谷歌

至于François最新的动向,谷歌和其本人截至目前并没有透露。

而网友们对于François的离职却展开了一番激烈的讨论。

例如从Keras的发展现状来看,有人认为它在谷歌已经不香了:

我曾在某处看到,未来TensorFlow可能不会得到积极开发,谷歌内部转向了JAX;TensorFlow几乎已经输给了 PyTorch。

Keras之父,离职谷歌

针对谷歌在官宣中对Keras给出的评价,有网友表示:

若是在2018年,这是事实;但现在,PyTorch的受欢迎程度远高于TensorFlow,其中很大一部分原因与LLM有关。

Keras之父,离职谷歌

而从François个人动向方面来看,有网友猜测他可能被Anthropic挖了墙角……

Keras之父,离职谷歌

Keras:为人类设计的深度学习

Keras最早可以追溯到2015年,是由François发布的一个开源神经网络库。

它最初的目的是提供一个高级深度学习API,用来简化深度学习模型的构建和实验过程。

因为在Keras出现之前,深度学习开发通常需要直接使用底层库(如Theano),用户需要编写大量复杂代码才能构建一个基础的神经网络模型。

而Keras的出现可谓是改变了这一局面。

它通过模块化和直观的API让深度学习的构建流程大大简化,极大地降低了进入深度学习领域的门槛。

正如它官方给自己的定位那般:

为人类设计的深度学习。

Keras之父,离职谷歌

Keras一开始是独立于具体计算引擎的高级库,支持Theano、Microsoft CNTK和TensorFlow作为其底层后端。

在技术上,Keras采用模块化的设计,用户可以通过组合不同类型的层(如全连接层、卷积层、循环层)来快速搭建复杂的模型。

模型的训练、验证和测试过程通过统一的接口实现,开发过程可以说是非常顺畅。

Keras提供了Sequential API用于线性堆叠模型层,后来又引入了Functional API,来支持复杂的非线性网络结构和多输入多输出模型的构建。

这些特性让Keras不仅适合简单的原型设计,还能够应对实际生产中的复杂需求。

Keras之父,离职谷歌

但随着TensorFlow的快速发展,二者之间的关系变得越来越紧密。

到了2017年,Keras被谷歌选择成为TensorFlow官方的高级API。

在TensorFlow 2.0于2019年发布之后,Keras完全集成到了TensorFlow中,成为其默认的模型构建工具。

这标志着Keras从一个独立的高级库转变为TensorFlow的一部分。

这样做的好处当然是有的。

首先,Keras可以无缝调用TensorFlow的底层功能,从而提供更高的性能和可扩展性。

其次,TensorFlow提供了诸如GPU加速、TPU支持、分布式训练等高性能特性,整合后的Keras也能够轻松利用这些特性。

这种转变不仅增强了Keras的功能,还使得它更适用于生产环境的大规模应用。

Keras之父,离职谷歌

然而,随着整合的推进,Keras作为独立库的角色逐渐淡化,tf.keras成为TensorFlow官方高级 API,也成为深度学习社区的标准选择之一。

除此之外,作为深度学习框架演变的缩影——TensorFlow和PyTorch之间的竞争,也一定程度上波及到了Keras的发展。

PyTorch是由Facebook AI Research在2016年推出。

它的核心优势在于动态计算图(Dynamic Computational Graph),可以让代码执行得更加灵活,开发者可以像编写普通Python代码一样进行模型的构建和调试。

相比之下,早期的TensorFlow采用静态计算图(Static Computational Graph),尽管执行效率较高,但在模型开发阶段的灵活性和调试便利性方面逊色于PyTorch。

这种技术差异使得PyTorch特别受到研究人员的青睐,尤其是在实验和快速迭代等工作中。

为了缩小与PyTorch在灵活性方面的差距,TensorFlow 2.0引入了与其类似的动态图功能,通过Eager Execution和 tf.function 提供了更为灵活的开发体验。

这一演变使得TensorFlow在保持高性能优化的同时,也具备了PyTorch式的开发灵活性。

但此举似乎并未完全弥补与PyTorch在用户体验上的差距。

Keras之父,离职谷歌

当然,Keras这边也是在不断迭代优化。

例如在去年年底,Keras发布了3.0版本,被誉为改变了机器学习游戏规则

不仅支持TensorFlow、PyTorch、Jax三大框架作为后端,还能在它们之间无缝切换,甚至混合使用

François当时在自己的社交账号中概述了这样做的四大好处,包括:

  • 始终让模型获得最佳性能
  • 解锁多个生态系统
  • 在开源社区扩大影响力
  • 使用任何来源的数据pipeline

Keras之父,离职谷歌

不过即便如此,像Cohere机器学习总监Nils Reimers也给Keras敲了个警钟:

希望历史不要重演。

Reimers认为,Keras最初从支持单个后端(Theano)开始,陆续添加了Tensorflow、MXNet和CNTK等多后端。

这引发了一系列问题:

  • 某些功能只在特定后端可用
  • 各个后端的计算结果存在不一致:在一个后端上运行正常的代码,在另一个后端可能产生不同结果
  • 对于开源软件开发者来说体验糟糕:你刚完成了一个自定义的 Keras层想要分享?你是否愿意为其他后端重新实现和优化它呢?
  • 调试问题:代码在一个后端上表现完美,但在另一个后端的最新版本上却频繁出错…

随着时间推移,这些问题愈发严重:某些模块只能在 Theano 上运行良好,某些只适用于Tensorflow,还有一些模块可以在MXNet上进行推理,但无法训练…

我希望这一次的多后端能有更好的表现,但这无疑仍是一个挑战。
80后法国AI大牛

提到Keras之父,François Chollet这个名字在AI圈里可以说是家喻户晓。

他出生于1989年10月20日,从履历上来看,他在2012年取得巴黎综合理工学院工程硕士学位之后,并没有选择继续深造,而是前往美国就职。

François先后分别在FreshPlanet和Thunder分别担任软件工程师机器学习架构师;最后于2015年加入谷歌,直至今天。

Keras之父,离职谷歌

在与国外知名访谈博主Lex Fridman交流过程中,François也回顾了Keras诞生的故事。

在2014年,那时候最受欢迎的深度学习库还是用C++编写的Caffe(贾扬清出品),当时Caffe要比Theano更受欢迎。

而到了年底,François突然对循环神经网络产生了浓厚的兴趣。

当时,这还是一个相对小众的领域,于是他便开始寻找适合的工具进行探索。

在参与Kaggle比赛期间,François尝试了诸如Torch7和Theano等工具,也使用过Caffe,但当时Caffe并没有提供理想的循环神经网络解决方案,例如缺少可重复使用的开源LSTM实现。

于是乎,François便有了一个想法,自己动手构建一个框架。

他最初的想法是主要集中在LSTM和RNN的实现上,且使用Python来编写。

期间一个非常重要的决定是——模型将通过Python代码来定义。

这可以说是与当时的主流想法是背道而驰,因为像Caffe、Theano这样的库通常使用YAML等静态配置文件来定义模型。

但其实有些库是用代码定义模型的,例如Torch7(但不是Python)。

而在François此前的工作实践中,scikit-learn这个开源深度学习库深得他的心意,因此他从中获取了大量的灵感。

用他的话来说就是,Keras几乎就是为神经网络打造的scikit-learn。

Keras之父,离职谷歌

有意思的是,Keras这个名字,还是François他在发布当天临时定下来的。

并且François还坦言:

几个月后我加入谷歌,其实跟Keras没有任何关系。
我当时加入了一个研究团队,专注于图像分类和计算机视觉领域,因此最初在谷歌的工作主要是进行计算机视觉研究。
刚加入谷歌时,我接触到了TensorFlow的早期内部版本,它吸引我的原因在于它是Theano的改进版。那一刻,我就意识到必须把Keras移植到这个全新的TensorFlow上。

而后,也就是有了Keras与TensorFlow集成的故事。

Keras之父,离职谷歌

至于除了这次离职的动作之外,François上一次步入大众的视频,还是一次访谈。

在这次访谈中,他表示打算用100万美元搞AGI竞赛

至于原因,是因为他觉得现有的AI技术,尤其是LLM,主要依赖于记忆和模仿人类数据中的模式,在新情境下的新推理和技能获取方面表现不佳。

其实早在2019年,François就提出了ARC-AGI ——唯一衡量AGI能否有效获取新技能并解决开放式问题的评估标准。

目前,最好的AI系统在ARC基准测试中的得分为34%,而人类包括儿童在内均能轻松得分85%。

因此ARC Prize鼓励开源合作,以提高新想法的产生率,增加发现AGI的机会,并确保这些新想法得到广泛传播。

Keras之父,离职谷歌

至于François下一步的动向,量子位也将继续保持关注。

参考链接:
[1]https://developers.googleblog.com/en/farewell-and-thank-you-for-the-continued-partnership-francois-chollet/
[2]https://news.ycombinator.com/item?id=42130881
[3]https://time.com/7012823/francois-chollet/
[4]https://en.wikipedia.org/wiki/Fran%C3%A7ois_Chollet
[5]https://www.linkedin.com/in/fchollet/
[6]https://keras.io/keras_3/