百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Swift 之父 Chris Lattner 再创新编程语言 Mojo:它不会取代 Python,该担心的是 C++!

off999 2024-11-24 20:09 15 浏览 0 评论

整理 | 屠敏
出品 | CSDN(ID:CSDNnews)

在 AI 带来全新开发范式之际,开发者底层工具发生了巨大变化,随之而来的是基础软件之编程语言领域也涌现出不少新面孔,Mojo 便是其中一个。

相信一直身处技术圈的很多从业者对 Mojo 也有所耳闻,这款编程语言自诞生之日起便自带光环,它是由 Swift 之父、编译器大神 Chris Lattner 背后的初创团队开发,在今年 5 月宣称比 Python 快 35000 倍的立场后惊艳亮相。

如今仅仅几个月过去,旨在成为 AI 开发者的全新编程语言 Mojo 背后的开发商 Modular 备受资本的青睐,拿下 1 亿美元的融资。

这也再一次证明,在技术圈中,要论最火热的领域,无疑还属 AI。

Mojo 背后的 Modular 公司获得 1 亿美元融资

在谈及 Mojo 如何成为 AI 时代“新利器”之前,我们不妨来了解一下其背后的公司 Modular。

Modular 是 Chris Lattner 和 AI 领域专家 Tim Davis 于 2022 年 1 月共同建立的 AI 初创公司。

众所周知,Chris Lattner 是 LLVM 项目的主要发起人与作者之一,他曾受雇于苹果公司,为苹果电脑开发应用程序系统,在这家公司任职的多年间,先后发起 Clang 项目、设计 Swift 编程语言,而后功成身退,选择离开苹果。又因认为「Swift 核心团队会议中的存在“有毒环境”」,而选择正式退出 Swift 核心开发团队。

离开之后,Chris 进入特斯拉,负责自动驾驶软件开发;又在 2017 年 8 月加入了聚焦深度学习和人工智能研发的 Google Brain 团队;2020 年,Chris 加入了专注于 RISC-V 架构的芯片初创公司 SiFive,任职平台工程高级副总裁。

彼时在 Google 工作期间,他相识了为 TensorFlow 做开发的 AI 专家 Tim Davis,而后两人带着对「AI 未知的探索」于 2022 年创建 Modular。

谈及成立 Modular的初衷,Lattner 和 Davis 都认为人工智能受到了过于复杂和分散的技术基础设施的阻碍,因此想要通过创立 Modular 来专注于消除大规模构建和维护人工智能系统的复杂性。

现如今他们对这一领域的探索受到了资本的支持,根据 Modular 官方发布的公告显示,其最新获得 1 亿美元融资由 General Catalyst 领投、Google Ventures、SV Angel、Greylock、Factory 等参与其中。

现任 Mojo CEO Chris Lattner 表示,Modular 的融资总额累计达到了 1.3 亿美元,所得款项将用于产品扩展、硬件支持和 Modular 编程语言的扩展。

AI 时代的第一步——构建 AI 引擎

作为 AI 新时代的探索者,初创公司 Modular 为降低构建 AI 的复杂性,做出的第一步尝试就是研发了一个 AI 引擎,试图提高 AI 模型在 CPU 上的推理性能,同时节省成本。

值得关注的是,Modular 的引擎与现有的云环境、机器学习框架(如 Google 的 TensorFlow 和 Meta 的 PyTorch)以及其他 AI 加速器引擎兼容,只是目前该引擎仍处于内部预览状态,可让开发人员导入经过训练的模型,并比在原生框架上运行速度提高 7.5 倍。

Davis 表示,Modular AI 引擎在功能上是 AI 框架的新后端,可直接替代 PyTorch 和 TensorFlow 现有的执行引擎。

虽然当前 Modular 的引擎适用于人工智能推理,但它计划在未来扩展到训练工作负载。

降低 AI 复杂度的第二步——开发一款全新的编程语言 Mojo

Modular 想要解决 AI 时代的另一个挑战是 AI 编程语言。

就目前而言,相比不少开发者经常使用 Python 编程语言来开发 AI 模型,因为它相对简单,还拥有简洁的语法。与其他语言相比,Python 可以更轻松地实现神经网络。

然而,不容忽视的是,Python 可以保持简单与简洁的背后是以性能为代价的,这意味着用 Python 编写的程序可能很慢。

与此同时,Python 面临的挑战是它有一些技术限制,比如全局解释器锁无法进行大规模并行化风格的执行。因此,当开发者处理更大的工作负载时,它们需要自定义内存布局,并且必须切换到 C++ 以获得性能并能够正确扩展。

在 Modular 团队来看,AI 时代在使用 Python 开发的同时,总是需要依赖 C、Rust 等其他高性能语言来实现特定性能的代码部分,总需要两种语言未免太为复杂,如今 Mojo 旨在解决这些问题。

Mojo 可以视为是 Python 的一个超集,它不需要开发人员了解 Python 和 C++,而是提供了一种可以支持现有 Python 代码并具有所需性能和可扩展性的单一语言。

其中,Mojo 提供了类似于 Python 的内存安全机制,但不会对性能产生重大影响。此外,它减少了确保 AI 模型在多种类型芯片上良好运行所需的手动编码量。

Mojo 会取代 Python 吗?Mojo 之父:别担心,它对标的是 C++

那么,Mojo 真的如官方所言,比 Python 快 35000 倍吗?

需要了解的是,目前 Mojo 并未完全对外开放。Chris Lattner 表示,Mojo 的公开版本将在九月初上线。

因此,具体的性能如何,可能还需要等待些时日才能知晓。

不过,对于现在要想要尝鲜的用户,Modular 通过 Modular Playground 提供对 Mojo 的早期访问,Modular Playground 是一个在 Modular 服务器上运行的基于 Web 的 Jupyter Notebook 环境,这也意味着你可以通过任何带有网络浏览器的计算机运行 Mojo。

根据 Mojo 的文档显示,Mojo 实现了系统级的优化和灵活性,能以 Python 无法实现的方式释放任何设备的性能。此前,Modular 在发布主题演讲中展示的 Mondelbrot 基准测试在 AWS r7iz.metal-16xl 机器上运行,得出了 Mojo 可以比 Python 快 35000 倍的概念。

而在其最新官方博客(https://www.modular.com/blog/how-mojo-gets-a-35-000x-speedup-over-python-part-1)中,Modular 开发团队采用了 Mandelbro 再次测试了 Mojo 的性能,最终得出:与 Python 相比,即使在不更改代码的情况下将代码从 Python 迁移到 Mojo,也能实现 46 倍的加速。

所以说,3500 倍是一个很大的数字,即使每台机器都无法保证这些数字,也并不意味着 Mojo 就是失败的。它的的确确有效地提升了 Python 的速度。

至此,有网友开始担心,「Python 能渡过难关吗?对于开发者而言,Mojo 会取代 Python 吗?」

对此,Mojo 之父 Chris Lattner 于近日正面回应道,「Mojo 对 Python 没有威胁:它提升了 Python 的水平并赋予 Python 程序员超能力。如果有人应该害怕的话,那就应该是 C++ ,这种很难使用加速器语言。Python 是开发人员所喜爱的:当你需要性能时,C++ 基本上是一种实用的必要之恶。」

最后,在 AI 时代,作为开发者的你所使用的开发工具是否有变化?亦或者对于全新的 AI 开发工具持有什么样的看法?

参考:

https://www.modular.com/blog/how-mojo-gets-a-35-000x-speedup-over-python-part-1

https://venturebeat.com/ai/modular-looks-to-boost-ai-mojo-with-100m-funding-raise/

https://techcrunch.com/2023/08/24/modular-raises-100m-for-ai-dev-tools/

相关推荐

Python四种常用的高阶函数,你会用了吗

每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试1、什么是高阶函数把函数作为参数传入,这样的函数称为高阶函数例如:...

Python之函数进阶-函数加强(上)(python函数的作用增强代码的可读性)

一.递归函数递归是一种编程技术,其中函数调用自身以解决问题。递归函数需要有一个或多个终止条件,以防止无限递归。递归可以用于解决许多问题,例如排序、搜索、解析语法等。递归的优点是代码简洁、易于理解,并...

数据分析-一元线性回归分析Python

前面几篇介绍了数据的相关性分析,通过相关性分析可以看出变量之间的相关性程度。如果我们已经发现变量之间存在明显的相关性了,接下来就可以通过回归分析,计算出具体的相关值,然后可以用于对其他数据的预测。本篇...

python基础函数(python函数总结)

Python函数是代码复用的核心工具,掌握基础函数的使用是编程的关键。以下是Python函数的系统总结,包含内置函数和自定义函数的详细用法,以及实际应用场景。一、Python内置函数(...

python进阶100集(9)int数据类型深入分析

一、基本概念int数据类型基本上来说这里指的都是整形,下一届我们会讲解整形和浮点型的转化,以及精度问题!a=100b=a这里a是变量名,100就是int数据对象,b指向的是a指向的对象,...

Python学不会来打我(73)python常用的高阶函数汇总

python最常用的高阶函数有counter(),sorted(),map(),reduce(),filter()。很多高阶函数都是将一个基础函数作为第一个参数,将另外一个容器集合作为第二个参数,然...

python中有哪些内置函数可用于编写数值表达式?

在Python中,用于编写数值表达式的内置函数很多,它们可以帮助你处理数学运算、类型转换、数值判断等。以下是常用的内置函数(不需要导入模块)按类别归类说明:一、基础数值处理函数函数作用示例ab...

如何在Python中获取数字的绝对值?

Python有两种获取数字绝对值的方法:内置abs()函数返回绝对值。math.fabs()函数还返回浮点绝对值。abs()函数获取绝对值内置abs()函数返回绝对值,要使用该函数,只需直接调用:a...

【Python大语言模型系列】使用dify云版本开发一个智能客服机器人

这是我的第359篇原创文章。一、引言上篇文章我们介绍了如何使用dify云版本开发一个简单的工作流:【Python大语言模型系列】一文教你使用dify云版本开发一个AI工作流(完整教程)这篇文章我们将引...

Python3.11版本使用thriftpy2的问题

Python3.11于2022年10月24日发布,但目前thriftpy2在Python3.11版本下无法安装,如果有使用thriftpy2的童鞋,建议晚点再升级到最新版本。...

uwsgi的python2+3多版本共存(python多版本兼容)

一、第一种方式(virtualenv)1、首先,机器需要有python2和python3的可执行环境。确保pip和pip3命令可用。原理就是在哪个环境下安装uwsgi。uwsgi启动的时候,就用的哪个...

解释一下Python脚本中版本号声明的作用

在Python脚本中声明版本号(如__version__变量)是一种常见的元数据管理实践,在IronPython的兼容性验证机制中具有重要作用。以下是版本号声明的核心作用及实现原理:一、版本号...

除了版本号声明,还有哪些元数据可以用于Python脚本的兼容性管理

在Python脚本的兼容性管理中,除了版本号声明外,还有多种元数据可以用于增强脚本与宿主环境的交互和验证。以下是一些关键的元数据类型及其应用场景:一、环境依赖声明1.Python版本要求pyth...

今年回家没票了?不,我有高科技抢票

零基础使用抢票开源软件Py12306一年一度的抢票季就要到了,今天给大家科普一下一款软件的使用方法。软件目前是开源的,禁止用于商用。首先需要在电脑上安装python3.7,首先从官网下载对应的安装包,...

生猛!春运抢票神器成GitHub热榜第一,过年回家全靠它了

作者:车栗子发自:凹非寺量子位报道春节抢票正在如火如荼的进行,过年回家那肯定需要抢票,每年的抢票大战,都是一场硬战,没有一个好工具,怎么能上战场死锁呢。今天小编推荐一个Python抢票工具,送到...

取消回复欢迎 发表评论: