不久前许式伟(江湖人称老许)的 Go+ 项目在 Hacker News 上掀起了一阵风潮[1]。我一见倾心,参与贡献。最近老许和社区组织了一个视频交流,拉我跟大家说说为啥关注 Go+ 以及图个啥。在直播交流后,根据弹幕反馈,以及两位好友——洪明胜(TensorFlow Runtime 负责人)以及王玉(沈雕墨)的建议,做了修改。

 

我做分布式深度学习系统十三年了,尤其是 2016 年徐伟老师让我接替他作为他原创的 PaddlePaddle 项目的负责人之后,在工业系统中对 Python 的亲身体会让我对其局限了解愈深。而 Go+ 是我见过的弥补方案里最靠谱的。

 

我期待 Go+ 对标 Python,补全 Python 的不足,并且在此基础上有一个类似 numpy 的项目(姑且称之为 numgo+ 吧)用来支持张量(tensor)运算,满足数据科学的需求;在 numgo+ 之上再构建一个类似 PyTorch 的深度学习基础库(姑且称之为 GoTorch 吧)。如果可以,进一步成为深度学习编译器生态的一种前端语言。

 

我现在在蚂蚁集团工作,负责一个开源 SQL 编译器 SQLFlow —— 把扩展语法以支持 AI 的 SQL 程序翻译成 Python 程序。同事们说,如果 Go+ 这套生态能成熟起来,很乐意让 SQLFlow 输出 Go+ 程序。

 

很多读者估计觉得我瞎说八道—— Python 如此如日中天一般火热的语言,何须“补足”?


Python 的语法很灵活,融合了其他很多语言令人觉得方便的特点。比如,和 C++ 一样, Python 允许重载操作符,numpy 的作者于是重载了算数操作符来做张量运算。和 Lisp 一样,Python 的 eval 函数递归地实现了 Python 解释器,可以解释执行 Python 表达式,所以 Python 程序可以生成自己。

 

这样的灵活性允许程序员随心所欲,因此特别适合探索性工作。比如研究生们用  Python 做科研;数据科学家们用来替代之前各种昂贵的商业化系统;在随后诞生的深度学习领域,Python 也迅速蓬勃。

 

Python 的优势同时也隐含了其劣势。我亲身感受的痛点有二。

 

相关链接:

[1] https://news.ycombinator.com/item?id=23550042

[2] https://www.tensorflow.org/mlir/dialects

[3] https://zhuanlan.zhihu.com/p/38395601

[4] https://github.com/wangkuiyi/notes/tree/master/s4tf

[5] https://docs.google.com/document/d/1WLD4OcntBKQoNIH9VVYF0NPRe6V5exN3mu5uFlE0P0w/edit?usp=sharing

[6] https://github.com/qiniu/goplus/issues/307

[7] https://github.com/qiniu/goplus/tree/master/tutorial

[8] https://zhuanlan.zhihu.com/p/19901967

[9] https://julialang.org/blog/2018/12/ml-language-compiler/

[10] https://arxiv.org/pdf/1805.01772.pdf


支付宝研究员王益:Go+可有效补全Python的不足-LMLPHP

本文分享自微信公众号 - 支付宝技术(Ant-Techfin)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

04-17 15:02