Mojo——会燃的 AI 编程语言

点击链接了解详情


导语:本文简介 Mojo 的背景与特点,并分享如何通过腾讯云 Cloudstudio 的 WebIDE 和分享社区快速学习和上手 Mojo。

🔥🔥🔥 腾讯云 Cloud Studio 已开放 Mojo 应用模版。

什么是 Mojo

Mojo 是基于 Python 而生的编程语言,它结合了 Python 的简易性和 C 语言的强大性能,能够实现硬件的丰富功能,如多核、向量单元和加速器单元。Mojo 能对大量低级 AI 硬件进行编程,并且轻松扩展模型,为开发者提供卓越的性能体验。

Mojo 出现的背景

当下,AI 模型的开发基本都是使用 Python 完成。但 Python 性能相对较慢,对于大规模的计算密集型任务,并不是最佳选择。在使用多线程时,Python 解释器中的全局解释器锁不能充分发挥多核处理器的优势,一定程度增加了 AI 模型开发的复杂性。且 Python 的内存占用通常较高,在规模的数据集和复杂的模型中,会因频繁的内存交换而变得效率低下,尤其会限制可处理的数据规模。这无疑是减缓 AI 模型创新发展的步伐。伴随着机器学习需求与日俱增,Mojo 应运而生。

Mojo 的优点

  • 可用性和可编程性

开发者使用 Mojo 进行编程,无需再单独掌握 C++ 或 CUDA 等其他语言,通过 Mojo 一种语言即可完成 AI 模型所有内容的编写。Mojo 的高级语法完全基于 Python,其使用起来像 Python 一样简单,但具有 C++ 和 Rust 的性能。并且 Mojo 能够实现自动并行化,很大程度降低了开发者的使用门槛。

  • 性能强大

Mojo 的性能号称比 Python 快 68000 倍。因为 Mojo 是静态编译的,静态编译语言的代码在执行之前经过编译器编译过程,将代码直接编译成机器码。在运行时不需要进行解释或动态编译,从而在计算密集型任务上具有明显的性能优势。此外,Mojo 利用 MLIR,使开发人员可以轻松利用向量、线程和 AI 硬件单元。

  • 互操作性和可扩展性

Mojo 支持访问完整的 Python 科学计算库,如 Numpy、SciPy、Pandas、Matplotlib 以及用户自定义代码,提供了丰富的机器学习算法、工具以及深度学习框架等,随着时间的推移将发展成 Python 的超集,使得在 Mojo 上开发和训练复杂的机器学习模型更加容易和高效。

总之,Mojo 是面向 AI 的编程语言,是一种创新且可扩展的编程模型,用于解决开发者在构建机器学习基础设施时,面临的整个堆栈编程过于复杂的问题。Mojo 又被称为 Python 的超集,它比 Python更适用于系统编程,同时,Mojo 支持任何 Python 模块导入 Mojo 程序中,让开发者可以充分使用高性能代码,不会增加开发门槛。另外,在 AI 模型开发过程中,Mojo 可以通过“fn”创建函数,以构建更复杂的函数管道或函数链,从而实现更高级的功能,为 AI 模型创新提供更稳定、快速、高质量的开发环境。

腾讯云 Cloud Studio 相关服务

  1. 腾讯云 Cloud Studio 是腾讯云的面向云端开发的 IDE 产品。内置了 Mojo 镜像和官方全部 Mojo 示例:Cloud Studio

登陆后选择 Mojo 镜像,点击和直接可以编辑、运行,也可以按需提高运行的资源配置,使用示例如下所示:

  • 代码运行

运行 Mojo 代码文件。打开 mojo 模版中的 hello.🔥 文件。

写入以下代码保存:

1
2
3
rint("Hello cloudstudio Mojo 🔥!")
for x in range(9, 0, -3):
print(x)

运行得到:

  1. 腾讯云CloudStudio也具备开发爱好者交流学习分享的应用社区:club.cloudstudio.net

社区中已提供 Mojo 相关学习资料,文中对 Mojo 基础语法、Python 集成进行了科普,点击【快速体验】即可通过应用查看。

点击【复刻】可进入 IDE Mojo 模版进行编码体验。

大模型加速效果测评

根据该 benchmark 测试结果(GitHub - tairov/llama2.mojo: Inference Llama 2 in one file of pure 🔥), 看起来官方宣称的超 Python 68000 倍的最大加速效果也许有些夸大,但 llama2 15M 模型下 Mojo 相比于 Python 来说确实加速了不少(我们自己测试速度倍差比该结果稍大)。而且 Mojo 还在起步阶段,如果它真能达到所畅想的目标,还是很有前景的。