Jeremy Howard眼中的深度学习框架之争:为什么PyTorch赢了教学与研究
正在加载视频...
视频章节
Jeremy Howard结合自己多年教学与研究经历,回顾了从Theano、TensorFlow到PyTorch与fast.ai的技术演进。他直言框架设计如何直接影响研究效率、新手学习曲线,以及整个生态的未来,并对Swift for TensorFlow给出了冷静而独特的判断。
Jeremy Howard眼中的深度学习框架之争:为什么PyTorch赢了教学与研究
Jeremy Howard结合自己多年教学与研究经历,回顾了从Theano、TensorFlow到PyTorch与fast.ai的技术演进。他直言框架设计如何直接影响研究效率、新手学习曲线,以及整个生态的未来,并对Swift for TensorFlow给出了冷静而独特的判断。
从Theano到PyTorch:研究效率被框架设计彻底改变
为什么深度学习框架的“编程模型”如此重要?Jeremy Howard给出的答案非常直接:它决定了研究者能否像正常程序员一样思考和试错。他回顾了fast.ai团队的技术迁移路径——最早使用Theano和Keras,随后转向TensorFlow,再到PyTorch,最后构建了PyTorch之上的fast.ai库。这不是“追新”,而是被现实不断逼迫的结果。
早期的Theano和TensorFlow采用的是“静态计算图”模式:你必须在运行前一次性定义好整个模型的计算流程,然后再把数据喂进去执行。Jeremy形容这种方式“很难教学,也很难做研究”,因为你无法逐步调试、无法交互式探索,更谈不上在Jupyter Notebook里像写普通Python代码那样实验新想法。
PyTorch的出现,是一次根本性的转折。它选择完全拥抱Python的动态执行方式,让研究者“先写能跑的代码”,再由框架在后台决定什么时候、如何把计算放到GPU上。Jeremy明确表示,这种方式带来了“巨大的飞跃”,尤其是在研究和教学中。像DAWNBench这类需要快速反复试验的研究,如果还停留在静态图时代,几乎不可想象。
PyTorch的代价:灵活背后是新手与研究者的负担
但Jeremy并没有把PyTorch神话化。相反,他点出了一个常被忽略的问题:原生PyTorch对新手“几乎不友好”。你需要自己写训练循环、管理梯度、处理大量样板代码,这对初学者是巨大的门槛;对研究者来说,也意味着大量时间被消耗在工程细节上,而不是算法本身。
fast.ai正是在这个背景下诞生的。Jeremy团队构建了一个“多层API”的库:在最高层,三行代码就可以训练一个最先进的神经网络;往下,每一层都允许你逐步深入,直到接近底层的机器控制级别。他强调,这种设计不是为了“偷懒”,而是为了让人把注意力放在真正重要的问题上。
这种思路已经被现实验证。Jeremy提到,fast.ai不仅被学生广泛使用,还帮助许多人赢得大型学习竞赛、发表学术论文。这不是抽象的理念,而是直接改变了结果的工具。
Python的天花板:当性能开始反噬灵活性
即便如此,Jeremy依然认为当前主流工具存在根本瓶颈,而这个瓶颈正是Python本身。特别是在循环神经网络等需要频繁动态控制的场景中,只要你想“改变点什么”,速度就会慢到不可接受。
正因为如此,fast.ai团队已经开始尝试使用Swift进行部分研究和教学实验。Jeremy非常清醒地判断:这条路至少还需要三年才能真正实用,但他并不着急。他更关心的是长期潜力,而不是短期回报。
他甚至已经透露,目前已经有一个“初级版本”的fast.ai计算机视觉库运行在Swift之上。这背后的动机非常明确:他认为“Python版的TensorFlow根本不可能解决这些问题”,甚至直言这是“一场灾难”。
对TensorFlow的尖锐批评:技术债正在吞噬未来
在这段访谈中,Jeremy对TensorFlow的评价异常直接,甚至可以说毫不留情。他认为TensorFlow 2.0试图通过Eager Execution模仿PyTorch的交互式体验,但这只是“语法糖”,并没有重构底层运行时。
结果是:在执行同样一步计算时,TensorFlow往往比PyTorch慢一个数量级。Jeremy强调,真正的成本不仅是运行时间,更是开发者的心理成本——当实验慢十倍,你根本不愿意去尝试新想法。
他还特别点名了TF Data系统,认为它“混乱且低效”,而这部分设计又与TPU的历史包袱密切相关。在他看来,TensorFlow已经积累了巨大的技术债,除非彻底推倒重来,否则很难恢复竞争力。
Swift for TensorFlow:希望、现实与大公司的冷漠
Swift for TensorFlow在Jeremy眼中是一个“潜在的完全不同物种”。它可以直接构建在LLVM之上,利用成熟的编译器技术,从根本上解决性能和可组合性问题。
但他同样指出了现实障碍:Swift几乎没有数据科学生态,社区长期缺乏对数值计算的理解,甚至在性能相关决策上“连续多年做出愚蠢选择”。改变的契机,来自Swift之父Chris Lattner加入Google并推动Swift for TensorFlow。
至于Apple,Jeremy的态度相当冷淡。他直言Apple几乎没有表现出对数值计算的重视,其底层库“既不Swift,也不好用”。不过,Swift for TensorFlow至少提供了一条过渡路径——它可以直接调用Python代码,甚至让fast.ai的课程Notebook在Swift环境中运行。
总结
Jeremy Howard的核心观点并不复杂:框架不是中立工具,而是塑造思维方式的基础设施。PyTorch之所以成功,不只是性能或生态,而是它尊重了人类思考和试错的方式;fast.ai的价值,也不在“封装”,而在解放认知负担。至于未来,他并不急于押注某个赢家,而是愿意为真正解决问题的技术投入时间。对学习者而言,框架会变,但理解这些取舍背后的逻辑,才是真正不会过时的能力。
关键词: PyTorch, fast.ai, TensorFlow, Swift for TensorFlow, 深度学习框架
事实核查备注: 人物:Jeremy Howard;节目:Lex Fridman Podcast Clips;框架:Theano、Keras、TensorFlow、PyTorch、fast.ai;技术概念:静态计算图、Eager Execution、GPU、TPU;公司:Google、Apple;时间点:视频发布于2019-10-06