从头造轮子 or 重复造轮子?苹果开源 MLX,为自家芯片专属定制机器学习框架

1 年前

大厂事

资讯

Yang Bai

特色图像

北京时间 12 月 6 日,苹果机器学习研究中心 (Apple machine learning research) 在 GitHub 上开源 MLX 。

苹果机器学习研究中心研究科学家 Awni Hannun  在个人 Twitter 宣布这一消息

苹果芯片「专属定制版」机器学习框架

MLX 是一个专为苹果芯片设计的机器学习框架,旨在保证用户友好的前提下,支持高效地在苹果芯片上训练及部署模型。

MLX 设计理念简单,参考了 NumPy 、 PyTorch 、 Jax 和 ArrayFire 等框架,其关键功能包括:

* 熟悉的 API:MLX 的 Python API 跟 NumPy  非常类似,同时 MLX 还有一个功能齐全的 C++ API,此外 MLX 还有类似 `mlx.nn`  和 `mlx.optimizer`  这些更高阶的包,跟 PyTorch  API 很像,可以简化复杂模型的构建。

* 可组合的函数转换:MLX 具有可组合的函数转换,可用于自动微分、自动向量化和计算图优化。

* 延迟计算 (Lazy computation):MLX 中的计算是延迟执行的,Array 只在需要的时候才会创建。

* 动态图构建:MLX 中的计算图是动态构建的,更改函数参数的 shapes 不会降低编译速度,调试也更简单直观。

* 多设备支持:Operations 可以在任意支持的设备上运行(目前支持 CPU 和 GPU)。

* 统一内存:统一内存模型 (unified memory model) 是 MLX 和其他框架的显著区别。 MLX 中的 Array 保存在共享内存中,无需移动数据就可以在任意支持的设备上执行操作。

根据官方 GitHub Repo  介绍,MLX 已更新多个热门教程,包含:

* Transformer 语言模型训练

* 用 LLaMA 生成大规模文本,并用 LoRA  进行 finetuning

* 用 Stable Diffusion 生成图像

* 用 OpenAI Whisper 进行语音识别

详情可访问:

https://github.com/ml-explore/mlx/tree/main/examples

从头造轮子 or 重复造轮子?

针对苹果此次发布的 MLX,呈现了两种截然不同的声音。

✅ 正方代表:

MLX 作为一个针对苹果芯片优化的 PyTorch-style 神经网络架构,可能是苹果在 AI 开源领域,迄今为止最重要的举措。

2018 年图灵奖得主、 Meta 首席 AI 科学家 Yann LeCun 也直呼干得漂亮

盼着能给英伟达点儿压力,降价提效、推出更好的消费级 GPU

苹果对 AI 开源的承诺值得赞扬,MLX 称得上是在苹果芯片上进行深度学习的一场变革。

Cool!啥时候才能有可以在本地运行的类似 GPT-4 这样的高质量模型啊!MLX 带来了巨大的想象力。

❌  反方代表:

他们本可以跟 @PyTorchTeam 合作,发布针对苹果芯片优化的 PyTorch 后端!!
现在开发者不得不打两份工了,既要支持这个,又要构建一个 wrapper 同时支持 PyTorch 和 MLX!

这东西怎么用于部署啊?除非它能跟英伟达、 AMD 等支持的框架兼容,不然 MLX 对机器学习生态就是一种伤害(没有 MacBook 就不能进行机器学习)

苹果,又㕛叒叕重复造轮子

一图胜千言 

GitHub Issue:晚点吵先把 Bug 修了

Talk is cheap. Show me the code.

在尝试从 MacBook 终端安装运行 MLX 的过程中,我们发现官方提供的安装代码出现报错,MLX GitHub Repo 中也有多位工程师遇到类似问题。

截止发稿,已有 10 位工程师
在该 Issue 下反馈了安装报错问题

无论 MLX 能否一举成为开发者在苹果设备上进行模型训练及部署的实用框架,咱就是说能不能先把 Bug 修了啊?!

在线等,挺急的。