実行プログラムと拡張機能
MTPLX:MacでMTPを使うと回答は速くなる?
Macでモデルは動くものの、長い回答を待つ時間が気になります。MTPLXは、そんなときに検討できる実行ソフトです。モデルのMTPを使って次のトークンを先に提案し、検証します。ただし、手元のファイルにはMTPの重みが含まれていないかもしれません。多く先読みすれば必ず速くなるわけでもありません。
先に書いたトークンにも確認が必要です
通常の生成が次のトークンを1つずつ続けるのに対し、MTPはいくつかの候補を先に準備します。本体が候補を確認し、受け入れた部分を回答に加えます。候補がよく合い、検証の負担が小さければ、1回で先に進める距離が増えます。不採用の候補が多ければ、先回りした仕事がそのまま利点になるわけではありません。
MTPLXは、別の小さなドラフトモデルを追加で載せる方式とは異なります。ただし、追加のメモリや計算が不要という意味ではありません。まずモデルとコンテキストを収める空間が必要です。長い文書を読む時間と回答を書く時間も分けてください。MTPによる生成の短縮だけで、どのリクエストも最初の文字が速く出るとはいえません。
手元のモデルを使えるかを先に確認します
対象はApple Silicon搭載Macです。公式案内はmacOS 14以降を指定しており、ターミナルから導入する場合はPythonとMLXの環境も確認します。アプリが勧めるモデルを選ぶ方法と、環境を自分で構築する方法を最初から混ぜる必要はありません。ターミナルを使うなら、以下で導入した後、選択画面でモデルと実行方法を決められます。
同じモデル名でもGGUFとMLXは別のファイルです。また、MLXファイルならすべてMTPを含むわけではありません。MTPLX向けに本体と対応するMTPの重みが一緒に用意されたモデルを確認してください。通常のMLX本体に出所の異なるMTPファイルを付けるような構成は避けます。対応一覧も、導入したアプリとバージョンに合わせて読みます。
Homebrewで導入してモデルを選択
brew install youssofal/mtplx/mtplx
mtplx startHomebrew導入済みのApple Silicon Mac向けのターミナル例です。選んだモデルは別途ダウンロードするため、ファイル容量と空きメモリを先に確認してください。
MTPの深度は自分のMacで比較して選びます
まず短い質問への回答が最後まで出るかを確認します。その後、自分のMacで通常の生成とMTPの深度を比較します。別のサーバーが同じモデルを読み込んでいるなら、先に終了してメモリの競合を減らしてください。アプリの自動調整や以下のコマンドは、他人のMacの値をそのまま流用しないための方法です。
選ばれた値も、普段の作業で試します。短い質問では問題なくても、長いコード修正を繰り返すと発熱やメモリ負荷で変わることがあります。ファンを強く回したモードと静かな標準モードの記録も混ぜないようにしましょう。その条件でMTPに利点がなければ、通常の生成を残すのが妥当です。
現在のモデルでMTPの深度を再比較
mtplx tune --retuneモデルを選んだ後に実行します。結果と一緒にモデル、コンテキスト、ファンモードを記録し、普段の質問でも完了時間と回答を確認してください。
チャットが動いたらエディターにつなぎます
MTPLXはOpenAI形式とAnthropic形式のAPIを提供します。まずローカルのクライアントをつなぐなら、アドレスを127.0.0.1に保ちます。以下は、サーバーが応答するかと、どのモデル名を公開しているかを確認する手順です。別のアプリには、そのモデルIDとアプリが求める形式のベースアドレスを設定します。
モデル一覧が見えるだけで接続確認が完了したわけではありません。使うアプリで、短い会話が続くか、思考過程と本文が分かれるか、必要なツール呼び出しが届くかを確かめてください。エディターがつながらないときは、モデルを再ダウンロードする前にアドレス、ポート、モデル名を照合すると、余分な作業を減らせます。
実行中のローカルサーバーを確認
curl --fail http://127.0.0.1:8000/health
curl --fail http://127.0.0.1:8000/v1/modelsmtplx startでサーバーを起動した状態の例です。ポートを変えた場合はアドレスも変更します。この応答はモデル速度の測定結果ではありません。
途中で切れる、最初の回答だけ遅いとき
メモリが足りないときに、MTPの深度をさらに増やすことから始めないでください。コンテキストと同時リクエスト数を減らし、他のアプリのメモリ使用量と選んだファイルの大きさを確認します。実行環境を疑うならmtplx doctorで状態を確認してください。動いていたモデルと設定を残しておけば、調査中に戻る場所ができます。
同じ文書の2回目だけ速いなら、まずキャッシュ再利用を確認します。MTPLXのセッションキャッシュは会話の状態を再利用するもので、モデルのn-gramテーブルをSSDへ移す機能とは別です。キャッシュを使う会話と初めて読む文書を分けて記録すれば、エンジン変更の効果を過大に見積もらずに済みます。
保存した会話状態も管理の対象です。公開ログには質問の原文、ローカルのファイルパス、認証情報を含めないでください。更新後に問題が出たなら、バージョンとエラーを記録し、まず以前の正常な組み合わせに戻すほうが、設定をいくつも追加で有効にするより適切です。
oMLXですでに問題なく使えているなら
今のoMLXやLM Studioでモデル管理と応答速度が十分なら、そのまま使い続けても構いません。対応するMTPモデルで同じ仕事の待ち時間を減らせるか試したいときに、MTPLXを候補へ加えればよいのです。エンジン変更で得た効果と、量子化の精度を下げて得た効果は分けて判断してください。
機材別レシピには、その組み合わせで現在整理している実行経路を示しています。そこの推定値を、MTPLXで測った速度として読まないでください。この記事のコマンドは導入と確認の手順を示すもので、自分のMacに残した実行結果が実際の判断基準です。
変更履歴
サイトの説明を変更した記録です。インストール済みのエンジンやモデルのバージョンを自動で確認した結果ではありません。
MTPLXのインストール・調整・API案内を追加
Homebrewでのインストールからモデル選択、MTPの深さの再調整、ローカルAPIの確認までの手順を追加しました。本体と適合するMTP重みが必要なこと、既存レシピの推定速度はMTPLXでの実測値ではないことを明記しました。