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
相关文章
|
15天前
|
机器学习/深度学习 人工智能 PyTorch
模型手动绑骨3天,AI花3分钟搞定!UniRig:清华开源通用骨骼自动绑定框架,助力3D动画制作
UniRig是清华大学与VAST联合研发的自动骨骼绑定框架,基于自回归模型与交叉注意力机制,支持多样化3D模型的骨骼生成与蒙皮权重预测,其创新的骨骼树标记化技术显著提升动画制作效率。
193 27
模型手动绑骨3天,AI花3分钟搞定!UniRig:清华开源通用骨骼自动绑定框架,助力3D动画制作
|
8天前
|
人工智能 自然语言处理 数据可视化
让AI单次生成4万字!WriteHERE:开源AI长文写作框架,单次生成超长文本,小说报告一键搞定!
WriteHERE是基于异质递归规划技术的开源AI写作框架,能动态分解写作任务并管理任务依赖关系,支持单次生成超过4万字的专业报告。
66 1
让AI单次生成4万字!WriteHERE:开源AI长文写作框架,单次生成超长文本,小说报告一键搞定!
|
15天前
|
人工智能 开发框架 决策智能
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
谷歌开源的Agent Development Kit(ADK)是首个代码优先的Python工具包,通过多智能体架构和灵活编排系统,支持开发者在百行代码内构建复杂AI代理,提供预置工具库与动态工作流定义能力。
151 3
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
|
18天前
|
人工智能 编解码 物联网
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
UNO是字节跳动开发的AI图像生成框架,通过渐进式跨模态对齐和通用旋转位置嵌入技术,解决了多主体场景下的生成一致性问题。该框架支持单主体特征保持与多主体组合生成,在虚拟试穿、产品设计等领域展现强大泛化能力。
114 4
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
|
21天前
|
机器学习/深度学习 人工智能 编解码
让AI绘画进入「指哪画哪」的精准时代!EasyControl:Tiamat AI 联合上海科大开源图像生成控制框架
EasyControl 是基于扩散变换器架构的高效灵活控制框架,通过轻量级条件注入模块实现多模态预训练支持,具备任意分辨率生成能力和显著优化的推理效率。
133 1
让AI绘画进入「指哪画哪」的精准时代!EasyControl:Tiamat AI 联合上海科大开源图像生成控制框架
|
2月前
|
人工智能 数据可视化 API
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
147 8
|
2天前
|
机器学习/深度学习 人工智能 JSON
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
Paper2Code是由韩国科学技术院与DeepAuto.ai联合开发的多智能体框架,通过规划、分析和代码生成三阶段流程,将机器学习论文自动转化为可执行代码仓库,显著提升科研复现效率。
54 18
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
|
7天前
|
人工智能 自然语言处理 监控
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
Cooragent 是清华大学 LeapLab 团队推出的开源 AI Agent 协作框架,支持基于简单描述快速创建 Agent 并实现多 Agent 协作,具备 Prompt-Free 设计和本地部署能力。
109 6
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
|
15天前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
143 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
24天前
|
人工智能 调度 UED
这个AI能把PSD变视频!人物/场景/道具任意组合!SkyReels-A2:昆仑万维推出的可控多元素视频生成框架
SkyReels-A2是昆仑万维推出的创新视频生成框架,通过扩散模型和图像-文本联合嵌入技术,实现多元素精准组合与高质量视频输出。
99 25

量子位

+ 订阅

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等