蘋果大模型最大動作:開源M芯專用ML框架,能跑70億大模型

2023-12-7 21 12/7

還支持訓練Transformer模型

蘋果M系列芯片專屬的
機器學習框架
,開源即爆火!

現在,用上這個框架,你就能直接在蘋果GPU上跑70億參數大模型、訓練Transformer模型或是搞LoRA微調。

它由蘋果官方發佈,風格與PyTorch相似,不過並不基於任何已有框架實現。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

LeCun等大佬紛紛趕來點贊轉發。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

英偉達高級AI科學家Jim Fan讚歎稱:

這應該是目前蘋果在開源AI開源上最大的動作了。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

甚至還有網友動起了iPhone上A芯的念頭(手動狗頭)

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

所以,這個框架究竟長啥樣?

參考多個ML框架設計

這個新框架名叫MLX,有探索機器學習(ml-explore)的意思。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

從功能來看,MLX主要有以下幾點特性:

API熟悉(包括C++ API、類似NumPy的Python API以及一些高級功能包近似於PyTorch的API)、可組合函數變換、惰性計算、動態圖構建、多設備可用、統一內存。

框架作者Awni Hannun介紹,之所以MLX不直接基於PyTorch實現,主要有幾個方面的考量。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

首先是因爲,MLX框架是給蘋果芯片設計的。

蘋果芯片在採用了一些獨特的設計,例如
統一內存
,這些設計在框架中都可以被利用。

然後,MLX框架也參考了不同機器學習框架的優勢,包括NumPy、PyTorch、Jax和ArrayFire等。

例如JAX中可組合的函數轉換,就被加進了MLX的設計中,但graph(計算圖)仍然是動態構建的。

除此之外,作者認爲MLX也有一些屬於自己的特性,如簡單、靈活和多樣性等。

因此,MLX在功能和設計上與PyTorch等經典框架不完全一樣,有一些“自己的style”。

如果你手上有蘋果M芯電腦的話,現在就可以上手一試跑AI模型了。

蘋果電腦M系列芯片才能用

目前,官方給出了5類MLX的使用參考案例:

  • 變壓器
    架構語言模型的訓練

  • 火焰

    米斯特拉爾
    進行長文本生成

  • 勞拉
    進行參數微調

  • 穩定的擴散
    進行圖像生成

  • 耳語
    進行語音識別

作者們還在GitHub上放出了基於Stable Diffusion對比的PyTorch和MLX的性能:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

要是對這幾個AI模型感興趣,裝好MLX之後就可以直接上手試玩了。

作者給出了一系列手把手的教程,教你如何在蘋果電腦上運行MLX框架。

首先是pip install mlx,
安裝
一下框架:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

我們也在蘋果M芯電腦上嘗試了一下,可以成功安裝:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

值得一提的是,安裝前記得檢查一下你的蘋果電腦,各種環境和操作系統是否都搞好了。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

而且芯片必須是蘋果自研的M系列芯片,可以用這個口令檢查一下:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

如果是英特爾平臺,也是用不了MLX的:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

搞定之後,git clone一個副本,就可以在樣例裏面找到自己想玩的模型,嘗試上手運行了:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

這裏跑一個LLaMA試試:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

然後就可以開始問問題了,例如波爾查諾-魏爾斯特拉斯定理是什麼等等,LLaMA就能在終端給你解答:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

LightningAI的Sebastian Raschka表示,這個框架看起來非常酷,希望能看到更多PyTorch與MLX在macOS上的性能對比。

除此之外,LLaMA在MLX上的實現細節也非常有意思:

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

還有不少蘋果用戶表示高興:H100稀缺的情況下,終於可以用M3 Max來搞事了。

苹果大模型最大动作:开源M芯专用ML框架,能跑70亿大模型

你試用過MLX了嗎?感覺如何?

參考鏈接:

[1]https://github.com/ml-explore/mlx

[2]https://twitter.com/awnihannun/status/1732184443451019431