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

2021 年 12 月 6 日 极市平台
↑ 点击 蓝字  关注极市平台

来源丨量子位
编辑丨极市平台

极市导读

 

PyTorch社区最近有一种声音:下个版本应该抛弃Python改用Julia语言。现在就连PyTorch团队内部也会拿这个说法来开玩笑。>>加入极市CV技术交流群,走在计算机视觉的最前沿

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

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

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

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

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

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

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

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

当初从原版Torch使用的Lua改用Python就是看中了生态这一点。这么多年过去了其他语言生态连一点可能超过Python的迹象都没有。

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

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

面向科学计算设计的语言

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

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

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

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

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

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

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

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

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

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

Julia代码可以写成这样:

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

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

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

Python:

np.dot(array1,array2)

Julia:

array1 .* array2

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

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

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

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

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

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

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

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

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

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

像Python、Javascript和PHP这种看起来糟糕的语言,正是因为能够轻松的编写糟糕代码,降低了门槛而流行。

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

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

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

这正是PyTorch团队想把方便留给用户,而把麻烦留给自己。对这种态度我很感激。

参考链接:
[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


















如果觉得有用,就请分享到朋友圈吧!


△点击卡片关注极市平台,获取 最新CV干货

公众号后台回复“transformer”获取最新Transformer综述论文下载~


极市干货
课程/比赛: 珠港澳人工智能算法大赛 保姆级零基础人工智能教程
算法trick 目标检测比赛中的tricks集锦 从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
技术综述: 一文弄懂各种loss function 工业图像异常检测最新研究总结(2019-2020)


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~



觉得有用麻烦给个在看啦~   


登录查看更多
0

相关内容

【2022新书】Python手册,275页pdf
专知会员服务
178+阅读 · 2022年3月18日
《Julia数据科学》及代码,166页pdf
专知会员服务
44+阅读 · 2021年11月4日
【干货书】《Pydon'ts:编写优雅的Python代码》,263页pdf
专知会员服务
91+阅读 · 2021年11月2日
专知会员服务
36+阅读 · 2021年8月31日
【干货书】Python参考手册,210页pdf
专知会员服务
63+阅读 · 2021年4月30日
【干货书】PyTorch 深度学习,255页pdf
专知会员服务
268+阅读 · 2021年4月3日
专知会员服务
90+阅读 · 2020年12月26日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
100行代码使用torch.fx极简量化教程
极市平台
3+阅读 · 2022年4月15日
“C不再是一种编程语言”
AI前线
1+阅读 · 2022年4月2日
解读 Julia 的 2021:逐步迈向主流编程语言
AI前线
0+阅读 · 2022年1月6日
我为什么认为Julia是数据科学的未来?
AI前线
1+阅读 · 2021年12月26日
实践教程 | 浅谈 PyTorch 中的 tensor 及使用
极市平台
1+阅读 · 2021年12月14日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
PyTorch 合辑 | 国庆特辑
AI研习社
21+阅读 · 2017年10月6日
干货| PyTorch相比TensorFlow,存在哪些自身优势?
全球人工智能
15+阅读 · 2017年10月4日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
1+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Arxiv
0+阅读 · 2022年4月19日
Arxiv
11+阅读 · 2018年5月13日
VIP会员
相关VIP内容
【2022新书】Python手册,275页pdf
专知会员服务
178+阅读 · 2022年3月18日
《Julia数据科学》及代码,166页pdf
专知会员服务
44+阅读 · 2021年11月4日
【干货书】《Pydon'ts:编写优雅的Python代码》,263页pdf
专知会员服务
91+阅读 · 2021年11月2日
专知会员服务
36+阅读 · 2021年8月31日
【干货书】Python参考手册,210页pdf
专知会员服务
63+阅读 · 2021年4月30日
【干货书】PyTorch 深度学习,255页pdf
专知会员服务
268+阅读 · 2021年4月3日
专知会员服务
90+阅读 · 2020年12月26日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
相关资讯
100行代码使用torch.fx极简量化教程
极市平台
3+阅读 · 2022年4月15日
“C不再是一种编程语言”
AI前线
1+阅读 · 2022年4月2日
解读 Julia 的 2021:逐步迈向主流编程语言
AI前线
0+阅读 · 2022年1月6日
我为什么认为Julia是数据科学的未来?
AI前线
1+阅读 · 2021年12月26日
实践教程 | 浅谈 PyTorch 中的 tensor 及使用
极市平台
1+阅读 · 2021年12月14日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
PyTorch 合辑 | 国庆特辑
AI研习社
21+阅读 · 2017年10月6日
干货| PyTorch相比TensorFlow,存在哪些自身优势?
全球人工智能
15+阅读 · 2017年10月4日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
1+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员