如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

苹果公司开源机器学习框架 MLX,针对 Silicon 芯片进行了优化

作者:Sergio De Simone

  • 2024-01-10
    北京
  • 本文字数:1139 字

    阅读完需:约 4 分钟

大小:571.58K时长:03:15
苹果公司开源机器学习框架MLX,针对Silicon芯片进行了优化

苹果公司的机器学习框架MLX结合了开发者熟悉的 API、可组合的函数转换和惰性计算,部分灵感源于 NumPy 和 PyTorch,并针对苹果的 Silicon 进行了优化。该框架使用 Python 和 C++实现,旨在为在苹果 Silicon 上训练和部署机器学习模型提供用户友好且高效的解决方案。


根据苹果公司的说法,MLX 是由机器学习研究人员为机器学习研究人员设计的,并基于 MIT 发布许可,可以很容易地被扩展和改进。它支持转换语言模型训练、使用 Mistral 进行大规模文本生成、使用 Stable Diffusion 进行图像生成以及使用 Whisper 进行语音识别。


MLX 提供了受 NumPy 启发的底层 Python API 和一个完整的与之密切对应的 C++ API。此外,它还提供了一个高级 API,可用于根据 PyTorch API 创建更复杂的模型。


该框架支持自动微分、自动向量化和计算图优化,可组合的函数使得构建复杂数组转换变得更加容易。MLX 还支持惰性计算,这意味着它可以只在必要时才计算数组,以提高计算效率。同样,计算图是动态构建的,因此修改函数参数并不会触发缓慢的编译过程。


MLX 的一个独有的特性是使用了苹果 Silicon 的统一内存,这让它有别于其他的 ML 框架。这意味着数组位于共享内存中,可以在 CPU 或 GPU 上执行数组操作,无需在内存之间传输数据。例如,在创建一个数组时,你不需要指定位置,因为它位于统一内存中,而在执行操作时可以选择在 CPU 或 GPU 上执行转换:

a = mx.random.normal((100,))
b = mx.random.normal((100,))
mx.add(a, b, stream=mx.cpu)
mx.add(a, b, stream=mx.gpu)
复制代码


MLX 可在任意的苹果 Silicon CPU 上运行,包括 M1,并可以利用集成的 GPU,因此研究人员可以选择最适合其需求的硬件。


MLX 的代码库中包含了一些针对不同模型的示例,包括 BERT、Llama、Mistral、Stable Diffusion 等。每个示例都在requirements.txt文件中列出所需的依赖项,并提供了现成的 CLI 工具。例如,要使用 Stable Diffusion 生成图像,首先安装所有必需的依赖项,然后运行txt2image.py命令:

pip install -r requirements.txt

python txt2image.py "A photo of an astronaut riding a horse on Mars." --n_images 4 --n_rows 2


苹果尚未公开发布基准测试,因此我们目前不知道它与PyTorch/MPS或 Georgi Gerganov 的Llama.cpp相比表现如何。


不过,Stable Diffusion 示例中包含了使用 PyTorch 和 MLX 运行 UNet 的性能比较。MLX 在批次大小为 16 时的吞吐量比 PyTorch 高约 40%,最佳批次大小大 15%左右。


然而,PyTorch 在较小的批次大小时表现更好,批次大小为 1 时吞吐量高约 50%,批次大小为 4 时高约 10%。根据苹果公司的说法,PyTorch 在这些情况下的优势要归因于在模型还没有被加载到内存中且 PyTorch 的 MPS 图内核未被缓存时的编译速度。


如果你有兴趣体验 MLX,请参阅其快速入门指南完整文档


原文链接

https://www.infoq.com/news/2023/12/apple-silicon-machine-learning/

2024-01-10 08:008725

评论

发布
暂无评论
发现更多内容

购买小间距LED显示屏需要考虑8个方面

Dylan

领域 LED LED显示屏 实用指南

如何调用API获取你想要的数据

Noah

如何使用查看器筛选、搜索功能进行数据定位?

观测云

数据分析 数据可视化

如何利用 NFTScan NFT API 在 Aptos 网络上进行 Web3 应用程序开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

PDF编辑器:Acrobat Pro DC 2023 「Mac」

彩云

PDF编辑 Acrobat Pro DC 2023

利用Docker容器化构建可移植的分布式应用程序

互联网工科生

Docker 容器化

VMware Workstation 17安装教程之设置系统模式

小齐写代码

重磅更新!Sermant 1.2.0 release版本新特性速览

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟

终身学习支持非结构化场景 | KubeEdge-Ianvs v0.2 发布

华为云原生团队

云计算 容器 云原生 边缘计算 kubeedge

Denodo全球CEO兼创始人Angel Viña访华 共襄中国经济数字化转型新机遇

科技汇

混沌工程GameDay

腾讯云混沌演练平台

混沌工程 GameDay 稳定性建设 混沌演练

堪比文件传输助手!解决文本、图片、视频、音乐跨设备同步难题!

彭宏豪95

软件推荐 文件传输 数据同步 在线白板 浏览器插件

低代码,程序员提高生产力的开发工具

互联网工科生

低代码开发 JNPF

Java应用程序性能开发工具:JProfiler 14 「Mac」附 注册码

彩云

java开发工具 JProfiler 14

大模型 | 今天聊聊大语言模型幻觉(AI Hallucinations)

澳鹏Appen

数据标注 大模型 生成式AI LLM 大模型幻觉

混沌工程稳态假说

腾讯云混沌演练平台

混沌工程 稳定性保障

容器安全和安全运行时的重要性

极客天地

低代码可视化平台 快速搭建油库2D组态管理平台

2D3D前端可视化开发

物联网 可视化 组态软件 组态工具 智慧油库

基于eBPF的云原生可观测实践

谐云

服务器大揭秘:美国服务器为何成为热门选项?

一只扑棱蛾子

美国服务器

知识图谱与大模型相结合的3种方法,1+1>2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 大语言模型

荣耀推送服务 - 发送下行消息能力指导

荣耀开发者服务平台

基础服务 实时推送 API 接口 荣耀开发者服务平台 开放能力

苹果公司开源机器学习框架MLX,针对Silicon芯片进行了优化_芯片&算力_InfoQ精选文章