背景
最近ローカルLLM欲が高まっており、
Redditなどで誰かがFinetuningしてくれたモデルを見つけては
LMStudio上で動かしたくなる。
その際、GGUFは割とすぐ誰かが作ってくれるが、
MLX版はあんまりでてこないので、
自分で変換しようというのがきっかけ。
変換
事前にインストールしておくもの
- uv
- python使えればなんでもいいけど最近はuv推し
手順
1. 必要なライブラリのインストール
$ uv add mlx-lm requests[security] urllib3 huggingface-hub>
mlx-lmがあれば動くかも。
私の環境では実行時にエラーが出たので他のライブラリもインストールする必要があった。
最終的なpyproject.toml
はこう。
pyproject.toml
[project]
name = "mlx-converter"
version = "0.1.0"
description = "Convert model to MLX format"
readme = "README.md"
requires-python = ">=3.13.3"
dependencies = [
"huggingface-hub>=0.34.4",
"mlx-lm>=0.26.3",
"requests[security]>=2.32.4",
"urllib3>=2.5.0",
]
2. 変換
今回変換したのはこのモデル
# fish shell用 これでmlx_lm.convertコマンドを使えるようになる
$ source .venv/bin/activate.fish
# モデルを4bit量子化しつつMLXに変換
$ mlx_lm.convert --hf-path TheDrummer/Gemma-3-R1-12B-v1 --quantize --q-bits 4
モデルのダウンロードに1時間程度、変換は1分もかからず即終わった。
3. LM Studioで使う
LM Studioのモデル群が保存されているDirに変換したモデルを置く
/Users/<user name>/.cache/lm-studio/models/<author>/Gemma-3-R1-12B-v1-4bit/
これでLM Studioのモデル一覧に表示されるので、通常通りチャットで使えた。
〆
変換も推論も動作することは確認できたけど、
レスポンスが止まらなくなったので使い物にならなかった。
モデルが悪いのか量子化が悪さしたのか
補足
ダウンロードした変換前モデルは以下のDirにある。
容量結構食うと思うので遊び終わったら消すの忘れずに。
/Users/<user name>/.cache/huggingface/