Hub documentation
Hugging FaceでのMLXの活用
Hugging FaceでのMLXの活用
MLXは、Apple Machine Learning Researchが開発した、Apple silicon向けのモデル学習およびサービングフレームワークです。
さまざまなサンプルが付属しています:
- MLX-LMでテキストを生成すると、GGUF形式のモデルでMLX-LMを使用してテキストを生成する。
- LLaMAによる大規模なテキスト生成。
- LoRAによるファインチューニング。
- Stable Diffusionで画像を生成します。
- OpenAIのWhisperによる音声認識。
HubでのMLXの探索
モデルページの左側でフィルタリングすることで、MLXモデルを見つけることができます。 また、MLX形式の重みをコンバートして公開する貢献者からなるオープンなMLXコミュニティもあります。
MLX Hugging Face Hub 統合のおかげで、数行のコードで MLX モデルを読み込むことができます。
インストール
MLXはスタンドアロンパッケージとして提供されており、大規模言語モデル向けのHugging Face統合を備えたサブパッケージMLX-LMがあります。
MLX-LMをインストールするには、pipを使用して以下の1行のインストールコマンドを実行できます。
pip install mlx-lm
詳細については、こちらをご覧ください。
mlx-lmをインストールする場合、mlxのインストールは不要です。mlx-lmを使わずにMLXのみを使用したい場合は、次のようにMLX本体をインストールできます。
pip を使用する場合:
pip install mlx
conda を使用する場合:
conda install -c conda-forge mlx
既存のモデルの使用
MLX-LMには、テキストを生成するための便利なユーティリティが用意されています。次の行では、モデルを直接ダウンロードして読み込み、テキストの生成を開始します。
python -m mlx_lm.generate --model mistralai/Mistral-7B-Instruct-v0.2 --prompt "hello"生成オプションの完全なリストについては、python -m transformers-cli --helpを実行してください。
python -m mlx_lm.generate --helpPythonで以下のようにモデルを読み込み、テキスト生成を開始することもできます。
from mlx_lm import load, generate
model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2")
response = generate(model, tokenizer, prompt="hello", verbose=True)MLX-LMは、LLaMA、Phi-2、Mistral、Qwenなどの人気のあるLLMアーキテクチャをサポートしています。サポートされていないモデルは、以下の手順で簡単にダウンロードできます。
HF_XET_HIGH_PERFORMANCE=1 を設定すると、高帯域幅かつ 64 GB 以上の RAM を備えたマシン向けに、並行処理の上限とバッファサイズが引き上げられます。
pip install -U huggingface_hub
export HF_XET_HIGH_PERFORMANCE=1
hf download --local-dir <LOCAL FOLDER PATH> <USER_ID>/<MODEL_NAME>モデルの変換と共有
Hugging Face HubのLLMを以下のように変換し、必要に応じて量子化できます。
python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-v0.1 -q
変換後にモデルを直接プッシュしたい場合は、以下のように実行できます。
python -m mlx_lm.convert \
--hf-path mistralai/Mistral-7B-v0.1 \
-q \
--upload-repo <USER_ID>/<MODEL_NAME>