新智元报道
编辑:Mindy
【新智元导读】苹果新发布适用于苹果芯片的机器学习框架MLX,MLX是一个类似于NumPy的阵列框架,旨在为使用苹果硬件的研究人员简化 ML 模型的训练和部署。
一直以来,英伟达C++UDA称霸天下,使得它在AI领域的势力不可动摇。
对于许多人来说,都希望打破这个护城河,比如PyTorch支持更多GPU,OpenAI的Triton等等。近日,苹果针对使用苹果芯片的机器学习研究人员,专门发布了一款机器学习框架MLX。苹果机器学习团队的Awni Hannun在X-note中将该软件称为:「……专为苹果芯片设计的高效机器学习框架」。MLX使用起来类似PyTorch、Jax和ArrayFire等现有框架。但是,MLX针对Apple芯片进行了优化。以前受困于艰难使用M芯片GPU跑模型的研究人员,现在终于可以摆脱这个苦恼了!同时,MLX增加了对统一内存模型的支持,这也意味着阵列位于共享内存中,并且可以在任何支持的设备类型上执行操作,而无需执行数据复制。那么,一旦苹果的其他产品也能够开始跑模型……有没有很期待!英伟达高级科学家Jim Fan表示,这可能是苹果公司迄今为止在开源人工智能方面的最大举措:
MLX特别之处
先让我们来看看MLX的速度:一位网友对MLX的速度进行了测试,他在推文中表示,使用Apple MLX框架进行计算的速度,M2 Ultra(76个GPU)可达到每秒5次迭代(It/sec),而M3 Max(40个GPU)可以达到每秒2.8次迭代。这个速度是与Pytorch几乎持平的。MLX的另一大特点,像Jim Fan指出的那样,是它设计出色的API。对深度学习领域的开发人员来说,上手几乎零成本。这是因为MLX 的设计灵感来自于 PyTorch、Jax 和 ArrayFire 等现有框架。研究团队解释道:「Python API 与 NumPy 高度相似,只有少数例外。MLX 还拥有一个功能齐全的 C++ API,它与 Python API 高度一致。」研究团队对该设计的目的作了补充:「该框架旨在兼顾对用户操作友好,同时保持训练和部署模型的高效。我们的目标是使研究人员能够轻松扩展和改进 MLX,以便快速探索新的想法。」除了可以轻松上手的API之外,MLX的一些其他关键特性还包括:
-
可组合的函数变换:MLX含有用于自动微分、自动向量化和计算图优化的可组合函数变换,这对于优化和加速机器学习模型的训练过程非常有用。
-
延迟计算:MLX支持延迟计算,数组只在需要时才会被实例化。
-
动态图构建:MLX中的计算图是动态构建的。改变函数参数的形状不会触发缓慢的编译,调试也简单直观。这使得模型的开发和调试更加灵活和高效。
-
多设备支持:操作可以在任何支持的设备上运行(目前支持CPU和GPU)。
-
统一内存:MLX与其他框架的显著区别在于统一的内存模型。在MLX中,数组存在于共享内存中,对MLX数组的操作可以在任何支持的设备类型上执行,而无需移动数据。
MLX Data
除了发布MLX以外,苹果机器学习团队还一起发表了MLX Data。这是一个与MLX框架无关的数据加载库,可以与PyTorch、Jax或MLX一同使用。MLX Data可以用于加载大规模数据集,也可以独立用于数据预处理,以供机器学习训练使用。该库的目标是允许用户利用多线程来加速数据处理流水线,而无需涉及复杂的多进程操作或使用符号语言编写代码。这有利于帮助提高数据加载和预处理的效率。
MLX示例展示
目前,用户可以通过PyPI轻松安装MLX,只需执行以下命令:pip install mlx用户需要确保满足以下安装要求:– 使用M系列芯片(苹果芯片)– 使用本地Python版本不低于3.8– MacOS版本需不低于13.3研究团队同时提供了一系列有关 MLX 功能的示例,包括Transformer语言模型训练、使用LLaMA进行大规模文本生成、使用LoRA进行微调、使用稳定扩散生成图像,以及用OpenAI的Whisper进行语音识别等。详情可见Github:https://github.com/ml-explore/mlx-examples/tree/main。这些例子也侧面证明了该公司在语言处理、图像生成和语音识别等方面的技术实力和工具的强大程度。其他开发人员也对于MLX进行了其他有趣的尝试,比如一位来自塞浦路斯大学的教授,在使用PyTorch和新的MLX框架的情况下,成功在Apple M2 Ultra GPU上解决了一个板上的二维热传导方程问题,其中包含两个Dirichlet和两个Neumann边界条件。有趣的是,MLX的计算速度大约是之前的两倍,并且可以直接使用Matplotlib进行绘图,无需转移到CPU。
从MLX一瞥苹果对于人工智能的展望
普惠机器学习研究团队一再强调,「MLX是由机器学习研究人员为机器学习研究人员设计的。」 这表明苹果意识到为机器学习开发开放、易于使用的开发环境的需求,以促进该领域的进一步发展。芯片技术因为苹果的处理器现在存在于其所有产品中,包括Mac、iPhone和iPad。这种在这些芯片上使用GPU、CPU和(有可能在某个时刻)神经引擎的方法可能会转化为在设备上执行ML模型。其性能可能超过其他处理器,至少在边缘设备方面。开发工具的重要性苹果明确决定将重点放在为机器学习研究人员提供最佳工具上,包括强大的M3 Mac,用于模型构建。现在,他们进一步希望将这种关注转化为对普通用户而言可行、以人为本的AI工具。总体而言,苹果希望通过提供强大的工具和在不同设备上的性能优势,将机器学习和人工智能推向更广泛的用户。这场AI产业的战争仅仅刚刚开始。参考资料:https://www.computerworld.com/article/3711408/apple-launches-mlx-machine-learning-framework-for-apple-silicon.html