Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PyTorch,你是不是想用Julia?不,我们还想要Python的生态

PyTorch,你是不是想用Julia?不,我们还想要Python的生态

作者头像
机器之心
发布于 2023-03-29 10:02:35
发布于 2023-03-29 10:02:35
6560
举报
文章被收录于专栏:机器之心机器之心

机器之心报道

机器之心编辑部

「我们已经从 Julia 中获得了很多灵感,但我们还是想要 Python。」

「人生苦短,我用 Python。」这是 Python 开发领域广泛流传的一句话。在过去的几年中,Python 也的确凭借其在易用性、生态等方面的优势一路高歌猛进,在很多编程语言排行榜中稳居前三。

但伴随着 Julia 等新势力的崛起,这种局面正在发生变化。在前段时间出炉的「Stack Overflow 2021 全球开发者调查报告」中,Python 受开发者喜爱程度仅排第六,而 Julia 则排在了第五。虽然生态等方面依然存在不足,但毋庸置疑,Julia 已经成为 Python 有力的竞争对手,其竞争优势包括速度快、简洁等。在 Julia 中,我们可以用类似 Python 的优美语句获得类似 C 的性能。

最近,这种趋势甚至影响到了主流深度学习框架对编程语言的选择,比如 PyTorch:

「PyTorch 将走向何方?为什么它越来越像 Julia,但又不完全像?」这是 PyTorch 核心开发人员 Edward Z. Yang 参与讨论的一个问题。在这个问题下方,他回答道:

我们曾经开玩笑地说:下一个版本的 PyTorch 是用 Julia 编写的。之所以废弃了 Lua Torch 而主要使用 Python 编写的 PyTorch,一个重要的原因是想利用 Python 庞大的生态系统。直到今天,都很难有一种新语言能够克服 Python 的网络效应。 然而,最近我一直在思考我们在 PyTorch 中进行的各种项目,包括:

functorch:直接用 Python 编写像 vmap/grad 这样的转换,以前只能作为调度程序的 C++ 扩展; FX:图形转换,以前只能借助 C++ TorchScript 完成; Python autograd implementation:对 autograd 实现做了实验性更改,以前只能用 C++ 进行。

这些项目都有一个共同点:有些功能以前只能用 C++ 实现,而现在 PyTorch 使得用 Python 完成这些功能成为可能,提升了 hackability,并让开发变得更加简易。 PyTorch 以前主要是用 Python 编写的,后来我们将所有内容都移到了 C++,以使其运行得更快。因此,我们越来越多地处于这样一种情况:我们想要拥有这块蛋糕(hackability),同时吃掉它(性能)。

这与 Julia 讲了近十年的故事不谋而合。Julia 的开发团队一直认为: 一种语言必须能被编译为高效的代码,Julia 语言添加了一些限制(类型稳定性),以确保这一点; 一种语言必须允许后续可扩展(多重派发,multiple dispatch),Julia 语言围绕 JIT 编译组织生态系统使这一点成为可能。 上述两个特性的结合为用户提供了一个兼具动态语言灵活性(可扩展性)和静态语言性能(高效代码)的系统。

实际上这也是 PyTorch 一直追求的。我们已经从 Julia 语言中获得了很多灵感,例如 ATEN 的作者 Zachary DeVito 将 PyTorch 调度器中多重派发的设计灵感归功于 Julia。 总体来说,我认为 Julia 可以作为一个非常强大的愿景,并且相比于 Julia,PyTorch 本身也有一些优势。例如 Julia 经常称用户可以直接使用数学运算编写循环并将其编译为高效代码,而我们不需要尝试这样做,因为我们的内核非常复杂,在任何情况下都能实现最佳的低级别实现。

为什么不直接使用 Julia?因为我们既想要 Julia 的愿景,也想要 Python 强大的生态系统。这个方向具有巨大的潜力,但我们也有很多要做的工作和许多未解决的设计问题。我对接下来的发展感到非常兴奋。

从这份回答我们可以看出,PyTorch 逐渐靠近 Julia 已成定势,但鉴于 Python 在生态系统方面的绝对优势,下一代 PyTorch 不太可能直接用 Julia 编写。

对于这一做法,有人表示非常不理解。ta 认为,以 PyTorch 的生态号召力,如果下一版他们直接宣布用 Julia,那么生态问题很快就会迎刃而解。

而且,长远来看,转向 Julia 似乎收益更高。

但也有人认为,PyTorch 的这种做法其实是为用户着想,即把麻烦留给自己,把简单留给用户,这是一种非常值得肯定的态度。

如果你也是一位 PyTorch 用户,你会赞成哪种做法?欢迎在评论区留言讨论。

参考链接:

https://dev-discuss.pytorch.org/t/where-we-are-headed-and-why-it-looks-a-lot-like-julia-but-not-exactly-like-julia/276

https://news.ycombinator.com/item?id=29354474

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?
PyTorch社区最近有一种声音:下个版本应该抛弃Python改用Julia语言。
量子位
2021/12/09
6860
PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?
有了Julia语言,深度学习框架从此不需要计算图
鉴于机器学习(ML)对编程语言、编译器和生态系统的众多需求,现在已经有很多有趣的发展。不仅 TensorFlow 和 PyTorch 等现有系统间的权衡得不到解决,而且这两个框架都包含不同的「静态图」和「eager execution」接口,但它们的形式已经比以前更加清晰。与此同时,机器学习模型基本上是可微分算法的思想(通常称为可微分编程)已经流行起来。
机器之心
2018/12/25
1.3K0
有了Julia语言,深度学习框架从此不需要计算图
Julia官宣:为机器学习构建一种语言和编译器
自从Julia团队提出“需要一流的语言、编译器和机器学习(ML)生态系统”以来,该领域呈现出一些有趣的发展趋势。
新智元
2018/12/24
1.3K0
有人说Julia比Python好,还给出了5个理由
Julia 是一种多范式的函数式编程语言,用于机器学习和统计编程。尽管 Python 通常被认为是一种面向对象的编程语言,其实它也是用于机器学习的多范式编程语言。需要注意的是,Julia 语言更多地基于函数范式。此外,Julia 语言虽不如 Python 那么流行,但在数据科学中使用 Julia 具有很大的优势,从而使它在很多情况下成为更好的编程语言选择。
机器之心
2020/03/25
1K0
学界 | MIT正式发布编程语言Julia 1.0:Python、R、C++三合一
在过去一年中,研究者利用 Julia 在一台超级计算机上分析天文图像,速度提升了 1000 倍,在 15 分钟内将接近 2 亿个天体进行分类。从技术上来看,这种语言还会长期发展下去。然而,现在是一个里程碑的时刻:在本周于伦敦举办的 Julia 语言年会上,Julia 1.0 正式发布!一起发布的还有 JuliaCon。
机器之心
2018/08/21
1.3K0
学界 | MIT正式发布编程语言Julia 1.0:Python、R、C++三合一
Julia 1.0 正式发布,这是新出炉的一份简单中文教程
文章地址:https://zhuanlan.zhihu.com/p/41802723
机器之心
2018/08/21
5.2K0
Julia 1.0 正式发布,这是新出炉的一份简单中文教程
Github1.3万星,迅猛发展的JAX对比TensorFlow、PyTorch
机器之心报道 机器之心编辑部 JAX 是机器学习 (ML) 领域的新生力量,它有望使 ML 编程更加直观、结构化和简洁。 在机器学习领域,大家可能对 TensorFlow 和 PyTorch 已经耳熟能详,但除了这两个框架,一些新生力量也不容小觑,它就是谷歌推出的 JAX。很对研究者对其寄予厚望,希望它可以取代 TensorFlow 等众多机器学习框架。 JAX 最初由谷歌大脑团队的 Matt Johnson、Roy Frostig、Dougal Maclaurin 和 Chris Leary 等人发起。
机器之心
2023/03/29
2.7K0
Github1.3万星,迅猛发展的JAX对比TensorFlow、PyTorch
PyTorch 2.0 重磅发布:编译、编译、还是编译!
内容一览:昨晚召开的 PyTorch Conference 2022 中,官方正式发布了 PyTorch 2.0。本文将梳理 PyTorch 2.0 与 1.x 相比的最大差异。
HyperAI超神经
2023/02/27
1.6K0
PyTorch 2.0 重磅发布:编译、编译、还是编译!
为什么Julia比Python快?因为天生理念就更先进啊
其实像以前 C 或其它主流语言在使用变量前先要声明变量的具体类型,而 Python 并不需要,赋值什么数据,变量就是什么类型。然而没想到正是这种类型稳定性,让 Julia 相比 Python 有更好的性能。
机器之心
2019/03/12
1.9K0
为什么Julia比Python快?因为天生理念就更先进啊
万字综述,核心开发者全面解读PyTorch内部机制
这份演讲是为用过 PyTorch并且有心为 PyTorch 做贡献但却被 PyTorch 那庞大的 C++ 代码库劝退的人提供的。没必要说谎:PyTorch 代码库有时候确实让人难以招架。
机器之心
2019/06/05
1.7K0
万字综述,核心开发者全面解读PyTorch内部机制
从PyTorch到Mxnet ,对比7大Python深度学习框架
选自kdnuggets 作者:Madison May 机器之心编译 参与:王宇欣、李亚洲 选择什么深度学习框架一直是开发者非常关心的一个话题,而且深度学习框架之间的「战争」也越来越激烈。过去一段时间,机器之心发过多篇机器学习框架的对比文章,但随着 Python 逐渐成为机器学习社区最受欢迎的语言,支持 Python 的深度学习框架的性能也值得关注。Indico Data Solutions 的 CTO Madison May 根据他们公司在产品和开发过程中的经验对 7 大 Python 深度学习框架进行了
机器之心
2018/05/07
2.4K0
为什么适用于Python的TensorFlow正在缓慢消亡
选自:the Next Web 作者:Ari Joury 机器之心编译 编辑:袁铭怿 它哪里都好,就是不好用。 科技领域一直存在着一种「教派之争」。无论是关于不同操作系统、云服务提供商还是深度学习框架的利弊之争,只要喝上几杯啤酒,事实就会被抛到一边,人们就开始就像争夺圣杯一样,为他们支持的技术而战。 关于 IDE 的讨论似乎没有尽头,有些人喜欢 VisualStudio,有些人喜欢 IntelliJ,还有一些人更偏爱普通的旧编辑器,如 Vim。总有人说,爱用的文本编辑器往往会反映出用户的性格,这听起来似乎
机器之心
2023/03/29
8060
为什么适用于Python的TensorFlow正在缓慢消亡
学习Julia与弯道超车
看一下Julia官网上的Benchmark,Julia综合速度,是R语言的42倍,是Python的15倍,是Java的3倍,是Fortran的1倍,和C语言速度不相上下。
邓飞
2019/07/23
9800
学习Julia与弯道超车
GPU 编程“改朝换代”:英伟达终为 CUDA 添加原生 Python 支持,百万用户变千万?
今年,英伟达可谓是全力押注,明确表示要确保 Python 成为 CUDA 并行编程框架中的“一等公民”。
深度学习与Python
2025/04/09
3590
GPU 编程“改朝换代”:英伟达终为 CUDA 添加原生 Python 支持,百万用户变千万?
谷歌为何要养苹果的亲儿子Swift?原来意在可微分编程
近日,国外一小哥在 tryolabs 上写了一篇博文,为我们详尽地介绍了 Python 的缺陷与相比之下 Swift 的优势,解释了为什么 Swift 版的 TensorFlow 未来在机器学习领域有非常好的发展前景。其中包含大量代码示例,展示了如何用 Swift 优雅地编写机器学习程序。
机器之心
2020/04/14
1.5K0
谷歌为何要养苹果的亲儿子Swift?原来意在可微分编程
PyTorch 2.0 重磅发布:一行代码提速 30%
在今天的 PyTorch 2022 开发者大会上,PyTorch 团队发布了一个新特性 torch.compile,这个新特性将 PyTorch 的性能推向了新高度,并开始将 PyTorch 的部分实现从 C++ 中迁移到 Python 中。他们相信这是 PyTorch 一个实质性的新方向--因此称之为 PyTorch 2.0。
OpenMMLab 官方账号
2022/12/30
2.4K1
PyTorch 2.0 重磅发布:一行代码提速 30%
超越TensorFlow?Yann LeCun:“Why? PyTorch. That's why.”
翻译 & 整理 | 杨阳 出品 | AI科技大本营 日前,一篇发表在Medium上讨论TensorFlow和Python的文章引起了深度学习大牛Yann LeCun的注意。在这篇文章的作者看来,相较于TensorFlow,PyTorch感觉上更加Python(原文中的表达的是Pythonic),而且PyTorch在更多的模型中适用: “85%的模型只能与PyTorch一起使用,这点令人吃惊。只有大约8%的HuggingFace模型是TensorFlow所独有的,其余的可以同时用于两个框架。” 此外,在作者
AI科技大本营
2023/04/06
3040
超越TensorFlow?Yann LeCun:“Why? PyTorch. That's why.”
PyTorch 1.0 正式版发布了!
作者:ZACH DEVITO、YANGQING JIA、DMYTRO DZHULGAKOV、SOUMITH CHINTALA、JOSEPH SPISAK
机器之心
2018/12/25
5250
PyTorch 1.0 正式版发布了!
专访田渊栋 | Torch升级版PyTorch开源,Python为先,强GPU加速
【新智元导读】 PyTorch今天发布,这是一个支持强大的 GPU 加速的张量计算(类似numpy),构建基于 tape 的 autograd 系统的深度神经网络的深度学习研究平台。这是numpy 的替代,以使用 GPU 的能力,能够提供最大的灵活性和速度。田渊栋在接受专访时表示,新的平台不像以前 torch 需要clone_many_times。另外从 numpy ndarray 可以转到torch.Tensor,不需要copy。 专访Facebook研究员田渊栋和PyTorch作者Soumith 新智
新智元
2018/03/26
1.3K0
专访田渊栋 |  Torch升级版PyTorch开源,Python为先,强GPU加速
Julia加入TPU,这是一个靠自己也要融入机器学习的编程语言
过去的几年里推动机器学习技术稳步发展的根本性改变之一是训练和优化机器学习模型的巨大计算力。许多技术都是很年前就已经提出,唯有近几年提升的计算力可以为现实世界的问题提供足够优质的解决方案。这些计算能力的很大一部分是通过 GPU 获取的,其针对向量的计算能力最初是为图形而设计的,但机器学习模型通常需要执行复杂的矩阵运算,因此 GPU 同样表现出了非常好的性能。
机器之心
2018/11/30
1.5K0
Julia加入TPU,这是一个靠自己也要融入机器学习的编程语言
推荐阅读
相关推荐
PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档