从头造轮子 or 重复造轮子?苹果开源 MLX,为自家芯片专属定制机器学习框架

本文主要是介绍从头造轮子 or 重复造轮子?苹果开源 MLX,为自家芯片专属定制机器学习框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

苹果:现在上车还来得及吗?

北京时间 12 月 6 日,苹果机器学习研究中心 (Apple machine learning research) 在 GitHub 上开源 MLX。

苹果机器学习研究中心研究科学家 Awni Hannun 在个人 Twitter 宣布这一消息

苹果芯片「专属定制版」机器学习框架

MLX 是一个专为苹果芯片设计的机器学习框架,旨在保证用户友好的前提下,支持高效地在苹果芯片上训练及部署模型。

MLX 设计理念简单,参考了 NumPy、PyTorch、Jax 和 ArrayFire 等框架,其关键功能包括:

  • 熟悉的 API:MLX 的 Python API 跟 NumPy 非常类似,同时 MLX 还有一个功能齐全的 C++ API,此外 MLX 还有类似 mlx.nnmlx.optimizer 这些更高阶的包,跟 PyTorch API 很像,可以简化复杂模型的构建。

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

  • 延迟计算 (Lazy computation):MLX 中的计算是延迟执行的,Array 只在需要的时候才会创建。

  • 动态图构建:MLX 中的计算图是动态构建的,更改函数参数的 shapes 不会降低编译速度,调试也更简单直观。

  • 多设备支持:Operations 可以在任意支持的设备上运行(目前支持 CPU 和 GPU)。

  • 统一内存:统一内存模型 (unified memory model) 是 MLX 和其他框架的显著区别。MLX 中的 Array 保存在共享内存中,无需移动数据就可以在任意支持的设备上执行操作。

根据官方 GitHub Repo 介绍,MLX 已更新多个热门教程,包含:

  • Transformer 语言模型训练

  • 用 LLaMA 生成大规模文本,并用 LoRA 进行 finetuning

  • 用 Stable Diffusion 生成图像

  • 用 OpenAI Whisper 进行语音识别

详情可访问:
https://github.com/ml-explore/mlx/tree/main/examples

从头造轮子 or 重复造轮子?

针对苹果此次发布的 MLX,呈现了两种截然不同的声音。

✅ 正方代表:

在这里插入图片描述

MLX 作为一个针对苹果芯片优化的 PyTorch-style 神经网络架构,可能是苹果在 AI 开源领域,迄今为止最重要的举措。

在这里插入图片描述

2018 年图灵奖得主、Meta 首席 AI 科学家 Yann LeCun 也直呼干得漂亮

在这里插入图片描述

盼着能给英伟达点儿压力,降价提效、推出更好的消费级 GPU

在这里插入图片描述

苹果对 AI 开源的承诺值得赞扬,MLX 称得上是在苹果芯片上进行深度学习的一场变革。

在这里插入图片描述

Cool!啥时候才能有可以在本地运行的类似 GPT-4 这样的高质量模型啊!MLX 带来了巨大的想象力。

❌ 反方代表:

在这里插入图片描述

他们本可以跟 @PyTorchTeam 合作,发布针对苹果芯片优化的 PyTorch 后端!!

现在开发者不得不打两份工了,既要支持这个,又要构建一个 wrapper 同时支持 PyTorch 和 MLX!

在这里插入图片描述

这东西怎么用于部署啊?除非它能跟英伟达、AMD 等支持的框架兼容,不然 MLX 对机器学习生态就是一种伤害(没有 MacBook 就不能进行机器学习)

在这里插入图片描述

苹果,又㕛叒叕重复造轮子

在这里插入图片描述

一图胜千言 图片

GitHub Issue:晚点吵先把 Bug 修了

Talk is cheap. Show me the code.

在尝试从 MacBook 终端安装运行 MLX 的过程中,我们发现官方提供的安装代码出现报错,MLX GitHub Repo 中也有多位工程师遇到类似问题。

在这里插入图片描述

截止发稿,已有 10 位工程师在该 Issue 下反馈了安装报错问题

无论 MLX 能否一举成为开发者在苹果设备上进行模型训练及部署的实用框架,咱就是说能不能先把 Bug 修了啊?!

在线等,挺急的。

这篇关于从头造轮子 or 重复造轮子?苹果开源 MLX,为自家芯片专属定制机器学习框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466034

相关文章

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和