最近 Apple 為自家晶片推出一項機器學習的框架,稱做「MLX」。
雖然說是新框架,但其中還是跟 NumPy, PyTorch, Jax 和 ArrayFire 相似,但最大的不同在於因為是 Apple 自行設計,在 M 系列晶片的「統一記憶體」上能直接計算資料。
在 GitHub 上,官方主要提出以下主要功能:
- API:用法非常類似於 NumPy 與 PyTorch,也同時有齊全的 C++ API,因此可以用簡單的語法建立複雜的模型。
- 可組合函數轉換:能自動在微分、轉換向量、算圖上自動最佳化函數。
- 動態圖像建構:MLX 會自動動態 Build,但更改參數時也不會讓 Build 變慢,可讓 Debug 時更簡單。
- 支援多裝置:可以在任何支援的裝置上執行,目前有 CPU 和 GPU。
- 統一記憶體:正如前面提到的,MLX 陣列是存在共享記憶體,因此不用在多個記憶體裝置上移動資料。
在 GitHub 上,官方也提供簡單的範例,可讓開發者測試。連結。
包含:
- Transformer language model
- Meta 的 LLaMA 以及經過 fine-tuning 的 LoRA
- Stable Diffusion
- OpenAI 的 Whisper