您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

TensorFlow与PyTorch同台相竞,AI框架之争谁主沉浮?

时间:2022-12-01 11:24:40  来源:搜狐号  作者:水哥

众所周知,经历了计算机科学过去几十年没有突破的瓶颈期之后,人工智能技术这些年由于算法和算力(并行计算)革命,迈入了一个高速发展的时期。不仅如此,在编程语言和开发者环境不断演化的今天,人工智能算法领域已悄然形成了两大阵营——TensorFlow与PyTorch互相角逐的格局。

随着竞争日趋激烈,先入为主的TensorFlow被后来者PyTorch迎头追上,前者逐渐显现颓势而棋输一着,业内有一鲜明比喻:“PyTorch吃掉了TensorFlow的午餐!”不久前有科技媒体证实,谷歌内部正押注一个新框架JAX来力求改变与PyTorch竞争不利的局面,而谷歌大脑和DeepMind也很大程度上放弃了TensorFlow转而使用JAX,这意味着AI框架之争进入了一个新的阶段。

● 人工智能框架TensorFlow和PyTorch的起源

在此之前,我们先了解一下框架的概念。“框架”源于计算机软件开发术语,由于上世纪编程语言模块化资源的匮乏,框架的概念少有流行,随着后来开发者环境的改善,生产力工具的极大丰富,框架的应用随之普及,概念也逐渐清晰。

框架作为编程语言伴生的集成化工具,在开发者环境中处于一种中间地位:语言->库->框架->引擎,越往后集成度越高,理论上开发者可以利用的效率也越高。知名的框架比如基于JAVAScript的前端工具React,一个熟练的开发者可以运用此类工具快速构建软件项目的原型基础,这也是常见的敏捷开发思想。

人工智能框架TensorFlow的初始版本源于2015年,由谷歌大脑团队开发并发布在Apache 2.0开源许可证下。TensorFlow是谷歌大脑的第二代机器学习工具,谷歌旗下部署的商业应用包括搜索、图片、地图、广告、翻译等等都与此有关。一个显著地例子是,近年来深度学习神经网络的发展,各国语言文字翻译(机翻)准确度的提高,TensorFlow在其中起到了重要作用。

PyTorch是由科技公司Meta人工智能团队开发的开源Python/ target=_blank class=infotextkey>Python机器学习工具,它的出现比TensorFlow晚了近一年,但它兼收并蓄地改进了当时主流的包括其他几个AI框架Caffe、Torch,由此开发的基于自动微分,且使用动态计算图的新一代AI框架。PyTorch起步之初就迎合了大量开发者的需求与习惯,逐渐成长为与TensorFlow并列最受欢迎的两大AI框架之一。

● 框架战争:PyTorch崛起和TensorFlow的衰退

原本先入为主的TensorFlow缘何被PyTorch后来居上?须知道,在人工智能机器学习深度学习神经网络领域,谷歌团队已经历了第一代专有机器学习系统DistBelief(TensorFlow的前身)的部署,所以当TensorFlow进入工业领域的时候,优势非常之大。但是后来的市场变化,PyTorch在开发者社区大受欢迎,以至于其在学术研究领域全面胜出,而TensorFlow的优势也正逐渐为之蚕食。

据开发者社区数据统计,TensorFlow和PyTorch框架的论文公开代码库两者数量差距从2021年3月的1:4扩大到2022年的1:6。如今各大顶会论文数量都是PyTorch对TensorFlow的绝对碾压,就连谷歌自家的论文也只有Torch和JAX,以及零星的TF1.0开源代码。全球范围看,经过几年发展PyTorch在学术圈的主导地位已基本站稳,一方面得益于PyTorch一开始主打的动态图机制,有益于实验室和研究中心快速迭代模型;另一方面得益于吸收了TF1.0和其他主流框架的优点、摒弃缺陷,尊重开发者意见并给予便利操作,赢得受众青睐。

TensorFlow的衰退源自许多科技巨头常有的弊病——追求自利的生态膨胀。一开始TensorFlow凭借先入为主获取市场稳操工业界的盘子,谷歌也凭借Android/ target=_blank class=infotextkey>安卓系统大量开发者和数据的支撑令TF1.0日臻成熟,大量企业项目落地。但作为科技巨头,谷歌过于执着自家生态的一系列操作致使TensorFlow日后变成了一个不那么适合开源的项目。TF1最大的缺点在于混乱的API设计和难以调试的静态图,许多原本可以顺手解决的问题谷歌团队视而不见,以至于开源的TensorFlow出现了大量交叉版本,厂商开始各自为政。

后来的TF2也不那么成功,反而破坏了TF1的生态,TF2不兼容TF1,TF1继续适配新设备,TF2想办法兼容TF1。恶性循环,开发者大量流失到更为开放、更容易听取意见的PyTorch阵营。而推出JAX实属谷歌的自救,它的做法也就是尽可能不全盘否定TensorFlow的基础上向PyTorch贴近。

最后

框架之争的结果是势均力敌,趋势互为接近,倘若一方因管理团队决策失误导致开发者大量流失,那么另一方将占据垄断地位。目前来看TensorFlow的工业基本盘暂时不会丢失,但随着建立在PyTorch之上的特斯拉自动驾驶、优步Pyro等项目落地,TensorFlow的优势领域也正面临日益增长的压力。

AI框架之争是21世纪的新鲜事,这也是技术文明发展进程中的必经之路。随着人工智能产研基数的不断扩大,该领域技术演化与形态碰撞将持续催生优胜劣汰、与时俱进的生产力工具。

文/陈徐毅 高级工程师,科技专栏作者,中国计算机学会会员。



Tags:TensorFlow   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
目前比较主流的深度学习框架—TensorFlow
深度学习已成为计算机科学领域中的热门技术,为人工智能带来了重大突破。在深度学习的发展过程中,各种深度学习框架相继涌现,其中以TensorFlow为代表的框架受到了广泛关注和应用...【详细内容】
2023-08-31  Search: TensorFlow  点击:(227)  评论:(0)  加入收藏
Python人工智能tensorflow优化器Optimizer算法汇总
这篇文章主要为大家介绍了python人工智能tensorflowtf优化器Optimizer算法汇总,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪目录 前言 tensorflo...【详细内容】
2023-06-28  Search: TensorFlow  点击:(225)  评论:(0)  加入收藏
Python3深度学习库Keras/TensorFlow打造自己的聊天机器人
聊天机器人(ChatRobot)的概念我们并不陌生,也许你曾经在百无聊赖之下和Siri打情骂俏过,亦或是闲暇之余与小爱同学谈笑风生,无论如何,我们都得承认,人工智能已经深入了我们的生活...【详细内容】
2023-01-31  Search: TensorFlow  点击:(303)  评论:(0)  加入收藏
TensorFlow与PyTorch同台相竞,AI框架之争谁主沉浮?
众所周知,经历了计算机科学过去几十年没有突破的瓶颈期之后,人工智能技术这些年由于算法和算力(并行计算)革命,迈入了一个高速发展的时期。不仅如此,在编程语言和开发者环境不断演...【详细内容】
2022-12-01  Search: TensorFlow  点击:(341)  评论:(0)  加入收藏
10个算法从业人员必须知道的TensorFlow技巧
TensorFlow 2.x在构建模型和TensorFlow的整体使用方面提供了很多简单性。那么TF2有什么新变化呢?...【详细内容】
2020-09-23  Search: TensorFlow  点击:(254)  评论:(0)  加入收藏
2020年顶级深度学习框架:PyTorch与TensorFlow
介绍深度学习是机器学习的一个分支。深度学习的独特之处在于它带来的准确性和效率。经过大量数据训练后,深度学习系统可以匹配甚至超过人脑的认知能力。PyTorch和TensorFlow...【详细内容】
2020-08-07  Search: TensorFlow  点击:(481)  评论:(0)  加入收藏
微信开源加速工具 TurboTransformers,超越 PyTorch/TensorFlow
腾讯宣布开源 Transformer 推理加速工具 TurboTransformers。该工具面向自然语言处理领域中 Transformers 相关模型丰富的线上预测场景,据介绍,其在微信、腾讯云、QQ 看点...【详细内容】
2020-04-26  Search: TensorFlow  点击:(446)  评论:(0)  加入收藏
如何提升Tensorflow服务性能
Tensorflow已经成长为事实上的机器学习(ML)平台,在业界和研究领域都很流行。对Tensorflow的需求和支持促成了大量围绕训练和服务机器学习(ML)模型的OSS库、工具和框架。Tensorflo...【详细内容】
2019-03-29  Search: TensorFlow  点击:(1844)  评论:(0)  加入收藏
▌简易百科推荐
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  刘长伟    Tags:UI框架   点击:(1)  评论:(0)  加入收藏
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(8)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(19)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(55)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(47)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(39)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(51)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(68)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(88)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(86)  评论:(0)  加入收藏
站内最新
站内热门
站内头条