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

相关推荐
softshow10261 分钟前
html2canvas + jspdf实现页面导出成pdf
开发语言·javascript·pdf
摘星编程28 分钟前
React Native for OpenHarmony 实战:StyleSheet 样式表优化
javascript·react native·react.js
xixixin_41 分钟前
【vue】中字符串与数组转换:为何首选 Computed 而非 Methods?
前端·javascript·vue.js
i_am_a_div_日积月累_1 小时前
el-drawer注册全局点击事件无效;el-dialog注册全局点击事件无效
javascript·vue.js·elementui
向下的大树1 小时前
VUE父子组件传参中的触发时机问题:异步场景下的解决方案
前端·javascript·vue.js
英俊潇洒美少年1 小时前
vue2中使用节流防抖函数时,使用的vue状态始终是初始化的数据
前端·javascript·vue.js
棒棒的唐1 小时前
适合小程序使用的将对象数组转换为参数字符串方法
前端·javascript·小程序
刘一说2 小时前
Vue3响应式原理重构:从Object.defineProperty到Proxy的革命性升级
javascript·vue.js·重构
一位搞嵌入式的 genius2 小时前
深入理解 JavaScript 原型与继承:从基础到进阶
开发语言·前端·javascript
董世昌412 小时前
深度解析var、let、const的区别与最佳使用场景
开发语言·前端·javascript