MLX
又称:Apple MLX、MLX框架
更新于
定义
MLX是一个面向Apple芯片的开源机器学习数组框架,由Apple的机器学习研究团队开发。许多语言模型和语音模型都借助它在Mac自身的芯片上运行。
如果你为Mac下载的模型名称以MLX结尾,或者它来自某个MLX模型合集,意思就是:它的权重已被转换为这个框架能读取的格式。
MLX是给开发者和研究人员用的工具,不是为了使用某个App而需要安装的东西。使用它的App会把它内置在里面。它以MIT许可证发布,第一个公开版本出现在2023年底。
为什么它适合Mac
Apple的介绍指出了它与其他框架的一个不同之处:统一内存模型。在Apple芯片上,处理器和图形芯片共享同一个内存池。MLX数组就存放在这块共享内存中,所以计算可以在两者之间转移,而无需来回复制数据。
在大多数其他电脑上,显卡有自己独立的内存,模型必须装得进去。在Mac上,模型可以使用整台电脑的内存,所以笔记本电脑能运行原本需要独立显卡的模型。
它在什么硬件上运行
Apple的文档说,运算可以在CPU和GPU上运行。文档没有列出神经网络引擎。要在Mac上安装它,需要Apple芯片和macOS 14或更高版本。
同一份文档现在也介绍了适用于Linux的版本,其中包括一个适用于Nvidia显卡的版本,所以MLX已不再只用于Apple硬件。但它仍是围绕Apple芯片设计的。
MLX系列
MLX本身只处理数组以及数组上的运算。大多数人接触到的是构建在它之上的软件包。
- MLX LM,来自Apple的同一团队,用于借助大语言模型生成文本,以及对这些模型进行微调。
- MLX Whisper,来自Apple的示例,用于借助Whisper进行语音识别。
- MLX Swift,让用Swift编写的Mac或iPhone App直接使用MLX。
- 用于音频和语音的社区库,它们构建在MLX之上,但不是Apple开发的。
MLX模型与量化
MLX合集中的模型名称常以4bit或8bit结尾。这就是量化:每个权重用更少的位数存储,让下载更小、模型占用的内存更少,代价是损失一些准确度。MLX工具可以在转换模型时生成这些版本。
MLX与Core ML
Apple有两个在其设备上运行模型的框架,用途各不相同。Apple将MLX描述为一个开源数组框架,用于在Apple芯片上试验、训练和微调生成式模型。它将Core ML描述为把机器学习模型集成到App中的方式。
实际上,许多App两者都用:Core ML用于适合神经网络引擎的模型,MLX用于在图形芯片上运行的大型语言模型或语音模型。
大家常问的问题。
MLX代表什么?
Apple没有给出全称。它将MLX描述为面向Apple芯片的机器学习数组框架。
MLX能在搭载Intel处理器的Mac上运行吗?
不能。在Mac上,Apple的文档要求Apple芯片和macOS 14或更高版本。
MLX会使用神经网络引擎吗?
Apple的文档说MLX运算在CPU和GPU上运行。文档没有列出神经网络引擎。
MLX是免费的吗?
是的。它以MIT许可证开源。
使用基于MLX构建的App,需要先安装MLX吗?
不需要。使用MLX的App已经包含了它。自己安装MLX是为了编写代码,或者从命令行运行模型。
什么是MLX模型?
权重已被转换为MLX可读取格式的模型,通常量化为4位或8位,以便轻松装进Mac的内存。