M4 の Mac mini で ローカルLLM： LLM-jp-3.1（MLX版 13B instruct4 8bit）を MLX LM で試す

## はじめに

以前から色々と試してみている、M4 の Mac mini を使ったローカルLLM の話です。

自分がローカルLLM を試す時には、主に MLX版のモデルと「MLX LM」／「MLX-VLM」との組み合わせや、Ollama を使っているのですが、今回はその中の「MLX LM」を使ったものです。

そしてモデルは、以下（の MLX版）を試します。

●LLM-jp-3.1 シリーズ instruct4 の公開 ｜ LLM 勉強会
　https://app007.xsrv.jp/llmjp/ja/blog/blog-887/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7c4b3d9c-bc4f-4d16-af7d-f7ef8355d79e.png)

元のモデルは 2025年5月30日に公開されたようです。



## 実際に試していく

### 利用するモデル

今回使うモデルは、[LLM 勉強会](https://llm-jp.nii.ac.jp/)の LLM-jp-3.1 シリーズ instruct4 の MLX版と書きましたが、自分の Mac mini で使えそうなサイズになっているものを選んで使います。

自分の環境で使えるモデルで、できるだけ大きなものを選ぼうとして、パラメータ数・量子化が以下になっているものにしました。

●mlx-community/llm-jp-3.1-13b-instruct4-8bit · Hugging Face
　https://huggingface.co/mlx-community/llm-jp-3.1-13b-instruct4-8bit

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4788a8a4-6bde-4f4e-8f15-60a5ba4d6e0c.png)


モデルサイズは 14.5GB くらいのようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/8055e465-b676-4e9a-9705-7715a7a2f1a5.png)


あと、モデルサイズをもう少し抑えたい場合は、以下にしてみても良いかもしれません。

●mlx-community/llm-jp-3.1-13b-instruct4-4bit · Hugging Face
　https://huggingface.co/mlx-community/llm-jp-3.1-13b-instruct4-4bit


### 試す際の環境

今回のお試し用の環境について、少しここで紹介しておきます。

- PC
   - M4 の Mac mini（メモリ 24GB、うち 16GB をローカルLLM用で利用可能）
- 実行環境
   - Python の仮想環境を利用
   - Python のコードで [MLX LM](https://github.com/ml-explore/mlx-lm) を使った処理


### コードと実行結果

以下が今回用いたコードです。基本的にサンプルのコードを使っていて、プロンプトの部分だけ変えて使っています。


```python
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/llm-jp-3.1-13b-instruct4-8bit")

prompt = "生成AIを8歳に分かるように短い言葉で日本語で説明して"

if tokenizer.chat_template is not None:
    messages = [{"role": "user", "content": prompt}]
    prompt = tokenizer.apply_chat_template(
        messages, add_generation_prompt=True
    )

response = generate(model, tokenizer, prompt=prompt, verbose=True)
```

上記を pythonコマンドで実行した結果は、以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/51626175-55dd-43f8-93b5-e54d4ccdb029.png)

プロンプトは「生成AIを8歳に分かるように短い言葉で日本語で説明して」という内容にしていましたが、それに対して問題なくレスポンスを得られました。


## おわりに

今回、M4 の Mac mini での ローカルLLM を試しました。そのモデルや環境として、LLM-jp-3.1（MLX版 13B instruct4 8bit）と MLX LM などを用いました。

今回はとりあえずの動作確認でしたが、またプロンプトを変えて性能を確かめてみたりなどできればと思います。


### その他： 過去に試して記事に書いた内容のリスト

これまで、色々とローカルLLM を試して、その中の多くを記事に書いていました。ざっと検索して出てきた記事を、以下にリストで記載してみます。

- MLX LM（MLX版モデルでテキストを扱う）
   - [Qwen3（14B 8bit）](https://qiita.com/youtoy/items/18a105e3925fc34cc624)
   - [Qwen3 ＋ Python](https://qiita.com/youtoy/items/fcf775e3a1547979cc63)
   - [Gemma 3 ＋ HTTPサーバー](https://qiita.com/youtoy/items/051fb1612ce71b9e9c0f)
   - [Gemma 3（27B 3bit） ＋ コマンド／Python](https://qiita.com/youtoy/items/a97b007d25c749a7ae2d)
   - [「Qwen3-30B-A3B」「Phi-4-reasoning」の量子化版](https://qiita.com/youtoy/items/6688eab8dc851d2f3ef5)
   - [phi-4-4bit](https://qiita.com/youtoy/items/a12ee071dd8290fc0715)
   - [Llama-3-ELYZA-JP-8B-8bit、Swallow-13b-instruct-v0.1-8bit](https://qiita.com/youtoy/items/973910dada605ab7e259)
   - [Gemma 3（12B 8bit）](https://qiita.com/youtoy/items/43e0c2a5c966963edcc5)
- MLX-VLM（MLX版モデルでテキスト・画像を扱う）
   - [Gemma 3（量子化された 2種）での画像入力](https://qiita.com/youtoy/items/3ca63dce26ba0c7e8956)
   - [Llama-3.2-11B-Vision-Instruct-4bit での画像入力](https://qiita.com/youtoy/items/90b80eb1a3b3cac4c184)
   - [Qwen2.5-VL（7B 8bit）](https://qiita.com/youtoy/items/98d8b6c8d74c291ba3ca)
- Ollama
   - [Gemma 3 でテキスト入力・画像入力](https://qiita.com/youtoy/items/d921bfa19794e328c7e1)
   - [Gemma 3 ＋ REST API／ollama-js](https://qiita.com/youtoy/items/d835920f1bd26dae57fd)
   - Ollama ＋ Node-RED
      - [node-red-contrib-ollama の利用](https://qiita.com/youtoy/items/2b30f6fa3d50490483b4)
   - [v0.8 の新機能：ストリーミング ＋ ツール](https://qiita.com/youtoy/items/65b794863b8cc0d01d7b)
- MLX-Audio
   - [MLX版 OuteTTS](https://qiita.com/youtoy/items/3be725bf1f213d8f0f51)
- [ダウンロードしたモデルの削除](https://qiita.com/youtoy/items/b530e6029eb43bbd0751)
- スマホでのローカルLLM
   - [iPhone で「TinySwallow-1.5B」と「LLMFarm」アプリ](https://qiita.com/youtoy/items/5b5f263c1edefb661191)