AI框架之战继续:TensorFlow也用上了动态计算图

简介:
本文来自AI新媒体量子位(QbitAI)

Google今天发布了TensorFlow Fold,利用动态计算图来解决因多个输入大小结构不同无法自然地批处理到一起,而导致的处理器、内存和高速缓存利用率差的问题。

你可能注意到了“动态”这两个字。

上个月,Facebook发布了开源深度学习框架PyTorch,让它广受赞誉的,便是“动态”这个特性。PyTorch采用动态计算图,比使用静态计算图的TensorFlow、Caffe、CNTK等框架更易于调试和推导,使用者在修改神经网络,比如说新加一层时,不需要像在其他框架中一样全部推倒重来。

当时,对PyTorch的溢美之词充满网络,我们甚至想知道Facebook此举能否撼动Google在深度学习框架领域的统治地位。

然而,云知声资深AI技术专家、NLP负责人刘升平博士对『量子位』表示,Beta阶段的PyTorch还缺乏一些关键特性,短期难以撼动TensorFlow的地位。另外,他还表示,框架的竞争还会继续下去。

(在公众号会话界面回复“框架战争”阅读我们对PyTorch的解读)

20天不到,TensorFlow已经追了上来。

“追上来”这种说法可能并不准确,在查看TensorFlow动态计算图的论文时,『量子位』发现这篇论文向ICLR提交的时间是2016年11月5日,比PyTorch发布还早了两个多月。可见“动态”是个好东西,它所带来的易用性,每个框架都想早早拥有。

在两家大公司先后涉足这一领域之前,就已经有很多“动态”深度学习库涌现出来,例如PyTorch的老师Chainer,卡内基梅隆大学的DyNet等。


接下来,我们看看Google官方对TensorFlow Fold的介绍。以下内容译自Google Research Blog,译者量子位+GNMT

在机器学习中,用于训练和推断的数据通常需要经过预处理环节,在这个环节中,多端输入的数据(例如图像)被缩放到相同的规格并堆叠成批。然后,TensorFlow这样的高性能深度学习库才能够在批处理的全部输入数据上并行运行相同的计算图。

批处理利用现代GPU和多核CPU的SIMD(单指令多数据)功能来加快执行速度。然而,在很多问题域中,输入数据的大小和结构都不同,诸如自然语言理解中的解析树,源代码中的抽象语法树,网页的DOM树等。在这些情况下,不同的输入具有不同的计算图,无法自然地批处理到一起,导致处理器、内存和高速缓存利用率都很差。

今天,我们发布了TensorFlow Fold来应对这些挑战。TensorFlow Fold使得对不同大小和结构的数据进行操作的深度模型更易于实现。此外,TensorFlow Fold为在这些模型中进行批处理带来了好处,与其他实现相比,CPU上运行的速度提高了10倍以上,GPU上提高了100倍。“动态批处理”使这些成为可能,我们在论文《带有动态计算图的深度学习》中有详细介绍。

 此动画显示了使用了动态批处理的递归神经网络。相同颜色的操作分批在一起,这使TensorFlow能够更快地运行它们。Embed操作将单词转换为向量表示;完全连接(FC)操作组合字向量以形成短语的向量表示;网络的输出是整个句子的向量表示。尽管我们仅展示了句子的单个解析树,但是相同的网络可以在任意形状和大小的多个解析树上运行并对操作进行批处理。

TensorFlow Fold库最初将从每个输入构建单独的计算图。因为各个输入可能具有不同的大小和结构,计算图也一样。动态批处理随后自动组合这些计算图,以利用在输入内和输入之间进行批处理的机会,并插入附加指令以在批处理操作之间移动数据(参见我们的论文的技术细节)。

要了解更多,请访问我们的github网站。我们希望TensorFlow Fold对于在TensorFlow中使用动态计算图来实现神经网络的研究人员和从业者将是有用的。

论文地址:https://openreview.net/pdf?id=ryrGawqex
代码地址:https://github.com/tensorflow/fold

致谢
这项工作是在Peter Novig的监督下完成的。


本文作者:李林
原文发布时间:2017-02-08
相关文章
|
4月前
|
人工智能 JavaScript 测试技术
Cradle:颠覆AI Agent 操作本地软件,AI驱动的通用计算机控制框架,如何让基础模型像人一样操作你的电脑?
Cradle 是由 BAAI‑Agents 团队开源的通用计算机控制(GCC)多模态 AI Agent 框架,具备视觉输入、键鼠操作输出、自主学习与反思能力,可操作各类本地软件及游戏,实现任务自动化与复杂逻辑执行。
476 6
|
3月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
1677 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
3月前
|
人工智能 运维 Java
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
本文基于Apache Flink PMC成员宋辛童在Community Over Code Asia 2025的演讲,深入解析Flink Agents项目的技术背景、架构设计与应用场景。该项目聚焦事件驱动型AI智能体,结合Flink的实时处理能力,推动AI在工业场景中的工程化落地,涵盖智能运维、直播分析等典型应用,展现其在AI发展第四层次——智能体AI中的重要意义。
1315 27
Flink Agents:基于Apache Flink的事件驱动AI智能体框架
|
3月前
|
人工智能 数据可视化 数据处理
AI智能体框架怎么选?7个主流工具详细对比解析
大语言模型需借助AI智能体实现“理解”到“行动”的跨越。本文解析主流智能体框架,从RelevanceAI、smolagents到LangGraph,涵盖技术门槛、任务复杂度、社区生态等选型关键因素,助你根据项目需求选择最合适的开发工具,构建高效、可扩展的智能系统。
923 3
AI智能体框架怎么选?7个主流工具详细对比解析
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:IndexTTS2–B站、HuMo、Stand-In视觉生成框架、Youtu-GraphRAG、MobileLLM-R1–Meta、PP-OCRv5
AI Compass前沿速览:IndexTTS2–B站、HuMo、Stand-In视觉生成框架、Youtu-GraphRAG、MobileLLM-R1–Meta、PP-OCRv5
334 10
AI Compass前沿速览:IndexTTS2–B站、HuMo、Stand-In视觉生成框架、Youtu-GraphRAG、MobileLLM-R1–Meta、PP-OCRv5
|
2月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
274 6
|
2月前
|
人工智能 并行计算 PyTorch
以Lama Cleaner的AI去水印工具理解人工智能中经常会用到GPU来计算的CUDA是什么? 优雅草-卓伊凡
以Lama Cleaner的AI去水印工具理解人工智能中经常会用到GPU来计算的CUDA是什么? 优雅草-卓伊凡
276 4
|
4月前
|
人工智能 自然语言处理 机器人
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
AI Compass前沿速览:Jetson Thor英伟达AI计算、Gemini 2.5 Flash Image、Youtu腾讯智能体框架、Wan2.2-S2V多模态视频生成、SpatialGen 3D场景生成模型
|
3月前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!