はじめに
過去に試して記事を書いてきた、MLX版を扱う以下の「mlx-○○ 3種(lm、vlm、audio)」に関する記事です。
今回も扱う実行環境の GitHubリポジトリ
まずは以下に、それぞれの GitHubリポジトリを掲載してみます。
「MLX LM」
●ml-explore/mlx-lm: Run LLMs with MLX
https://github.com/ml-explore/mlx-lm
「MLX-VLM」
●Blaizzy/mlx-vlm: MLX-VLM is a package for inference and fine-tuning of Vision Language Models (VLMs) on your Mac using MLX.
https://github.com/Blaizzy/mlx-vlm
「MLX-Audio」
●Blaizzy/mlx-audio: A text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apple's MLX framework, providing efficient speech analysis on Apple Silicon.
https://github.com/Blaizzy/mlx-audio
今回やってみた内容
今回利用するコマンドや試す内容の概要
今回、以前記事を書いた時に用いたコマンドラインツールの一部を、別のものにしてみたりなどしました。
具体的には、Python標準のコマンドで仮想環境を扱っていたところを、 uv を使った形にしてみます。それと
Hugging Face の Command Line Interface(CLI)の hfコマンドを使います。
また今回は、MLX版のモデルをダウンロードするだけで出力は行わない、という流れを試してみました。その後、ダウンロード済みのモデルの削除も試しました。
環境のセットアップ
環境のセットアップに関して、上で書いていたとおり uv を使います(以前の記事では、python・pip とデフォルト機能の仮想環境を使ってきた部分)。
uv を使った「MLX LM」のセットアップ
セットアップについて、「MLX LM」での事例の一例を示します。
uv init 【特定のフォルダ名】
cd 【特定のフォルダ名】
uv add mlx-lm
このようなコマンドで環境を準備します。この時の uv add コマンドでは、裏で自動的に仮想環境(.venv)が準備されます。そして、パッケージはその仮想環境に追加されます。
uv を使った「MLX-VLM」と「MLX-Audio」のセットアップ
「MLX-VLM」と「MLX-Audio」のセットアップについては、上で用いたコマンドの最後の部分を以下にすれば OK です。
uv add mlx-vlm
uv add mlx-audio
【余談】セットアップでの名前重複によるエラーについて
この手順について、例えば mlx-lm というフォルダを作って、その直下で uv add mlx-lm を実行するとエラーが出ます。その原因は名前の重複です。具体的には、「自分自身のプロジェクト(mlx-lm)と同名の外部パッケージを依存関係に追加しようとしている」、という判定になるためのようです。
これに関する簡単な対処方法は、フォルダ名を重複しないものにすることです。
それとは別に、init の実行後の pyproject.toml を書きかえる方法もあります。tomlファイルを書きかえる方法のほうは、tomlファイルの中の name で設定されるプロジェクト名の部分を、フォルダ名とは重複しない名前に変更すれば OK です。
[project]
# name = "mlx-lm"
name = "【mlx-lm と重複しないプロジェクト名】"
...
モデルのダウンロードのみを行う
あとはモデルのダウンロードのみを行うコマンドについて書きます。その際、以下の Hugging Face の CLI である「hf」を使います。
●hf · PyPI
https://pypi.org/project/hf/
●Command Line Interface (CLI) · Hugging Face
https://huggingface.co/docs/huggingface_hub/guides/cli
hf の準備(今回の場合)
今回の場合の hf のセットアップについて記載します。
通常の導入方法を用いても良いのですが、今回の場合は MLX-Audio のセットアップをしたフォルダ直下で利用することにしました。具体的には、MLX-Audio のセットアップをしたフォルダで uv run hf という形でコマンドを実行すれば、hfコマンドが使えます。
ダウンロードするモデル
今回ダウンロードするモデルを選定します。モデルは、mlx-community(MLX Community)が Hugging Face上で公開しているモデルを使います。
以下がモデル一覧です。
●mlx-community (MLX Community)
https://huggingface.co/mlx-community/models?sort=created
https://huggingface.co/mlx-community/models?sort=modified
この中で、今回は以下を選びました。
●mlx-community/Qwen3-ASR-1.7B-8bit · Hugging Face
https://huggingface.co/mlx-community/Qwen3-ASR-1.7B-8bit
●mlx-community/Voxtral-Mini-4B-Realtime-2602-4bit · Hugging Face
https://huggingface.co/mlx-community/Voxtral-Mini-4B-Realtime-2602-4bit
●mlx-community/gemma-4-12B-it-4bit · Hugging Face
https://huggingface.co/mlx-community/gemma-4-12B-it-4bit
ダウンロードするためのコマンド
ダウンロードするためのコマンドを以下に記載します。
uv run hf download mlx-community/Qwen3-ASR-1.7B-8bit
uv run hf download mlx-community/Voxtral-Mini-4B-Realtime-2602-4bit
uv run hf download mlx-community/gemma-4-12B-it-4bit
これらを実行して、それぞれのモデルをダウンロードしました。
モデルの一覧を表示させる
以下のコマンドでモデルの一覧を確認してみます。
uv run hf cache ls
上記のコマンドを実行したところ、以下のように 3つのモデルがダウンロードされたことが確認できました。
ちなみに、表示対象をフィルタすることもできるようです。
例えば以下のコマンドを使うと、サイズが 6GB より大きいモデルのみ表示対象にできます。
uv run hf cache ls --filter 'size>6G'
以下は実際に、上記のコマンドを実行した結果です。指定したとおり 6GB より大きいモデルのみが表示されました。
モデルを削除する
あとはモデルを削除するコマンドの話を書きます。
用いるコマンドは以下のとおりです。
uv run hf cache rm 【削除対象のモデルの ID】
ここで「削除対象のモデルの ID」は、例えば model/mlx-community/gemma-3-270m-it-qat-4bit などという文字列です。
上でモデルの一覧表示に使った uv run hf cache ls を実行した時に、一番左に表示される文字列です。このコマンドを使って、自分がローカルにダウンロードしたモデルの中の、特定のモデルが削除できたことを確認できました。
その他
以下は、今回用いた hfコマンドのヘルプなどに関する内容のメモです。
hfコマンド関連のヘルプを見てみる
今回の記事を書く中で、hfコマンド関連のヘルプを見てみたのですが、その時の画面キャプチャのメモです。







