Mac で Qwen3.8-27B を試す
Macで「Qwen3.8-27B」を試したのでまとめました。
1. mlx-dspark
「mlx-dspark」は、Apple Silicon向け機械学習フレームワーク「MLX」で、Speculative Decoding(投機的デコード)を利用するためのライブラリです。
「Qwen3.8-27B」に対応しており、M4 Pro 48GBでは8bit版で平均2.45倍、最大3.18倍の高速化が報告されています。
2. mlx-dspark で Qwen3.8-27B を試す
(1) Python 3.10の仮想環境の準備。
(2) 「mlx-dspark」のインストール。
pip install mlx-dspark(3) Qwen3.8-27Bの推論の実行。
今回は、「unsloth/Qwen3.8-27B-MLX-8bit」を使用します。
8bit版は64GB以上のApple Silicon Macがおすすめです。
初回はモデルのダウンロードのため時間がかかります。
mlx-dspark generate \
--model mlx-community/Qwen3.8-27B-8bit \
--prompt "Pythonでクイックソートを実装してください"Pythonでのクイックソートの実装例です。
## 1. 簡易版(読みやすさ重視)
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = [x for x in arr[1:] if x <= pivot]
right = [x for x in arr[1:] if x > pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
```
### 使用例
```python
nums = [5, 3, 8, 1, 2, 7, 4, 6]
print(quick_sort(nums))
```
出力:
```text
[1,
----------------------------------------------------------------
225 tokens · 5.70s · 39.5 tok/s · accept 4.09/round · 56 target fwds
----------------------------------------------------------------
4. Qwen3.8-27BをAPIサーバとして起動
(1) Qwen3.8-27BをAPIサーバーとして起動。
デフォルトでは 127.0.0.1:8080 で待ち受けます。
mlx-dspark serve --model mlx-community/Qwen3.8-27B-8bit listening on http://127.0.0.1:8080 (OpenAI base_url: http://127.0.0.1:8080/v1)
claude code : ANTHROPIC_BASE_URL=http://127.0.0.1:8080 (or run `mlx-dspark claude`)
================================================================
curl http://127.0.0.1:8080/v1/chat/completions -H 'Content-Type: application/json' \
-d '{"model":"Qwen3.8-27B-8bit","messages":[{"role":"user","content":"Hi"}],"stream":true}'
================================================================同じサーバー・同じポートで、OpenAI互換とAnthropic互換の両方が同時に有効になります。
・OpenAI互換
http://127.0.0.1:8080/v1/chat/completions
・Anthropic互換
http://127.0.0.1:8080/v1/messages
5. pi でゲーム作成
5-1. pi
「pi」はシステムプロンプトが比較的小さく、ローカルLLMでも利用しやすい軽量なエージェントハーネスです。エージェントハーネスは、LLMにシステムプロンプト、ツール、エージェントループ、コンテキスト管理などを提供して、実際の作業を遂行できるようにする実行基盤です。
今回の構成は次のようになります。
Qwen3.8-27B:LLM
↓
mlx-dspark:推論・高速化
↓
pi:エージェントハーネス
↓
read / write / edit / bash:ツール
5-2. pi のツール
pi のデフォルトツールは4つです。
・read : ファイルを読む
・write : ファイルを作成・上書き
・edit : 既存ファイルを部分編集
・bash : シェルコマンドを実行
さらに、読み取り専用ツールとして以下があります。これらはデフォルトでは無効で、--tools などで有効化します。
・grep : ファイル内容検索
・find : ファイル検索
・ls : ディレクトリ一覧
pi --tools read,write,edit,bash,grep,find,lspi はこれ以外の機能を Extensions や Skills で追加する設計です。
5-3. pi のセットアップ
(1) piのインストール。
npm install -g @mariozechner/pi-coding-agent
pi update(2) piの設定ファイル「~/.pi/agent/models.json」を編集。
{
"providers": {
"mlx-dspark": {
"baseUrl": "http://127.0.0.1:8080/v1",
"api": "openai-completions",
"apiKey": "dummy",
"models": [
{
"id": "mlx-community/Qwen3.8-27B-MLX-8bit",
"contextWindow": 40960,
"maxTokens": 8192,
"reasoning": true,
"thinkingLevelMap": {
"off": "off",
"minimal": "minimal",
"low": "low",
"medium": "medium",
"high": "high",
"xhigh": "xhigh"
},
"compat": {
"thinkingFormat": "qwen-chat-template",
"supportsDeveloperRole": false
}
}
]
}
}
}5-4. シューティングゲームの作成
(1) piの起動。
pi --provider mlx-dspark \
--model mlx-community/Qwen3.8-27B-MLX-8bit \
--thinking xhigh
Shift+Tab で推論レベルを順番に切り替えられます。
off → minimal → low → medium → high→ xhigh
(2) ゲーム作成を指示。
JavaScriptでシューティングゲームを作って


6. OpenCode でゲーム作成
6-1. OpenCode
「OpenCode」は、ターミナルで動作するオープンソースのコーディングエージェントです。複数のLLMプロバイダーに対応しており、OpenAI互換APIを介してローカルLLMも利用できます。
今回の構成は次のようになります。
Qwen3.8-27B:LLM
↓
mlx-dspark:推論・高速化
↓
OpenCode:コーディングエージェント
↓
read / write / edit / bash:ツール
6-2. OpenCode のツール
OpenCode は標準でかなり多くのツールを持っています。公式ドキュメント上の組み込みツールは以下です。
・bash : シェル実行
・read : ファイル読み込み
・write : ファイル作成・上書き
・edit : ファイル部分編集
・grep : 内容検索
・glob : ファイル検索
・apply_patch : パッチ適用
・lsp : 定義・参照・Hoverなどのコード解析(experimental)
・skill : SKILL.md を読み込む
・todowrite : 作業Todo管理
・webfetch : URLの内容取得
・websearch : Web検索
・question : 実行途中でユーザーへ質問
websearch はOpenCode provider利用時、または OPENCODE_ENABLE_EXA=1 の場合に利用できます。LSPも環境変数で有効化する実験機能です
6-3. OpenCode のセットアップ
(1) OpenCodeのインストール。
npm install -g opencode-ai(2) グローバル設定フォルダの作成。
mkdir -p ~/.config/opencode(3) グローバル設定ファイルを編集。
・~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"model": "mlx-dspark/mlx-community/Qwen3.8-27B-MLX-8bit",
"provider": {
"mlx-dspark": {
"npm": "@ai-sdk/openai-compatible",
"name": "MLX DSpark",
"options": {
"baseURL": "http://127.0.0.1:8080/v1",
"apiKey": "dummy"
},
"models": {
"mlx-community/Qwen3.8-27B-MLX-8bit": {
"name": "Qwen3.8 27B MLX 8-bit",
"attachment": false,
"reasoning": true,
"temperature": true,
"tool_call": true,
"interleaved": {
"field": "reasoning_content"
},
"limit": {
"context": 40960,
"output": 8192
},
"variants": {
"off": {
"reasoningEffort": "none"
},
"minimal": {
"reasoningEffort": "minimal"
},
"low": {
"reasoningEffort": "low"
},
"medium": {
"reasoningEffort": "medium"
},
"high": {
"reasoningEffort": "high"
},
"xhigh": {
"reasoningEffort": "xhigh"
}
}
}
}
}
}
}variantsには、推論レベルとして off、minimal、low、medium、high、xhigh を設定しています。
6-3. シューティングゲームの作成
(1) OpenCodeを起動。
opencode
Ctrl+T で推論レベルを順番に切り替えられます。
off → minimal → low → medium → high→ xhigh
(2) ゲーム作成を指示。
JavaScriptでシューティングゲームを作って


以下を「OpenCode でゲーム作成」の次に追加できます。
7. Claude Code でゲーム作成
7-1. Claude Code
「Claude Code」は、Anthropicが提供するターミナル型のコーディングエージェントです。プロジェクト内のファイル編集、コマンド実行、コードの検証などをエージェントとして実行できます。
今回の構成は次のようになります。
Qwen3.8-27B:LLM
↓
mlx-dspark:推論・高速化、Anthropic互換API
↓
Claude Code:コーディングエージェント
↓
Read / Write / Edit / Bash:ツール
7-2. Claude Code のツール
Claude Codeの主なデフォルト内蔵ツールは次です。
・Read:ファイルを読む
・Edit / Write:ファイルを編集・作成
・Glob:ファイル名で検索
・Grep:ファイル内容を検索
・Bash:コマンド、Git、テストなどを実行
・WebSearch / WebFetch:Web検索・ページ取得
・Agent:サブエージェントを起動
・AskUserQuestion:ユーザーへ確認
・Skill:スキルを実行
・LSP:定義・参照・型エラーの確認(言語プラグインが必要)
7-2. Claude Codeのセットアップ
(1) Claude Codeのインストール。
curl -fsSL https://claude.ai/install.sh | bash7-3. シューティングゲームの作成
(1) mlx-dspark経由でClaude Codeを起動。
mlx-dspark claude
mlx-dspark claudeは、起動中のmlx-dsparkサーバーを検出し、Claude Codeの接続先とモデルを自動的に設定します。設定は起動したプロセス内だけで有効になり、通常のClaude Codeのログイン情報や設定ファイルは変更されません。
内部的には、次のような環境変数が設定されます。
・ANTHROPIC_BASE_URL:mlx-dsparkサーバーのURL
・ANTHROPIC_AUTH_TOKEN:ローカル接続用トークン
・ANTHROPIC_MODEL:読み込まれているQwen3.8-27B
・ANTHROPIC_SMALL_FAST_MODEL:バックグラウンド処理用モデル
(2) ゲーム作成を指示。
JavaScriptでシューティングゲームを作って
