PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

PyTorch社区最近有一种声音:下个版本应该抛弃Python改用Julia语言。

PyTorch社区最近有一种声音:下个版本应该抛弃Python改用Julia语言。

现在就连PyTorch团队内部也会拿这个说法来开玩笑。

对这个问题,核心开发成员中的Edward Yang在论坛上作出过一些回应。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

他认为PyTorch的确越来越像Julia了,比如借鉴Julia的多重分派特性开发了Pytorch Dispatcher。

PyTorch总体的发展方向也和Julia的愿景一致,也就是同时具备拓展性、易用性和执行性能。

一方面PyTorch的底层代码后期用C++重写以获得更好的性能,另一方面functorch、fx等新功能又让用户可以直接使用Python做以前必须借助C++完成的工作。

那为什么不直接改用Julia呢?

害,其实是舍不得Python那无可替代的生态

简而言之,Julia语言本身的特性和Python的生态他们全都要,向Julia的优点学习也是团队未来的努力方向。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

那么,Julia这种语言到底好在哪,让PyTorch开发团队都向它学习?

面向科学计算设计的语言

Julia来自麻省理工CSAIL实验室,设计初衷就是想要一个既有C的速度又有Ruby的动态性、既能像Matlab一样使用数学表达式又有Python的通用性。

Julia要能像Perl一样自然地处理字符串、像R一样适用于统计,像Shell一样作为胶水语言去和其他语言交互。

要有Hadoop的并行计算能力,又不想要那些繁杂的配置。

最后做出来的Julia采用即时编译(Just In Time),速度比需要解释器的Python快得多,又没有失去交互性。

通过多重分派(Multiple Dispatch)特性来实现类型稳定又不时脚本语言的简洁灵活。

同一个函数名对不同参数类型的调用分派不同的操作,因为适合处理多种数据类型还被PyTorch给学了去。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

具体到机器学习来说,Julia执行各类算法包括矩阵运算的速度都比Python快得多。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

Julia生态里也有自己的开源深度学习框架Julia Flux。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

此外Julia还在语法上对线性代数、数据处理这些场景有额外的优化。

比如支持Unicode数学符号,数字乘以变量时候可以省略「*」,以及索引从1而不是0开始更符合人类直觉….

Julia代码可以写成这样:

α = 0.5 ∇f(u) = α*u; ∇f(2) sin(2π)

以至于有些数学背景的开发者认为,Julia代码写起来就像在黑板上做数学题一样的,很亲切。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

相比之下,用Python做矩阵运算感觉就……不是那么好。

Python:

np.dot(array1,array2)

Julia:

array1 .* array2

Julia的历史可以追溯到2009年,由于想实现的功能太多,直到2018年才对外发布1.0正式版。

不过最近几年Julia已迅速被金融、医药、航天等一些行业接受,使用者包括摩根大通、辉瑞、NASA等。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

△ TIOBE指数中的Julia流行趋势变化

Julia改变了过去他们只能用C等高性能语言做底层开发、同时用高易用性的Python等语言做扩展开发的割裂问题。

今年7月,Julia创始团队成立的公司Julia Computing还获得2400万美元的A轮融资。

Julia语言速度快、天生适合机器学习又在高速成长,也难怪PyTorch社区会有用Julia替代Python的声音出现。

有人认为Python是一种糟糕的语言,虽然有优秀的生态,但生态中对机器学习最有价值的部分(Numpy)其实是用C实现的。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

Python生态虽然强大,但人们对其中的混乱也有不少诟病,各种重复开发的包管理系统让配置好Python开发环境都不是一件容易事。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

相比之下,Julia的包管理方案就很统一,虽然有可能是还在起步阶段没来得及混乱。

也有人认为Python这些所谓的缺点其实正是它流行的原因。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

这位要提醒大家Julia自身就带有和其他语言的交互功能,他平常会在Julia代码里调用Huggingface的Python模型作开发,两种生态都用上才是坠吼的。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

最后,有人很不理解PyTorch开发团队不选择迁移到Julia的做法,既然Julia语言有所有他们需要的特性,还要花时间在Python里重新造轮子是自找麻烦。

PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?

另一位的视角有些微妙的不同:

参考链接:
[1]https://dev-discuss.pytorch.org/t/where-we-are-headed-and-why-it-looks-a-lot-like-julia-but-not-exactly-like-julia/276
[2]https://news.ycombinator.com/item?id=29354474
[3]https://ucidatascienceinitiative.github.io/IntroToJulia/Html/WhyJulia

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/134458.html

(0)

相关推荐

  • 幼儿画简单,幼儿简笔画整幅

    幼儿美术活动既能培养幼儿审美情趣,又能激发孩子的创造力。简笔画是一种利用简单的点、线、面等绘画要素来表现物象基本特征的绘画形式。

    生活 2021年11月25日
  • 小儿肱骨髁上骨折小知识

    肱骨髁上骨折一般是指肱骨内、外髁上2cm范围内的骨折,在小儿骨折中非常常见的一种骨折,多见于3到12岁的小孩,在小儿肘关节骨折中占比达到80%以上。该骨折可合并血管,神经的损伤,处理不当可引起缺血性肌挛缩,骨化肌炎,肘关节内外翻畸形等。对于非移位骨折或者不完全性骨折单纯石膏托外固定就可以。对于有明显移位的骨折,以前通常都是通过闭合手法复位加石膏托外固定,由于骨折端难以复位,或者骨折端的不稳定性,患肢消肿,石膏托松紧度改变,容易导致骨折复位丢失,甚至骨折复位失效,骨折再次移位,再次复位效果欠佳,反复调节增加小儿痛苦等。目前逐渐倾向于手术治疗,主要采用手法闭合复位克氏针内固定,辅助石膏托外固定,是一种零切开的微创手术,患儿家长容易接受的一种术式。没有特殊情况,基本上手术当天或者术后第一天就可以出院。

    生活 2021年9月27日
  • 养老金打入社保卡,养老金必须社保卡领取嘛

    正在加载视频. 养老金是大多数退休老人晚年唯一的生活保障。因此,我们应该高度重视用社保卡领取养老金的各种问题。养老金的发放面临五个需要注意的问题,这五个问题与你的钱袋子有关,孩子要...

    生活 2021年12月11日
  • 脾虚的人,常揉太白穴

    [db:摘要]

    生活 2021年8月29日
  • 奇瑞新能源蚂蚁车型,奇瑞qq新能源汽车

    目前奇瑞旗下新能源车型与燃油车车型LOGO标识基本一致,普通消费者很难对这些车型进行区分。网上车市获悉,奇瑞集团正在招标“奇瑞新能源2021年某车型品牌定位及品牌LOGO设计采购项目”。从项目时间节点来看,新品牌LOGO最快明年敲定,这意味着包括蚂蚁家族、QQ冰淇淋在内的多款车型将配备新LOGO标识,以进一步提升产品辨识度。

    科技 2021年10月25日