您好,欢迎访问一九零五行业门户网

开发人员亲自上场:Julia语言搞机器学习和Python比,哪个好用?

2022 年,你会选择哪种编程语言呢?
前几年就流传着这样一种说法:julia会替代 python,成为新的最受欢迎的编程语言之一。我们暂且对这种说法持观望态度,但作为科学计算方面的强大工具,julia优势已然显现,这意味着程序员的选择又多了一种。
在数据科学、人工智能等领域,仔细对比julia和 python,我们会发现:相同的任务,只要 python 能实现的的,julia都可以做,而且效率高得多,语法也简洁优雅,只是在传播度上,名气还不如 python。
近日,reddit 上的一则热帖引来广大网友的讨论,这个帖子提到,最近,一些julia语言包的开发人员讨论了julia中 ml 的当前状态,并将其状态与 python ml 生态系统进行了比较。
原贴地址:
https://www.reddit.com/r/machinelearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of/
来自乌得勒支大学的 jordibolibar 认为,「julia确实在机器学习方面拥有巨大的潜力,但它目前的状态有点喜忧参半。更具体地说,我在 sciml 中坚持使用julia的主要原因是,differentialequations.jl 库工作得非常好,但在 python 中没有发现任何类似的东西。然而,对于我的研究来说,真正痛苦的是 ad 部分。自从我开始使用julia,我在 zygote 中遇到了两个错误,这使我的工作速度减慢了几个月。但我仍然认为julia是 sciml 的最佳选择,但这些库(及其文档)应该优化的更加用户友好。」
网友 @jgreener64 表示:「julia中的 ml 在某些领域应用非常强大,julia一切皆有可能。julia面临的问题是:julia中的 ml 需要大量现有知识或大量时间搜索 / 反复试验。在个人层面上,我目前正在用julia开发新颖的可微分算法。」
除了网友的热烈讨论外,julia软件包开发人员 christopher rackauckas 围绕以下 7 个问题,解答了网友比较关心的内容。rackauckas 是 mit 和马里兰大学的数学家和药理学家,主要用julia进行编程。rackauckas 为julia、数学和随机生物学开了专门博客,来介绍相关内容,并且 rackauckas 在julia中开发了一些库,包括(但不限于)differentialequations.jl 和 pumas。
christopher rackauckas
问题包括:
今天julia中的 ml 在哪些地方真正大放异彩?在不久的将来该生态系统在哪些方面优于其他流行的 ml 框架(例如 pytorch、flax 等),为什么?
目前julia的 ml 生态系统在功能或性能方面存在哪些缺点?julia在这些领域变得具有竞争力的时间节点在哪?
julia的标准 ml 包(例如深度学习) 在性能方面与流行的替代方案相比如何(更快、更慢、相同数量级)?
有没有重要的julia实验,可以针对流行的 ml 替代方案进行基准测试?
如果一家公司或机构正在考虑创建职位来为julia的 ml 生态系统做出贡献,有没有最佳案例?为什么他们应该这样做?哪些贡献最有影响力?
为什么与其他框架合作的独立开发人员应该考虑为julia的 ml 生态系统做出贡献?
对于某些特定任务,julia开发人员倾向于使用哪些软件包?julia开发人员希望添加目前不存在的哪些内容?
下文中我们挑选了几个大家比较关心的问题进行报道:
问题 3:julia在「标准 ml」中的表现如何?
julia的内核速度很好:在 cpu 上,我们做得非常好,在 gpu 上,每个人都只是调用相同的 cudnn 等;julia的 ad 速度也很好。不过 zygote 可能会有一些开销,但与 jax/pytorch/tensorflow相比,zygote 在大多数情况下速度是很快的。具体来说,pytorch 开销要高得多,在标准 ml 工作流程中甚至无法测量。一个足够大的矩阵乘法会解决分配问题或其他 o(n) 问题;julia不融合内核,因此在大多数基准测试中,如果用户查看它,就会发现它没有融合 conv 或 rnn cudnn 调用。
问题 4:我们应该跟踪哪些重要的实验和基准?
xla 的分布式调度器非常好。当我们考虑扩展时,我们应该忽略 pytorch,去考虑 daggerflux 与tensorflow/jax。xla 有更多的灵活性来改变操作,所以我认为 xla 才是赢家,我们需要使用 e-graphs 技巧来匹配它。另一件需要注意的事情就是「自动微分中缺少中间部分」,这种情况还需要解决。
问题 7:有什么推荐的软件包?
我倾向于在需要时使用 flux,但大家还是尽量使用 diffeqflux。就现有内核而言,flux 是最完整的,但它的风格让我感到厌烦。我希望有一个 flux 不使用隐式参数,而是使用显式参数。我希望这些参数由 componentarrays 表示。
以上就是开发人员亲自上场:julia语言搞机器学习和python比,哪个好用?的详细内容。
其它类似信息

推荐信息