🐨
Appleが研究しているMLX形式とは
Appleデバイスのローカル上でLLMを動かす研究をしてます。
メジャーなのはllama.cppですが、調べていくうちにデバイスによってはMLXの方が良さそうだったので紹介。
MLXとは
Appleが開発した機械学習フレームワークで、モデル形式のことです。
特にAppleシリコン(M1とかM2とか)向けに最適化されていて、Metalを活用した高速な推論を実現してくれます。
Metalとは
Appleが開発したGPU向けのAPIで、主にApple製品で動作します。
ローカルでLLMを実行するときに処理してくれるのがまさにこのMetalです。
その他にも3Dレンダリングや動画編集、画像処理に使用されます。
MLXの特徴
- Appleシリコン向けに最適化
- Numpyに似た使い勝手のAPIを提供
- MLX環境内で簡単に動かすことができるシンプルな構造
- オープンソース
llama.cppとの違い
MLX | llama.cpp | |
---|---|---|
開発元 | Apple | Meta?? |
モデルの形式 | MLX形式 | GGUF形式 |
モデルの特徴 | Appleシリコンで実力発揮 | マルチなOSに対応 |
対応モデル | 限定的 | かなり多い |
使用できるモデル
Hugging Faceで「MLX-Community」と調べるとたくさん出てきます。
ちなみにPhi-3-mini 4bit量子化モデルで比較をしてみると
MLX形式...2.15GB
GGUF形式...2.39GB
なのでMLX形式の方が若干軽いようです。
どっちがいいのか
1. llama.cpp
メリット
- 幅広いデバイスに対応
- CPUのみでも動作が可能
- 上記の点からMシリーズじゃないApple製品の場合はllama.cppが最適
- 非常に活発で新しいモデルもどんどん追加されている
- 組み込みがMLXに比べて簡単
デメリット
- どんどん最新が更新されるのでバグも多い
2. MLX
メリット
- 高性能なApple製品で実力を最大限発揮する
- Apple製品との親和性
デメリット
- 情報量が圧倒的に少ない
- 対応しているモデルがllama.cppに比べるとまだ少ない
- iPhoneなどAシリーズで動かす場合はメリットが薄い可能性あり
- アプリへの組み込みが難しい
ちなみに
第三の選択肢としてCore-MLというライブラリもあります。
これは別の機会に調査します。
Discussion