モデル別実行レシピ

Qwen3.8-27Bの設定:MacのoMLXとRTXのllama.cpp

Qwen3.8-27Bを起動したところ、他の人の記録と比べて遅いです。同じモデル名でも、ファイルや文脈、実行アプリが異なるため、出発点が異なる可能性があります。ここではまず、MacのoMLXとRTXのllama.cpp設定を区別し、どこで待ちているかを確認しながら一つずつ調整します。

ハードウェア別速度チューニングおよびサーバーリシピ要約

重み、KVキャッシュ、プリフィルバッチ、同時リクエストと加速機能を分離し、バランス・速度・長い文脈プロファイルで提供します。

ハードウェア適合度推奨ランタイム運用プロフィール開始文脈トークン生成
MBP M5 Pro 48GB (41GB)十分なメモリoMLXバランス重視の設定 · 生成速度 · MTP · 長い文脈16,384トークン13.9 ~ 15.4 tok/s
Studio M5 Ultra 256GB (236GB)十分なメモリoMLXバランス重視の設定 · 生成速度 · MTP · 長い文脈16,384トークン54.2 ~ 60.2 tok/s
Studio M5 Ultra 512GB (480GB)十分なメモリoMLXバランス重視の設定 · 生成速度 · MTP · 長い文脈16,384トークン54.2 ~ 60.2 tok/s
RTX 4090 24GB (22.5GB)十分なメモリllama.cpp (CUDA)バランス重視の設定 · プリフィル優先 · 長い文脈8,192トークン44.1 ~ 48.7 tok/s
2× RTX 3090 48GB (NVLink) (45GB)十分なメモリllama.cpp (マルチGPU)バランス重視の設定 · プリフィル優先 · 長い文脈16,384トークン57.5 ~ 79.8 tok/s
RTX PRO 6000 96GB (93GB)十分なメモリllama.cpp (CUDA)バランス重視の設定 · プリフィル優先 · 長い文脈16,384トークン87.6 ~ 96.6 tok/s
DGX Spark 128GB (116GB)十分なメモリSGLang + DFlash2公開測定再現設定16,384トークン47.9 tok/s
Ryzen AI Max+ 395 128GB (116GB)十分なメモリllama.cpp (ROCm/HIP)バランス重視の設定 · プリフィル優先 · 長い文脈16,384トークン11.2 ~ 12.5 tok/s

詳細ページから、プロフィール別に実行コマンド、適用値、停止すべき条件、および測定順序を確認できます。実行コマンドは、モデルファイルと実行プログラムが確認された組み合わせにのみ表示されます。

モデルファイルと実行アプリの対応を、まず確認する

デバイス選択機で現在のデバイスを選択すると、使用するパスと命令を確認できます。デスクトップでは、対応するQ4 GGUFまたはMLX変換版に基づいて確認します。約17GBほどのファイルサイズの通知は出発点に過ぎず、実際のダウンロードおよび実行時のメモリ使用量を確認する必要があります。

公式BF16モデルIDをサーバーに送るためのパスは、同じQ4ファイルを開くものではありません。27B重みだけを単純に計算しても約54GBの規模となり、より多くのワークスペースが必要になります。以下に示した公式サーバーの例を、24GBGPU用のQ4命令のようにコピーしないでください。

テキストの質問から正常に実行した後、画像入力と追加のアクセラレーションを確認します。最初のロードでモデルファイルとビジョン・MTPのサポートを同時に変更すると、どこで失敗したかを特定するのが難しいです。

一つの良好な設定を残します

Mac用oMLXおよびRTX用llama.cppの命令は、装置選択に応じて使用します。要求は1つに絞り、表示されたコンテキストから始めます。より大きなコンテキストまたは攻撃的なメモリ設定に直ちに移行するのではなく、まず正常な回答を残すことが重要です。

プリフィル、最初のトークンまでの時間、デコードおよびピークメモリを記録します。準備実行後に1回実行した結果、同じ入力に対して3回の中央値をもとに記録します。その後、プリフィルチャンクまたはキャッシュの精度を変更する際には、この記録をもとに実際の効果を判断します。

以下のvLLMコマンドは、別途NVIDIAサーバー経路に公式重みを格納できるものです。選択機のデスクトップコマンドと混同しないでください。サーバーは最初は127.0.0.1にのみ制限し、他のデバイスからのアクセスを想定する場合は、認証およびアクセス制限を別途準備します。

公式vLLMサーバーの運転(BF16/FP8 大容量メモリ用)

vllm serve Qwen/Qwen3.8-27B   --host 127.0.0.1   --port 8000   --max-model-len 8192   --gpu-memory-utilization 0.90

公式BF16重みとランタイム余裕を確保したNVIDIAサーバで127.0.0.1にて実行します。

サーバーが起動されたことと、回答が生成されたことは異なります

モデルリストを確認し、実際にロードされた識別子をリクエストに含めます。oMLXはこのガイドの8000、llama.cppは8080のように選択した命令のアドレスを使用しなければなりません。以下の例アドレスと異なる場合はその部分を修正した上で短い質問を送信してください。

回答がチャンクで到着するかどうか、また思考プロセスと最終回答がアプリ内で区別されるかどうかを確認します。思考トークンを長期間生成する場合、画面に最終文が遅れて表示される可能性があります。その時間を純粋なプリフィルとして誤って記録しないよう、サーバーログも確認してください。

基本質問が完了したら、通常のドキュメントを送ってください。短い挨拶から得られた最高tok/sよりも、そのドキュメントの最初の回答と完了時間は実際の使用により近いです。

APIエンドポイントヘルスチェックおよびチャットリクエスト検証

# 1. 로드된 모델 목록 확인
curl -N http://127.0.0.1:8000/v1/models

# 2. OpenAI 호환 챗 완성 API 호출
curl -N http://127.0.0.1:8000/v1/chat/completions   -H "Content-Type: application/json"   -d '{
    "model": "<local-model-identifier>",
    "messages": [
      {"role": "user", "content": "로컬 LLM 서빙의 장점을 세 가지로 요약해줘."}
    ],
    "temperature": 0.6,
    "max_tokens": 1024,
    "stream": true
  }'

oMLXは8000、llama.cppは8080ポートを使用します。実行されたランタイムに応じてアドレスを変更します。

遅いと感じたら、どの処理に時間がかかるかを見る

入力を受けた後、長時間待つ場合、プリフィルチャンクと入力長、キャッシュ状態を確認します。回答が開始された後で遅い場合は、CPUに移された重みがあるか、メモリの圧迫またはスワップが発生したかを確認します。この2つの問題をMTPステップの1つで解決しようとすると、原因を誤認してしまう可能性があります。

サポートされるファイルおよびランタイムでMTPを有効にした後は、同じ質問に対してデフォルト値と比較します。平均承認長が短い場合や検証コストが大きい場合、MTPを有効にしても利益を得られない可能性があります。キャッシュの精度とMTPを同時に変更しないでください。

必要な長文の文脈でメモリが不足する場合、まず要求数と長さを減らして戻りの基準を確保します。続けて、継続的に必要な処理においてのみ限界が繰り返されるかを確認の上、上位のメモリ構成を検討します。

良い記録よりも継続的に使う設定を残します

コードの修正とドキュメントの要約を行う場合、2種類の質問を残してください。一方だけが速くなる設定も存在します。速度だけでなく、実際の結果の誤差および実行失敗の有無も併せて確認しなければなりません。

最後に、モデルファイル・アプリバージョン・文脈・アクセラレーションオプションを保存します。更新後に問題が生じても、正常な構成に戻ることができます。最初から最も高速な数値を求めるのではなく、作業が完了するまでに必要な設定をまず作成した上で、その後で速度を上げるほうが、維持がしやすくなります。