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

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


前几年就流传着这样一种说法:Julia 会替代 Python,成为新的最受欢迎的编程语言之一。我们暂且对这种说法持观望态度,但作为科学计算方面的强大工具,Julia 优势已然显现,这意味着程序员的选择又多了一种。

在数据科学、人工智能等领域,仔细对比 Julia 和 Python,我们会发现:相同的任务,只要 Python 能实现的的,Julia 都可以做,而且效率高得多,语法也简洁优雅,只是在传播度上,名气还不如 Python。

近日,reddit 上的一则热帖引来广大网友的讨论,这个帖子提到,最近,一些 Julia 语言包的开发人员讨论了 Julia 中 ML 的当前状态,并将其状态与 Python ML 生态系统进行了比较。

image.png


原贴地址: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  的最佳选择,但这些库(及其文档)应该优化的更加用户友好。」

image.png


网友  @jgreener64 表示:「Julia 中的 ML 在某些领域应用非常强大,Julia 一切皆有可能。Julia 面临的问题是:Julia  中的 ML 需要大量现有知识或大量时间搜索 / 反复试验。在个人层面上,我目前正在用 Julia 开发新颖的可微分算法。」

image.png


除了网友的热烈讨论外,Julia  软件包开发人员 Christopher Rackauckas 围绕以下 7 个问题,解答了网友比较关心的内容。Rackauckas 是 MIT  和马里兰大学的数学家和药理学家,主要用 Julia 进行编程。Rackauckas 为  Julia、数学和随机生物学开了专门博客,来介绍相关内容,并且 Rackauckas 在 Julia  中开发了一些库,包括(但不限于)DifferentialEquations.jl 和 Pumas。

image.png

Christopher Rackauckas

问题包括:

  1. 今天 Julia 中的 ML 在哪些地方真正大放异彩?在不久的将来该生态系统在哪些方面优于其他流行的 ML 框架(例如 PyTorch、Flax 等),为什么?
  2. 目前 Julia 的 ML 生态系统在功能或性能方面存在哪些缺点?Julia 在这些领域变得具有竞争力的时间节点在哪?
  3. Julia 的标准 ML 包(例如深度学习) 在性能方面与流行的替代方案相比如何(更快、更慢、相同数量级)?
  4. 有没有重要的 Julia 实验,可以针对流行的 ML 替代方案进行基准测试?
  5. 如果一家公司或机构正在考虑创建职位来为 Julia 的 ML 生态系统做出贡献,有没有最佳案例?为什么他们应该这样做?哪些贡献最有影响力?
  6. 为什么与其他框架合作的独立开发人员应该考虑为 Julia 的 ML 生态系统做出贡献?
  7. 对于某些特定任务,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 表示。

更多内容请参考:https://discourse.julialang.org/t/state-of-machine-learning-in-julia/74385

相关文章
|
15天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
187 102
|
15天前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
180 103
|
15天前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
128 82
|
2月前
|
机器学习/深度学习 自然语言处理 数据可视化
Python:简洁而强大的通用语言
Python:简洁而强大的通用语言
|
2月前
|
机器学习/深度学习 人工智能 运维
Python:简洁高效的万能语言
Python:简洁高效的万能语言
|
2月前
|
机器学习/深度学习 人工智能 数据可视化
Python:简洁高效的万能“胶水语言”
Python:简洁高效的万能“胶水语言”
|
3月前
|
JavaScript Java Go
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
174 0
|
5月前
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
797 12
Scikit-learn:Python机器学习的瑞士军刀
|
3月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
7月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。

热门文章

最新文章

推荐镜像

更多