用户名:  密码:   
网站首页即时通讯活动公告最新消息科技前沿学人动向两岸三地人在海外历届活动关于我们联系我们申请加入
栏目导航 — 美国华裔教授专家网科技动向科技前沿
关键字  范围   
 
比Python快35000倍!下一代明星编程语言Mojo
2023/5/10 13:35:00 | 浏览:1295 | 评论:0

Mojo仍然处于开发中,但你可以在基于JupyterHub的Playground上试用它。要试用Mojo,请访问此网站(https://www.modular.com/get-started )进行注册,不要忘记在“Modular Product Interest”部分勾选Mojo的选项。

简介

一种面向AI开发人员的新编程语言刚刚发布:Mojo。

从设计之初,Mojo是Python的超集,因此如果你已经掌握了Python,那么学习Mojo十分容易。

Mojo结合了Python的可用性和C语言的性能,其速度比Python快35000倍。

如果你喜欢AI并且已经了解Python,Mojo绝对值得一试。以下是你需要了解的有关Mojo的所有信息。

如果我们已经有了Python,为什么还需要Mojo?

Python的简单性和多功能性使它成为数据科学、机器学习和人工智能等领域的首选语言。它有大量的包,对任何从事数据工作的人都非常有用,但对于需要强大性能的库来说,Python只是作为胶合层和C、C++及其他性能更好的语言的低级绑定。

这使得NumPy和TensorFlow等库的开发成为可能。然而,这也有一个缺点:构建这些库是非常复杂的,它需要对CPython的内部结构有底层的了解,需要C/C++的知识等等。

根据Mojo文件,Python带来的问题更加深入,特别是对AI领域的影响。

单靠Python并不能解决应用AI系统所需要的所有问题,这就是Mojo的诞生契机。Mojo是一种结合了Python的可用性和C的性能的编程语言。

但Mojo并不是突然出现的随机项目。事实上,Mojo来自一家名为Modular的公司,由克里斯-拉特纳(Chris Lattner)共同创立,他也是Swift编程语言和LLVM的创始人。

现在让我们来看看Mojo的一些最佳功能。

Mojo的特点

Mojo附带了许多开箱即用的有趣功能。下面是其中的一些。

1.Mojo被设计成Python的一个超集

Mojo的目标是与Python生态系统完全兼容。

这意味着,如果你是一个Python程序员,你可以轻松地使用Mojo,因为这两种编程语言有许多共同的功能、特性和库。

诸如NumPy、Pandas和Matplotlib等库也可以在Mojo中使用。下面介绍如何使用Mojo利用matplotlib制作一个图。

截图:Mojo

Mojo仍然处于非常早期的阶段,所以它仍然缺少了Python的许多特性(例如,它还不支持类)。

希望在未来的更新中,Mojo将与Python完全兼容。

2.强大的类型检查

Mojo利用类型来实现更好的性能和错误检查。

截图:Mojo

虽然你仍然可以像Python那样使用灵活的类型,但Mojo允许你使用严格的类型检查。这可以使你的代码更加可预测、更易于管理和更安全。

3.内存所有权和借用检查器

Mojo支持owned参数约定,该约定用于想要独占某个值的所有权的函数。

截图:Mojo

这将帮助你在没有粗糙边缘的情况下利用内存安全的优势。

4.自动调整

Mojo具有内置的自动调整功能,可帮助自动找到你的参数最佳值,以利用目标硬件的优势。

截图:Mojo

5.Mojo利用了MLIR

通过使用多级中间表征(MLIR)的全部力量,Mojo开发人员可以利用向量、线程和AI硬件的优势。

这有助于Mojo实现出色的性能,因为与Python的单线程执行不同,Mojo可以在多个核心上进行并行处理。

截图:Mojo

这就是为什么Mojo比Python快35000倍的原因之一。

截图:Mojo

如何试用Mojo

Mojo仍然处于开发中,但你可以在基于JupyterHub的Playground上试用它。要试用Mojo,请访问此网站(https://www.modular.com/get-started)进行注册,不要忘记在“Modular Product Interest”部分勾选Mojo的选项。

 

【相关讯息】

比Python快35000倍!下一代明星编程语言Mojo

“Mojo 可能是近几十年来最大的编程语言进步。”

由 LLVM 和 Swift 编程语言的联合创始人 Chris Lattner 创办的新公司 Modular AI 发布了一种名为 Mojo 的新编程语言。Mojo 将大家喜爱的 Python 特性,同 C、C++和 CUDA 的系统编程功能结合了起来,并通过其所谓“极限加速”与其他 Python 速度增强方案区分了开来。凭借着硬件加速,它在运行 Mandelbrot 等数字算法时比原始 Python 快上 3.5 万倍!

更重要的是,作为 LLVM 的缔造者, Chris Lattner 良好的出身为 Mojo 奠定了成功的基础。数据科学家、fast.ai 的创始研究员 Jeremy Howard 评价 Mojo 为“Mojo 可能是近几十年来最大的编程语言进步。”

为什么会有 Mojo?
对于全球各地开发者来说,我们应该都熟悉 Chris Lattner 这个名字。Chris Lattner 曾先后效力于苹果、谷歌和特斯拉等公司,参与创建了我们今天所依赖的许多项目:开发了 LLVM 编译器工具链、共同创建了 MLIR 编译器,并带头开发出 Swift 编程语言。最初,作为他博士论文的一部分,他开始了 LLVM 的开发。LLVM 最终从根本上改变了编译器的创建方式,构成了当今世界上许多应用广泛的语言生态系统的基础。然后他继续推出 Clang,这是一个位于 LLVM 之上的 C 和 C++ 编译器。

Chris 发现 C 和 C++ 并没有真正充分利用 LLVM 的强大功能,因此在苹果工作期间,他设计了一种名为“Swift”的新语言,他将其描述为“LLVM 的语法糖”。Swift 已经成为世界上使用最广泛的编程语言之一,特别是作为当今为 iPhone、iPad、MacOS 和 Apple TV 创建 iOS 应用程序的主要方式。不幸的是,苹果对 Swift 的控制意味着它还没有真正在苹果之外的世界大放异彩。Chris 在谷歌工作了一段时间,试图将 Swift 带出苹果的舒适区,希望它成为人工智能模型开发中 Python 的替代者,但遗憾的是他没有得到苹果或谷歌所需的支持,最终也没有成功。

话虽如此,Chris 在谷歌期间还开发了另一个取得巨大成功的项目:MLIR。MLIR 是现代多核计算和 AI 工作负载的 LLVM IR 的替代品。这对于充分利用 GPU、TPU 和越来越多地添加到服务器级 CPU 的矢量单元等硬件的强大功能至关重要。2022 年 1 月,Chris Lattner 正式宣布创业,和 Tim Davis 共同建立了“Modular AI”,希望自下而上重建全球 ML 基础设施。Tim Davis 曾经执掌谷歌机器学习项目,负责管理谷歌的机器学习 API、编译器和运行时基础设施。

他们在构建自己的平台以此统一世界上的 ML/AI 基础设施时,却意识到,在整个堆栈中编程太复杂了。“这些系统严重碎片化,硬件种类繁多,每个都有定制的工具”。

“我们想要的是一个创新的、可扩展的编程模型,可以针对加速器和其他机器学习中普遍存在的异构系统。这意味着一种具有强大的编译时元编程的编程语言,整合自适应编译技术,在整个编译流程中进行缓存,以及其他现有语言不支持的东西。”

所以在这种情况下,这家初创公司一口气公布了两个相关项目:Mojo,一种建立在 Python 基础上的编程语言,号称拥有与 C 比肩的速度优势;还有可移植、高性能 Modular 推荐引擎,能够在生产中以更低成本运行 AI 模型(所谓推理,就是经过训练的模型在实际场景中的使用过程)。

该公司表示,“Mojo 将研究人员喜爱的 Python 特性,同 C、C++和 CUDA 的系统编程功能结合了起来。”

“Mojo 建立在下一代编译器技术之上。当您向程序中添加类型时,该技术能够显著提高性能,帮助您定义零成本抽象、受益于 Rust 级别的内存安全特性,并支持独特的自动调优和编译时元编程能力。”

“Mojo 从 Rust 和 Swift 中学到了很多东西,并更进了一步。”

Mojo:比 Python 快 35000 倍的编程语言
Mojo 是 Python 家族的一员,但有着远大的目标——想要与 Python 生态系统完全兼容,因此开发人员可以继续使用自己熟悉的工具。Mojo 旨在通过保留 Python 的动态特性,同时为系统编程添加新原语,逐渐成为 Python 的超集。这些新的系统编程原语将允许 Mojo 开发人员构建当前需要 C、C++、Rust、CUDA 和其他加速器系统的高性能库。

在 MLIR 上,Mojo 代码可以访问各种 AI 调优的硬件功能,例如 TensorCores 和 AMX 扩展。因此,对于某些特定算法类型,它的速度要远远超过原始 Python——它在 AWS r7iz.metal-16xl 上运行 Mandelbrot 算法只需 0.03 秒,而 Python 3.10.9 则需要 1027 秒(约 17 分钟)。

Chris Lattner 在 Hacker News 上表示:“我们的目标不是让动态 Python 神奇地快速。虽然我们在动态代码方面要快得多(因为我们有编译器而不是解释器),但这并不是依靠‘足够智能’的编译器来消除动态性”。他表示,Mojo 比 Python 快得多的原因是它让程序员可控制静态行为,并且可以在有意义的地方逐步采用它。这样做的关键回报是编译过程非常简单,不需要 JIT,还可以获得可预测和可控的性能。

Mojo 仍在开发当中,但目前已经开放了试用 Jupyter notebook。到全面完成之后,它有望成为 Python 的超集——一个带有系统编程工具包的 Python 生态系统。到那个时候,它应该能够运行一切 Python 程序。但目前,Mojo 还仅支持 Python 的核心功能,包括 async/await、错误处理和可变参数,距离全面兼容还有很长的路要走。

“感觉编程被颠覆了”
在周四发布的公告中,Fast.ai 联合创始人、数据科学家 Jeremy Howard 表示,“Mojo 可能是近几十年来最大的编程语言进步。”“‘镇’上出现了一种新的编程语言: Mojo!我对此感到非常兴奋。它像 Python,但没有 Python 的任何问题。你可以像 C 一样快速编写代码,并像 C 一样部署小型独立应用程序。”

“感觉编程被颠覆了。”在 Jeremy Howard 的记忆中,上次有这样的感觉,还是他首次上手 Visual Basic v1.0。

Jeremy Howard 是 Python 的重度使用者,Python 可以并且确实可以做任何事情,但它有一个缺点:性能,它比 C++ 等语言慢数千倍。利用 Python 进行开发需要避免用 Python 来实现性能关键部分,并采用 Python 包装器来覆盖 C、FORTRAN、Rust 等代码。

因此,凭借着生态系统的丰富性,Python 确实在 AI 模型开发领域占据优势,但又因为性能有限,Python 程序员往往最终会将代码指向运行速度更快的其他语言(例如 C/C++和 Rust)模块。这种“双语”现实导致机器学习应用程序的分析、调试、学习和部署变得愈发困难。Howard 解释道,Mojo 试图解决的就是 AI 内部这种割裂现实。

“Mojo 的一大亮点在于,开发人员可以随时选择更快的‘模式’,使用‘fn’替代‘def’创建自己的函数。在这种模式下,开发者必须准确声明每个变量的类型,这样 Mojo 就能创建出经过优化的机器码来实现所需函数。”

“此外,如果使用‘struct’来替代‘class’,属性就会被紧密打包到内存中,甚至可以直接在数据结构内使用、而无需到处寻找指针。这些特性让它获得了堪与 C 语言比肩的运行速度,也让 Python 程序员们在稍微学习一点新语法之后就能掌握这处性能宝藏。”

Mojo 的另一个好处,在于能将代码编译成独立且快速启动的二进制文件,使其轻松借助可用核心和加速硬件的优势完成部署。作为一种编译型语言,Mojo 的部署过程与 C 基本相同。例如,一个包含从头编写的 matmul 版本的示例程序大约在 100k 左右。

“这彻底的颠覆了传统游戏规则。”
当然,目前的 Mojo 仍有一定缺失,比如包管理和构建系统——这也是 Python 社区长久以来一直努力解决的需求。另外,Mojo 语言尚未指定开源许可,但相信只是时间问题。

Howard 在推文中总结道,“Mojo 还没有最终完成——但目前的成果已经令人兴奋,毕竟它是由一支体量极小的团队在短时间内打造而成。Lattner 凭借着多年的 Clang、LLVM 和 Swift 开发经验,为我们奠定了又一块精心构建的语言基石。”

相关栏目:『科技前沿
工信部:未来产业六大方向聚焦人形机器人、脑机接口、量子科技等领域 2024-11-06 [295]
Gartner 公布2025年十大战略技术趋势 2024-10-31 [452]
这样图解Transformer应该没人看不懂了吧——Transformer工作原理 2024-10-16 [820]
Nature:智能体涌现出语言 2024-10-16 [796]
50个顶级ChatGPT论文指令 2024-10-10 [1010]
推荐五种简单有效的数据可视化方式 2024-10-10 [939]
这么有深度的文章是ChatGPT写的? 2024-10-10 [938]
讲透一个强大的算法模型,CNN!! 2024-10-10 [930]
人类与 AI 协同的三种模式 2024-10-10 [556]
11 种经典时间序列预测方法! 2024-10-09 [489]
相关栏目更多文章
最新图文:
慕波:爬取7万条帖子  看看人们都是怎么吐槽相亲的 :陈文玲: 必须推动中美关系回到正确轨道 Colleen Flaherty 翻译 刘勤:MIT教授发文《美国经济评论》 :生命科学受益于明星科学家们的死亡 :北京和上海金融人的最新鄙视链 :日本政府《氢能利用进度表》 :美国《2016-2045年新兴科技趋势报告》 :天津工业大学“经纬英才”引进计划 :浙江财经大学国际青年学者论坛的邀请函 (10/31-11/1)
更多最新图文
更多《即时通讯》>>
 
打印本文章
 
您的名字:
电子邮件:
留言内容:
注意: 留言内容不要超过4000字,否则会被截断。
未 审 核:  是
  
关于我们联系我们申请加入后台管理设为主页加入收藏
美国华裔教授专家网版权所有,谢绝拷贝。如欲选登或发表,请与美国华裔教授专家网联系。
Copyright © 2024 ScholarsUpdate.com. All Rights Reserved.