重磅!苹果官方发布大模型框架:一个可以充分利用苹果统一内存的新的大模型框架MLX,你的MacBook可以一键运行LLaMA了

本文来自DataLearnerAI官方网站:重磅!苹果官方发布大模型框架:一个可以充分利用苹果统一内存的新的大模型框架MLX,你的MacBook可以一键运行LLaMA了 | 数据学习者官方网站(Datalearner)icon-default.png?t=N7T8https://www.datalearner.com/blog/1051701871117729

苹果刚刚发布了一个全新的机器学习矿机MLX,这是一个类似NumPy数组的框架,目的是可以在苹果的芯片上更加高效地运行各种机器学习模型,当然最主要的目的是大模型。

  • MLX框架简介
  • 目前MLX支持的模型和使用方式
  • 预训练模型的使用
  • MLX性能实测
  • MLX的相关资源和链接
MLX框架简介

根据官方的介绍,MLX的设计受到PyTorch、Jax和ArrayFile的启发,目的是设计一个对用户极其友好,但同时在训练和部署上也非常高效的框架。所以,它的接口你会非常熟悉,因为它的Python接口与NumPy很相似,而它的神经网络模型的接口和PyTorch非常类似。所以如果此前你使用Python编写相关模型代码,几乎是没有障碍的使用和切换。

MLX的关键特性如下:

熟悉的API:MLX 有一个 Python API,紧密遵循 NumPy。MLX 还有一个功能齐全的 C++ API,与 Python API 非常相似。MLX 拥有像mlx.nn和 mlx.optimizers这样的高级包,其 API 紧密遵循 PyTorch,以简化构建更复杂的模型。

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

延迟计算:MLX 中的计算是延迟的。数组仅在需要时才实体化。

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

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

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

从上面的描述中可以看到,MLX与其它框架的最大的不同点是可以充分使用苹果的统一内存来计算,而不需要搬运数据。关于统一内存架构相比显存和内存的方式运行大模型参考:https://www.datalearner.com/blog/1051698716733526M3系列芯片是苹果最新发布的芯片。也是当前苹果性能最好的芯片。由于苹果的统一内存架构以及它的超大内存,此前很多人发现可以使用苹果的电脑来运行大语言模型。尽管它的运行速度不如英伟达最先进的显卡,但是由于超大的内存(显存),它可以载入非常大规模的模型。而此次的M3芯片效果如何,本文做一个简单的分析。icon-default.png?t=N7T8https://www.datalearner.com/blog/1051698716733526

 

目前MLX支持的模型和使用方式

从官方的示例看,苹果的MLX框架完成度很高,它支持transformer架构模型的训练、当前预训练模型如何LLaMA的推理、基于LoRA的高效参数微调、支持载入使用多模态大模型Stable Diffusion和Whisper等。

此外,MLX还有个配套框架教MLX Data,这是一个不依赖特定框架的数据加载库,可以与PyTorch、Jax 或 MLX 一起使用。MLX Data数据加载库的目标是高效但同时也具有灵活性,例如能够每秒加载和处理数千张图片,同时也能在生成的批次上运行任意 Python 转换。这个库的推出很有可能与苹果的统一内存数据的使用有关,有了它应该可以更加高效地在苹果设备上读写数据。

关于MLX的实测和开源情况参考DataLearnerAI的原文:重磅!苹果官方发布大模型框架:一个可以充分利用苹果统一内存的新的大模型框架MLX,你的MacBook可以一键运行LLaMA了 | 数据学习者官方网站(Datalearner)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 输入输出流03

8. 字符流 Writer/Reader Java 中字符是采用 Unicode 标准,一个字符是 16 位,即一个字符使用两个字节来表示。为此,JAVA 中引入了处理字符的流。 1)Reader抽象类 用于读取字符流的抽象类。子类必须实现的方法只有 read (char [],…

“数”说新语向未来 | GBASE南大通用2023媒体交流会成功举办

在当前国家信创战略加速实施,及国民经济数字化转型,叠加驱动信息化行业加速发展的大形势下,以“数说新语-GBASE南大通用开放创新再领航”为主题的2023 GBASE南大通用媒体交流日活动在GBASE天津总部举行。来自IT168、ITPUB、韩锋频道、自主可控…

海思SD3403/SS928V100开发(11)双网卡同网段外部回环搭建测试

1. 前言 网卡eth0: 内部自带网卡 网卡eth1: USB扩展网卡 需要通过将eth0和eth1设置成相同网段IP, 通过外部网络互联进行老化测试 问题: Linux的内核对从一个网络地址发往另一个网络地址的数据包,如 果这两个网络地址同属一个host,则这个数据包会直接在内部转发,根本…

Scala 从入门到精通

Scala 从入门到精通 数据类型 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

Linux取消挂载相关

取消挂载&#xff08;target is busy&#xff09;问题原因 [rooticoolkj ~]# umount /data umount: /data: target is busy.(In some cases useful info about processes that usethe device is found by lsof(8) or fuser(1))报错的原因通常是由于待卸载磁盘正在使用&#xf…

Elasticsearch:向量搜索的优势 — 以及 IT 领导者需要它来改善搜索体验的 5 个原因

作者&#xff1a;Evan Castle 与谷歌和亚马逊等高质量搜索引擎的频繁互动提高了客户对快速且相关搜索的期望。 向量搜索&#xff08;也称为语义向量搜索&#xff09;利用深度学习和机器学习来捕获数据的含义和上下文。 向量搜索的好处 向量搜索可以增强公司的搜索体验并带来广…

旅游规划——最短路

有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的一条路径。 输入格式: …

day7 哈希表(二)

Day7 哈希表&#xff08;二&#xff09; 2023.12.6 深感抱歉&#xff0c;这几天事情太多了&#xff0c;昨天跟导师出差&#xff0c;整理资料到半夜&#xff0c;一直没空打卡学习&#xff0c;今晚难得有空&#xff0c;先将昨天12.5日的任务补上。 1. 454四数相加Ⅱ 这道题其实还…

一次重新加载所有 maven 项目产生的 OOM

1、解决什么问题&#xff1f; 忘了截图了&#xff0c;用文字描述就是由于Reload All Maven Projects导致的 OOM 异常。 2、尝试与解决 2.1、尝试 2.1.1、尝试清理idea缓存&#xff08;无效&#xff09; 2.1.2、重启idea&#xff08;无效&#xff09; 2.1.3、重启电脑&am…

【LeetCode】258. 各位相加

258. 各位相加 难度&#xff1a;简单 题目 给定一个非负整数 num&#xff0c;反复将各个位上的数字相加&#xff0c;直到结果为一位数。返回这个结果。 示例 1: 输入: num 38 输出: 2 解释: 各位相加的过程为&#xff1a; 38 --> 3 8 --> 11 11 --> 1 1 --&g…

数树问题(桶排序)

某校大门外长度为L的马路上有一排树&#xff0c;每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴&#xff0c;马路的一端在数轴0的位置&#xff0c;另一端在L的位置&#xff1b;数轴上的每个整数点&#xff0c;即0&#xff0c;1&#xff0c;2&#xff0c;……&am…

nginx遇到的问题和jks密码问题

1&#xff1a;nginx的配置&#xff1a; https 一定得配置 8080 ssl (我没有配置这个) 2&#xff1a;查看jks的密码 keytool -list -keystore secms.jks 让输入密码

锂电分切机常见故障及预测性维护解决方案

锂电分切机是电池生产线上不可或缺的设备&#xff0c;通过切割锂电池以满足不同应用需求。但在实际生产的使用过程中&#xff0c;常常会遇到一些故障&#xff0c;影响设备的正常运行和生产效率。为了减少这些故障对设备的影响&#xff0c;预测性维护成为制造商需要重视的解决方…

Linux动态库常见问题

1.编译好库后&#xff0c;应用程序调用&#xff0c;路径明明写对了&#xff0c;但是编译的时候却显示xxx未定义 2.编译好了却说不能打开动态库&#xff0c;没有此文件 ./jrtplib_test: error while loading shared libraries: libjrtp.so.3.11.2: cannot open shared object f…

java面试题,上楼梯有多少种方式

java面试题&#xff0c;上楼梯有多少种方式 题目&#xff1a;一个小孩上一个N级台阶的楼梯&#xff0c;他可以一次走1阶、2阶或3阶&#xff0c;那么走完N阶有多少种方式。 很自然的想法是使用递归&#xff1a; public class Test04 { public static int countWays(int n) {…

python初始化矩阵相关

做算法题经常需要初始化一个二维的dp数组 下面两种方法是最常用的 matrix [[0]*n]*n matrix [[0]*n for _ in range(n)]以前经常混用也没发现什么问题&#xff0c;直到昨天debug的时候发现第一种初始化之后对矩阵进行赋值时混乱的&#xff0c;比如matrix[0][1]2会导致所有行…

C语言面试之旅:掌握基础,探索深度(面试实战之单片机——IO)

梦想和自由一样&#xff0c;都有代价&#xff0c;但都值得。 ----小新 引言 单片机是一种微控制器&#xff0c;它包含一个处理器、存储器、定时器和I/O端口等。I/O端口是单片机与外部设备进行通信的接口。通过I/O端口&#xff0c;外部设备可以输入和输出数据到单片机中。 在单…

西工大计算机学院计算机系统基础实验一(函数编写1~10)

还是那句话&#xff0c;千万不要慌&#xff0c;千万不要着急&#xff0c;耐下性子慢慢来&#xff0c;一步一个脚印&#xff0c;把基础打的牢牢的&#xff0c;一样不比那些人差。回到实验本身&#xff0c;自从​​​​​​按照西工大计算机学院计算机系统基础实验一&#xff08;…

YOLOv8改进 | TripletAttention三重注意力机制(附代码+机制原理+添加教程)

一、本文介绍 本文给大家带来的改进是Triplet Attention三重注意力机制。这个机制&#xff0c;它通过三个不同的视角来分析输入的数据&#xff0c;就好比三个人从不同的角度来观察同一幅画&#xff0c;然后共同决定哪些部分最值得注意。三重注意力机制的主要思想是在网络中引入…

C陷阱与缺陷——第6章 预处理器

在严格意义上的编译过程开始之前&#xff0c;C语言预处理器首先对程序代码做了必要的转换处理。预处理器的主要作用是&#xff1a; 我们有时需要将某个特定数量在程序中出现的所有实例统统加以修改大多数C语言实现在函数调用时都会带来重大的系统开销 1. 不能忽视宏定义中的空…