机器学习交换

机器学习扩展#

MLX 是一个类似于 NumPy 的数组框架,专为在 Apple 芯片上进行高效且灵活的机器学习而设计,由 Apple 机器学习研究团队推出。

Python API 与 NumPy 非常相似,只有少数例外。MLX 还有一个功能齐全的 C++ API,它与 Python API 非常相似。

MLX 和 NumPy 的主要区别是:

  • 可组合的函数变换:MLX 提供了可组合的函数变换,用于自动微分、自动向量化和计算图优化。

  • 惰性计算: MLX 中的计算是惰性的。数组只有在需要时才会具体化。

  • 多设备: 操作可以在任何支持的设备上运行(CPU, GPU, …)

MLX的设计灵感来自于PyTorchJaxArrayFire等框架。与这些框架和MLX的一个显著区别是统一内存模型。MLX中的数组存在于共享内存中。可以在任何支持的设备类型上执行MLX数组的操作,而无需执行数据复制。目前支持的设备类型是CPU和GPU。

C++ API 参考