機械学習
記事内に商品プロモーションを含む場合があります

【実行高速化!】MacのOpenCode環境でmlx-lmを動かす方法

Aru

Appleシリコン(Mシリーズチップ)を搭載したMacでローカルLLMを利用する場合、mlx-lmが高速です。この記事では、OpenCode環境にmlx-lmを組み込んで、ローカルAIによるコーディングを劇的に高速化する方法について解説します。

mlx-lmとは

mlxはAppleの提供するApple Silicon向けの機械学習用のフレームワークです。

mlx-lmは、このmlx用いて大規模言語モデル(LLM)を利用するためのユーティリティという位置付けになります。

mlx-lmを利用するメリットは以下の通りです。

  • 圧倒的な高速化と省メモリ
    Apple Siliconのユニファイドメモリ(UMA)を最大限に活かす設計のため、GPUとCPU間で無駄なデータ転送が発生しません。これにより、ローカル環境での推論速度が高速です。
  • Hugging Faceとの高い親和性
    Hugging Face上に公開されている膨大なLLM(Llama、Gemma、Mistral、Qwenなど)を、コマンドラインから直接ダウンロード(ダウンロードされていない場合は自動ダウンロード)して、mlx用に最適化された形式で即座に実行できます。

今回、AIエージェントで利用するので「高速性」は大きなメリットになります(ollamaなど比較して2~3倍高速という報告もあります。)

あわせて読みたい
MacでLLMをファインチューニング|mlx-lmでLoRAを試す
MacでLLMをファインチューニング|mlx-lmでLoRAを試す

インストール

インストールは簡単です。以下のコマンドで簡単にインストールできます。

pip install mlx-lm

依存関係の衝突を防ぐために、仮想環境を作ってからインストールすることをお勧めします。

あわせて読みたい
Macで開発環境関連の初期設定する手順(VSCode, brew, iterm2, python, go)
Macで開発環境関連の初期設定する手順(VSCode, brew, iterm2, python, go)

サーバーの起動

サーバーの起動は以下のようなコマンドになります。

mlx_lm.server \
  --model mlx-community/Qwen3.6-35B-A3B-4bit \
  --host 127.0.0.1 --port 8081

この例では、ポート8081で待ち受ける設定としています。これで、OpenAI互換のAPIでの利用が可能になります。

ちなみに、--host 127.0.0.1 --port 1234と指定すればLMStudioと同じになります。切り替えて使う場合はこちらのほうが楽かもしれません。ただ、同時に動かすと衝突するので要注意です。

OpenCodeの設定

OpenCodeについては以下の記事を参考にしてください。ここでは、mlx-lmを利用するための設定だけ説明します。

あわせて読みたい
OpenCode+DS4で、ローカルAIコーディングエージェント環境を試してみた
OpenCode+DS4で、ローカルAIコーディングエージェント環境を試してみた

opencode.json

mlx-lmを利用するには、opencode.jsonに以下のような記述を行います。今回も、コンテキストサイズ200,000で制限を行っていますが、メモリ容量によっては大きすぎるかもしれません。動作が重い、またはクラッシュする場合は、数万(例: 32,000など)に落として調整してください。

注意点

Qwen3.6(特に35Bなどの大型モデル)をMacのローカル環境で動かす場合、コンテキストサイズを 200,000 まで広げると、たとえ4-bit量子化版(Qwen3.6-35B-A3B-4bit)であっても、コンテキストが埋まるにつれてユニファイドメモリ(RAM)を大量に消費し、動作が極端に重くなる(またはクラッシュする)可能性があります。

私の環境は128GB搭載のM4 Maxなので問題は発生していませんが、もしメモリが足りないならモデルを変更するなどの対応が必要です。

モデルの変更する場合は、mlx-community/Qwen3.6-35B-A3B-4bitの部分を修正します。

{
    "$schema": "https://opencode.ai/config.json",
    "provider": {
        "mlx": {
            "name": "mlx-lm (local)",
            "npm": "@ai-sdk/openai-compatible",
            "options": {
                "baseURL": "http://127.0.0.1:8081/v1",
                "apiKey": ""
            },
            "models": {
                "mlx-community/Qwen3.6-35B-A3B-4bit": {
                    "name": "Qwen3.6 35B A3B",
                    "limit": {
                        "context": 200000,
                        "output":  200000
                    }
                }
            }
        }
    },
    "agent": {
        "Qwen3.6": {
            "description": "you are agent for python programming",
            "model": "mlx/mlx-community/Qwen3.6-35B-A3B-4bit",
            "temperature": 0
        }
    }
}

これで設定は完了です。ちなみに、エージェントのdescriptionは目的に合わせて変更してください。私はPythonプログラミングのエージェントとして設定しています。

OpenCodeの起動と利用

OpenCodeを立ち上げたら、Tabキーを押して、エージェントをQwen3.6に変更します。

あとは、普通に使えば、mlx-lmを使って対話可能です。

実際に使ってみた感想

LMStudioやollamaと比較した感じだと、若干高速化されているなという感じです。ただ、OpenCodeなどのエージェントで利用する場合は、コンテキストが大きめになり応答が遅くなりがちなので、高速性は重要です。

まとめ

mlx-lm + opencodeの環境を作る手順について解説しました。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
ある/Aru
ある/Aru
IT&機械学習エンジニア/ファイナンシャルプランナー(CFP®)
専門分野は並列処理・画像処理・機械学習・ディープラーニング。プログラミング言語はC, C++, Go, Pythonを中心として色々利用。現在は、Kaggle, 競プロなどをしながら悠々自適に活動中 保有資格:CFP, マンション管理士、管理業務主任、宅建士など
記事URLをコピーしました