# 热门搜索 #
搜索
​苹果版CUDA来了!专为自家芯片打造,M3 Max可跑每秒迭代2.8次
7061点击    2023-12-18 14:45


苹果新发布适用于苹果芯片的机器学习框架MLX,MLX是一个类似于NumPy的阵列框架,旨在为使用苹果硬件的研究人员简化 ML 模型的训练和部署。


一直以来,英伟达CUDA称霸天下,使得它在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的一些其他关键特性还包括:


  1. 可组合的函数变换:MLX含有用于自动微分、自动向量化和计算图优化的可组合函数变换,这对于优化和加速机器学习模型的训练过程非常有用。
  2. 延迟计算:MLX支持延迟计算,数组只在需要时才会被实例化。
  3. 动态图构建:MLX中的计算图是动态构建的。改变函数参数的形状不会触发缓慢的编译,调试也简单直观。这使得模型的开发和调试更加灵活和高效。
  4. 多设备支持:操作可以在任何支持的设备上运行(目前支持CPU和GPU)。
  5. 统一内存: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


文章来自于微信公众号“新智元”



AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

2
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner