比Python快68000倍的Mojo语言来了,Rust尚能饭否?

科技太和君 2024-08-09 02:16:00

人工智能明星初创公司Modular由前谷歌工程师拉特纳和戴维斯共同成立,其初创理念是为了消除大规模构建和维护AI系统的复杂性。在经历了几轮天使融资后,Modular募集了约1.3亿美元资金,随后也带来了它们的初创成果——一个基于Python的新型AI开发编程语言Mojo。

Modular公司宣布Mojo的使用现已全部开启,其软件开发套件现可在Linux系统里下载,随后将支持Mac和Win。该SDK不仅包括Mojo,还包括用于简化开发人员工作的支持组件。

Mojo是一种基于Python语言,可认为是Python的超集,旨在帮助AI开发人员从多样化的计算资源中获得最大性能。Mojo语言的创建者,包括Modular公司CEO拉特纳和总裁戴维斯,他俩对处理现代AI框架的技术蔓延问题感到烦恼,希望有一种语言能够处理与AI相关的一系列包揽任务。这种创新且可扩展的编程模型,可以针对人工智能领域普遍存在的加速器和其他异构系统。

开发人员通常使用Python语言编写AI程序代码,Python提供的语法简洁易懂,使用相对较少的代码行就能完成更多复杂的任务。但是Python有一个主要缺点:速度相对较慢,这会影响用该语言编写的AI应用程序的性能。Modular开发的Mojo语言,可作为Python更快的替代品。这家初创公司声称,用Mojo编写的程序的其运行速度比使用 Python实现的程序快68000倍。这一价值的主张引起了编程从业者和爱好者们极大兴趣和关注。

Mojo的一个核心卖点是它的语法在很多方面与Python相似,这意味着编写AI代码相对简单。虽然也有几种成熟的编程语言比Python要快(比如Rust),但是也相对更难学习和掌握。Python的易用性的一个主要特征是它提供了大量的包,这些是由开源社区编写的预打包软件构建块。开发人员无需从头开始构建AI应用程序,通过开源Python包和自定义代码的组合来构建应用程序,从而节省了时间。

Modular表示Mojo可以和许多现有的Python包一起使用,因此开发人员在编写新应用程序时不必从头开始布局。Mojo还能以其他方式简化人工智能代码,比如在同一应用程序中通过优化代码来减少使用多种编程语言的必要。在优先考虑性能的企业人工智能项目中,开发人员通常将Python与更快的语言(例如C++或CUDA)结合起来。Python用于实现人工智能应用程序中相对简单的组件,反过来,更快的编程语言用于编写需要更快运行性能的敏感组件。

使用多种编程语言编写应用程序会使开发人员更难阅读其代码,从而工作效率低下。当BUG出现时,代码故障排除也更为困难。调试工具通常不足以应付用多种语言编写的程序进行排错。

Mojo SDK的第一个组件是shell或命令行工具,开发人员可以用它来管理代码的格式并创建解释其工作原理的文档,还可以使用 shell将原始代码转换为可运行的程序。该工具与当下被广泛使用的代码编辑器Visual Studio Code的扩展一起提供,该扩展在编辑器界面中能够给出智能提示建议。SDK还提供了其他几个生产力套件,包括从Visual Studio界面中快速访问有关Mojo语法说明的功能。

新SDK的第三个组件是与Jupyter Notebook的集成。这是一种流行的开源交互式笔记本,可用于人工智能开发任务。Jupyter Notebook允许开发人员编写代码,然后运行它来测试其在单个界面中的运行状态,从而加快原型设计速度。

至于Mojo能否取代Python?从Mojo的第一次公开宣传就证实了它是一种数据科学和机器学习语言,这两个特征也是构成 Python现代用例的重要组成部分。不是因为Python本身快慢的问题,而是因为它为难以在应用程序运行速度和为其提供了方便的编程接口之间作出平衡。

Mojo显然是为了提供该用例的默认快速版本,用户无需使用外部库即可加快速度。Mojo的目标并非是(至少在早期)Python更广泛的用例集(Web后端、流程自动化等),除非日后Mojo拥有更加完善且更为丰富的第三方库集合,但这是后话。所以,即使Mojo默认情况下速度更快,也很难取代Python在机器学习和数据科学中的地位。与其关注这个话题,不如看看Mojo如何继续沿着兼容Python和高速用例的方向发展来得有趣。

0 阅读:0