开发 | 美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

早在 2009 年,Jeff Bezanson、Alan Edelman、Stefan Karpinski 和 Viral Shah 四个人聚到一起决心创造一种全新的编程语言。新语言要快速、有表达力,结合 C 语言、Matlab、Java、Ruby、Python、Perl 和 R 各自的优势,并能直接与 R、Matlab、Python 等最受欢迎的机器学习语言,以及其他动态工具展开竞争。听起来这思路很直接、很简单,是吧?这想法的背后有着几名创始人对开发者“痛点”的长期切身体会:工程师们为了在数据分析中获得速度和易用性,不得不首先用一种语言编码,然后用另一种语言重写——这实在很“坑爹”。而这就是很多人口中的“双语言问题”。

这背后的努力,促成了 Julia 的诞生。

创始人之一的 Viral Shah 解释道:

“为什么一个编程语言不能同时具有性能和生产力,这难道是一个物理定律吗?或者,现有的编译器-语言技术还没有发展到那个阶段?我们认为,在同个封装中获得易用性和性能是可能的。于是,我们开始投入到这个项目之中,并把它命名为 Julia。”

Viral Shah

随后,几名 Julia 创始人联合 Keno Fischer 创立了“Julia Computing” ——一家咨询公司,为使用 Juia 语言的企业客户提供帮助。

Julia 是一门开源语言,允许开发者创建性能更为强大的数字算法——相对于采用 Just In Time (JIT) 解释的语言而言。它易于使用,大幅减少了需要写的代码行数;并且能够很容易地部署于云容器(cloud containers )。

2012 年,Julia 的第一个公开版本 Julia 0.1 正式发布。2016 年九月发布了Julia 0.5,涵盖了 1100 个工具包,比一年前的 0.4 版本增加了 57%。Julia 开发者社区的规模还很小,目前在全世界范围内大约有 15 万用户。但随着计划于今年 6 月在加州大学伯克利分校举办的 JuliaCon 峰会,以及将在峰会上发布的 Julia 1.0; 届时,它的用户群有望快速增长。Viral Shah 表示,他们的下一个目标是 150 万用户。另外,现有 Julia 版本的技术支持期限是一年,而 Julia 1.0 将会是五年。

Julia 已经引起了华尔街的注意。投资银行 Berkery Noyes 的 CTO Keith Lubell 评论道:

“真正让我们感到激动的是,你可以编写高层级的科学、数字计算,而不需要重新编译。通常来讲,当你用 R 或 Matlab 写了一些东西,想让它运行得更快。你需要把它重新翻译至 C++,或者其他更快的语言。而使用 Julia 就不需要这样——它的速度是拔尖的。”

Julia 仍是摇篮中的新生儿。因此,若要成为大数据、机器学习工程师们的普遍选择,它需要在多个领域成长起来。其中最重要的是开发者社区,它亟需壮大以提供更多的工具包和库。只有这样, Julia 才能吸引更多用户到它的平台,与基础设施完善的老牌数据分析语言直接竞争。

如果你跟任何使用 Julia 的开发者聊聊,他们会告诉你,选择“上车”、使用这个萌芽期编程语言的首要原因是速度。据 Julia Computing 的宣传,在七项基础算法的测试中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。

Julia 精简的代码行数,对其性能提升贡献巨大。迄今为止最引人注目的 Julia 应用案例是纽约联邦储备银行( Federal Reserve Bank of New York )

美联储对 Julia 的应用

大约两年前,诺贝尔经济学奖得主、纽约大学经济学教授、咨询公司 QuantEcon 的创始人 Thomas Sargent,以及澳大利亚国立大学的经济学教授 John Stachurski,共同建议纽约联邦储备银行( Federal Reserve Bank of New York )把其用于市场走势预测和政策分析的“动态随机一般均衡模型(DSGE)”转到 Julia 语言平台。

Thomas Sargent

此前,纽联储的 DSGE 模型一直用 Matlab 运行。该项目背后的逻辑是,探索像 DSGE 这样的大型模型能否轻易转移至 Julia,以及其运行速度究竟会不会有大幅提升。纽联储采纳了建议,并利用该机会与 QuantEcon 合作。纽联储宏观经济与货币研究部门副主席 Marco Del Negro 表示:

“对我而言,这是一个绝妙的注意。我们当时正在考虑脱离 Matlab ——既出于成本,也有速度方面的原因。我们希望进一步提升我们的模型,并探索新事物。”

在项目第一阶段后,他们发现,Julia 把模型运行时间缩短至原先 Matlab 代码的十分之一到四分之三。模型中,Metropolis-Hastings 采样(从概率分布获取一系列随机样本的马尔可夫链蒙特·卡罗方法)是最耗费时间的环节。而在该环节,Julia 的运行速度是 Matlab 代码的 10 倍。相对于原先的 Matlab 版本,基于 Julia 的全新 DSGE 模型把代码行数减少了将近一半。

AI 科技评论获知,这些性能提升不能全归功于 Julia。纽联储表示,Matlab 版本的 DSGE 模型开发周期相当长,是一个累积式的过程。另外,它还支持了过多的模型和特征。这些原因导致其有很多不完美之处,运行效率本身就有不足。新项目下,这些专家们用 Julia 把该模型从头设计了一遍,针对此前发现的一系列问题做了改进。因此,新模型可被看做是经历了两重升级:架构优化以及 Julia。当然,两者是结合在一起实现的。不过,一些“经历了较小优化以及重设计”的算法,比如测量算法以及 kalman_filter 函数,新版本仍然比旧的、基于 Matlab 的模型提升了大约五分之一至四分之三的运算速度,见下图。

目前纽联储已经开启了项目的第二阶段:改进 DSEG 模型的预测能力。由于他们需要不断为模型添加数据和层级,纽联储认为 Julia 能更好应付提升的复杂性——他们估算基于 Julia 的模型运行时间大约只需要一至两天,而 Matlab 可能需要一个月才能等到输出结果。但这仍需第二阶段完成后进行证实。

开发者社区

Julia 最大的短板在于社区。Python 已经 25 岁了, R 语言快 25 岁了,Matlab 超过 30 岁了。它们有非常扎实的社区群众基础——不断加入新工具包以及库的支持。有观点认为这些主流语言会不断改进,并在未来的某个时间点,在原本的短板上一举超越这些新兴、但强大的小众语言。Keith Lubell 就表达了类似的观点,但他补充道:投资银行业正受到来自金融科技公司越来越大的竞争压力,迫使他们考虑利用 Julia 这些新兴语言实现创新。

为了对开发者社区提供支持,AOT 的 Duve 说他有信心 Julia Computing 会成为 RStudio 那样的机构。后者为 R 语言开发开源的免费工具及商用级的专业产品。Duve 认为,Julia 采取的开发、发布方式会鼓励更多的企业级用户采用它。尤其 Julia 的用户体验友好,它的架构使得金融和经济学领域的专家们很容易使用,因而已受到金融圈部分人士的欢迎。纽联储就是一个例子。

Duve 说道:“Julia 开发者社区推动、改进该语言的方式,比 R 语言历史上的任何时候都有条理地多。”

另外,BestX 的 Thind 表示,虽然 Julia 能被轻易部署于云端容器,但与云交互存在着风险:

“在云端服务上,用 Julia 在整个簇(cluster)部署多个处理进程,就像 MapReduce 那样,是非常简便、高效的。但如果你需要与 DynamoDB 或 RedShift 这样的特定服务交互,Python 的 API 要比 Julia 的原生库成熟、强大得多。”

想要拿 Julia 试手的开发者,需要仔细考虑他们使用该语言的用途,以及拿什么与之配合。

“所有想要加入 Julia 阵营的公司都需要弄清楚,你想要用它来实现哪些不一样的功能?它能不能为其中至少一半的功能提供原生支持?你可以用 C 语言或者 Python 来完成剩下的那些,并且这会是完全无缝的体验。但是,如果你的大部分应用都需要其他语言来弥补,你应该暂时缓一缓转向 Julia,或者联系 Julia Computing 看看能否得到缺失的功能支持。”

最后,我们来看看 Julia 创始人之一的 Viral Shah 的愿景:

“某一天,开发者社区会传来一个信号—— Julia 已经做好准备,将进入指数级增长轨道。”

via waterstechnology

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-01-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

DNA存数据,可存2000年

1513
来自专栏量子位

NIH发布10万张胸部X光片数据集 | 十一献礼×2

允中 发自 大理 量子位 报道 | 公众号 QbitAI ? 对于仍旧放不下科研工作的少年,现在又有福利了。 刚刚(好吧,其实是前两天),美国国立卫生研究院(N...

3315
来自专栏腾讯研究院的专栏

脑科学发展的助推器

image.png 推荐语: 大脑是人体最神奇也最不被了解的器官。过去20年生物技术迅猛发展,许多疾病如艾滋病、癌症等都在治疗方面取得了长足的进步,但...

1877
来自专栏华章科技

从技术小白到老司机,这20本书帮你“快进”20年

导读:文艺复兴以来,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的各个领域取得了垄断性的优势;也正是这样的优势,使美国在信息技术发展的六十多年间...

673
来自专栏AI科技评论

二十一世纪的计算 | 康奈尔大学教授Fred B. Schneider开讲计算机安全

雷锋网按:本文根据Fred B. Schneider教授在韩国“Computing in the 21st Century 2016”大会上所做报告《A Sci...

3408
来自专栏新智元

全球首场神经影像人机对决:AI战胜25位医界“最强大脑”!

【新智元导读】昨天,备受关注的全球首场神经影像人机大战在国家会议中心举行,在脑肿瘤和脑血管影像判读比赛中,医疗AI最终以高出20%的准确率战胜25名人类医生。如...

670
来自专栏大数据文摘

想不到!居然利用DNA存储数据

28212
来自专栏专知

国家重点研发计划云计算和大数据重点专项“大数据多模态交互协同关键技术”项目启动会顺利召开

2018年1月18日,由中科院自动化所徐常胜研究员牵头的国家重点研发计划“云计算与大数据”重点专项“大数据多模态交互协同关键技术”项目启动会暨实施方案论证会在中...

3364
来自专栏机器人网

应用于打磨大型铸件飞边的机器人方案

在浙江的一家大型铸件企业,对于浇铸后的铸件一直采用人工打磨。工人领导为了避免工人在恶劣环境下从事繁重的劳动,决定采用机器人替代人工。马丁路德的集成工程师,为这个...

1895
来自专栏人工智能快报

英特尔展示神经芯片“Loihi”模拟人类大脑

英特尔在拉斯维加斯的消费电子展(Consumer Electronics Show,CES)上展示了代号为“Loihi”的神经芯片,以及新的量子计算芯片Tang...

3537

扫描关注云+社区