Apple 發佈專屬 Apple 矽晶片的機器學習框架 MLX

Apple-M3-chip-series-architecture-231030Apple 的機器學習(ML)團隊發佈推出了專為 Apple 矽晶片最佳化的全新 ML 框架:MLX,可在 GitHub 上免費取得

Apple ML 團隊成員之一 Awni Hannun 在 X-note 中透露,這是專為 Apple M 系列晶片所設計的高效機器學習框架。它可以為 Apple 硬體研究人員或開發人員簡化機器學習模型的訓練和部署。MLX 是類似 NumPy 的陣列框架,目的在 Apple 處理器上高效率地靈活執行機器學習。這不是為消費者推出的工具,而是針對開發人員提供強大環境來建立機器學習模型。Apple 採用了開發者熟悉的程式語言,而非強迫開發者學習其他語言。

MLX 的設計靈感來自於 PyTorch、Jax 和 ArrayFire 等現有框架。 不過,MLX 新增支援統一記憶體模型(unified memory model),這意味著陣列位於共享記憶體中,可以在任何支援的設備類型上執行,毋需來回複製資料。

Apple 團隊表示,Python API 與 NumPy 非常相似,只有一些不同。MLX 亦有功能齊全的 C++ API,與 Python API 十分相近。這個框架對使用者相當友善,能有效地訓練和部署模型。

MLX 的主要功能有:

可組合函數轉換:MLX 具備可組合函數轉換,用於自動微分、自動向量化與運算圖最佳化。

惰性計算:MLX 中的計算是惰性計算,這是在需要時才進行求值的一種計算方式,能夠讓電腦要做的運算工作最小化,避免不必要的計算並提高資源效率。

動態圖建構:MLX 運算圖是動態建構的。更改函數參數的形式不會觸發緩慢的編譯,除錯過程簡單而直覺。

多重設備:MLX 可以在任何支援的設備上運行(目前僅為 CPU 和 GPU),確保硬體充分被利用。

統一記憶體:在統一記憶體模型下,MLX 中的陣列位於共享記憶體中。可以在任何支援的設備類型上執行 MLX 陣列上的操作,毋需移動資料。

Apple 已提供一系列 MLX 的實際使用範例,包括訓練 Transformer LM 深度模型架構語言模型或透過 LoRA 進行微調;使用 Mistral 產生文字;藉由 Stable Diffusion 工具生成圖像;以 Whisper 進行語音辨識。

Apple 團隊表示,「MLX 是由機器學習研究人員為機器學習研究人員設計出來。」Apple 認為必須為機器學習建立開放、易於使用的開發環境,才能促進機器學習的發展。由於 Apple 處理器現在已廣泛應用於旗下所有產品線,包括 Mac、iPhone 和 iPad 在內,在這些晶片上使用 GPU、CPU 及神經引擎可以轉化為 ML 模型的設備上,在本地端執行(亦顧及到隱私),其性能是其他處理器無法比擬的。

Apple 一直著重為機器學習研究人員提供最佳工具,包括可用來建造模型的強大 M3 Mac。現在,它將重心轉向可實施、以人為本的人工智慧工具,供所有開發者使用,祈使人工智慧和機器學習在未來幾年變得更加普遍。