MLX:苹果发布新的机器学习框架

苹果刚刚进入AI开源竞技场,悄悄发布了他们的新DL框架MLX!

它在Apple Silicon上原生运行代码,只需一个pip安装,没有其他依赖项

MLX 是 Apple 芯片上用于机器学习的阵列框架,由 Apple 机器学习研究团队为您提供。

MLX 的一些主要功能包括:

  • 熟悉的 API:MLX 有一个紧随 NumPy 的 Python API。MLX 还拥有功能齐全的 C++ API,它与 Python API 非常相似。MLX 具有更高级的软件包,例如mlx.nn和 以及mlx.optimizers紧密遵循 PyTorch 的 API,以简化构建更复杂的模型。

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

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

  • 动态图构建:MLX 中的计算图是动态构建的。更改函数参数的形状不会触发缓慢的编译,并且调试简单直观。

  • 多设备:操作可以在任何支持的设备上运行(当前为 CPU 和 GPU)。

  • 统一内存:与 MLX 和其他框架的显着区别是统一内存模型。MLX 中的数组位于共享内存中。可以在任何支持的设备类型上执行 MLX 阵列上的操作,而无需移动数据。

MLX 是由机器学习研究人员为机器学习研究人员设计的。该框架旨在用户友好,但仍然可以有效地训练和部署模型。框架本身的设计在概念上也很简单。我们打算让研究人员能够轻松扩展和改进 MLX,以实现快速探索新想法的目标。

MLX 的设计灵感来自 NumPyPyTorchJaxArrayFire等框架。

网友评论:

它似乎紧跟PyTorch API,并提供了许多开箱即用的有用原语。例如,实现一个只用于解码器的Transformer就是这么简单!

值得注意的是,许多最新的发现都作为库中的原语提供。例如,如果您必须在PyTorch中实现旋转位置编码,则需要自行推出或依赖lucidrains。

对于你的优化,它支持高阶梯度,高效的jvp和像JAX一样的vjp。

如果您不是 Python 爱好者,也有 C++ 头文件和库,但还没有文档。

mlx-examples 存储库似乎拥有所有值得关注的模型和强制性 mnist 模型的示例实现,所有这些都在 MLX 中本地实现。这些实现看起来相当简单。

三个关键概念:示例、缓冲区、流

  • Sample ->以 dicts 编码的单个数据实例

  • Buffer ->可索引的示例容器

  • Stream->可迭代(但不可索引)的示例序列

MLX-data 库提供了对所有三种类型采取行动的原语。

虽然还为时尚早,但我们应该消除苹果公司在人工智能方面无所作为的说法。与往常一样,苹果正在以苹果的方式做事--谨慎但符合他们的利益。

一旦该框架流行起来,苹果公司将 Apple Silicon 作为数字加速器的替代品,在苹果设备之外单独销售也并非不可想象。在苹果设备中使用 Apple Silicon 可以说是自饮香槟。

这次发布也预示着未来的苹果操作系统将更加以人工智能为中心。因此,如果你正在构建在 iOS/iPadOS/MacOS 基础上添加简单功能的产品,你可要小心了。

https://www.jdon.com/70558.html

相关推荐
山河木马13 小时前
矩阵专题3-怎么创建投影矩阵(uProjectionMatrix)
javascript·webgl·计算机图形学
泯泷14 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
泯泷14 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
朦胧之15 小时前
页面白屏卡住排查方法
前端·javascript
犇驫聊AI16 小时前
Chrome DevTools MCP + Claude Code 自定义skills生成接口代码生成器
前端·javascript
kyriewen16 小时前
别再这样写 async/await 了:我在 Code Review 中见过最多的 8 个错误
前端·javascript·面试
用户2986985301421 小时前
在 React 中使用 JavaScript 将 Excel 转换为 SVG
前端·javascript·react.js
labixiong21 小时前
手写Promise--微任务、静态方法、async/await 全搞懂(三)
前端·javascript
铁皮饭盒1 天前
3行代码搞定页面截图,Bun.WebView真的简单
javascript
kyriewen1 天前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试