1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mac mini で ローカルLLM: Qwen3(MLX版)を MLX LM + Python で試した時のメモ

Last updated at Posted at 2025-04-30

はじめに

以下で試した内容の続きみたいな内容の記事です。以下ではコマンドラインからローカルLLM を試していましたが、今回は Python のコードで処理を実行します。

●Mac mini で ローカルLLM: Qwen3(MLX版)を MLX LM で試した時のメモ - Qiita
 https://qiita.com/youtoy/items/18a105e3925fc34cc624

実際に試していく

試す環境

今回、上記の 1つ前の記事にも書いている環境を使っています。

具体的には、以下のとおりです。

  • PC
    • M4 の Mac mini(メモリ 24GB、うち 16GB をローカルLLM用で利用可能)
  • モデル
  • 実行環境
    • Python の仮想環境で MLX LM を利用、Python のコードで処理を実行

コード・処理の実行

参考にしたコード

今回用いた Python のコードは、Qwen3-14B-8bit(MLX版)のページ冒頭に書かれたものを、少し変えただけです。

image.png

仮想環境での処理の実行

前回の記事で用いた Python の仮想環境(myenv という名前で作成したもの)を使います。
Python のコードを実行する前に、以下のコマンドで仮想環境のアクティベートなどを行っておきます(念のため、mlx-lm の最新版へのアップデートを行うコマンドも含めています)。

source myenv/bin/activate
pip install -U mlx-lm

コードと処理の実行1

とりあえず、以下のコードで処理を試しました。

# source myenv/bin/activate
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Qwen3-14B-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)

実行結果は以下のとおりで、出力が途中で途切れました。

image.png

おそらくデフォルト設定だと、今回の内容を出力しきれずに終わるパラメータになっていると思われます(「Generation: 512 tokens」となっているので、ここを増やしてやれば良さそうです)。

コードと処理の実行2

コード内の generate()max_tokens=512 という指定を加えた、以下のような内容にしてみました。

# source myenv/bin/activate
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Qwen3-14B-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, max_tokens=512, verbose=True)

再度、処理を実行してみると、以下のように最後まで内容が途切れることなく出力されました。

image.png

コードと処理の実行3

2つ目のお試しのプロンプトの部分だけ「 prompt = "東京について3段落くらいで、日本語で説明して" 」という内容に変えて、処理を実行してみました。

image.png

この場合は、 max_tokens=512 だと出力が途中で途切れました。これを max_tokens=1024 にして試したところ、以下のように出力が途切れることはありませんでした。

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?