ローカルサーバーの測定ファイルを作る Node.js 20以上と、モデルがすでに動作しているOpenAI互換のローカルサーバーが必要です。 このツールはモデルをインストール・ダウンロードしません。起動済みのサーバーに固定の公開例文を送り、最初の出力までの待ち時間と出力にかかった時間を記録します。 1. 次の2ファイルを同じフォルダーに保存してください。 /tools/collect-serving-benchmark.mjs /tools/serving-benchmark-metadata.json 2. メタデータJSONのnullを、自分の実際の構成に置き換えてください。測定結果をあらかじめ記入するファイルではありません。 hardware.id: サイトの機器ID、または英小文字の識別子。 hardware.chip: 実際のチップ名。 hardware.memoryGB: この構成で使用する高速メモリの合計容量(GB)。別のシステムRAMをVRAMに足さないでください。 hardware.deviceCount: GPUまたはノードの数。 model.id: モデルの識別子。 model.artifact: 公開モデルリポジトリのpublisher/model名。個人のファイルパスは記入しないでください。 model.revision: モデルのrevision、またはリリースのバージョン。 model.quantization: 実際に使用しているモデルファイルの量子化形式。 runtime.name: llama.cpp / oMLX / LM Studio / SGLang / vLLM / MLX-LM / Ollama / other runtime.version: インストール済みランタイムのバージョン、またはビルド番号。 runtime.os: OSの名前とバージョン。 runtime.driverVersion: 確認したドライバーのバージョン。不明な場合はnot-recordedのままにしてください。 runtime.kvCache: f16 / bf16 / q8_0 / q4_0 / fp8_e4m3 / fp8_e5m2 / runtime-default runtime.acceleration: none / mtp / draft / ngram / mtp+ngram / draft+ngram / specprefill / custom workload.outputTokens: サーバーに指定する出力上限。テンプレートでは128です。結果ファイルには、サーバーが返した実際のトークン数を記録します。 workload.allocatedContextTokens: サーバーに実際に設定したコンテキスト上限。テンプレートの4096と異なる場合は変更してください。 workload.cacheState: unknownのままにしてください。このツールはサーバー内部のキャッシュを確認・消去できません。 workload.concurrency: 1のままにしてください。リクエストを1件ずつ測定します。 workload.warmupRuns: ウォームアップの回数。テンプレートでは1です。ウォームアップは、その後の3回の測定には含めません。 3. まずメタデータの形式を確認してください。このコマンドはサーバーに接続しません。 node collect-serving-benchmark.mjs --metadata serving-benchmark-metadata.json --check-metadata 4. 自分のローカルサーバーのアドレスと、サーバー上のモデル名を指定して実行してください。 node collect-serving-benchmark.mjs --url http://127.0.0.1:8000/v1 --model SERVED_MODEL --metadata serving-benchmark-metadata.json --output measurement.json --consent 8000はポート番号の例です。LM Studioなどでも、実際に使用しているポート番号に変更してください。 同じコンピューターのループバックアドレス(127.0.0.1、localhost、[::1])を使い、ポート番号も指定してください。外部サービスには接続できません。 SERVED_MODELはサーバーが受け付けるモデルの別名です。モデルファイルのパスではありません。 テンプレートの設定では、ウォームアップを1回行った後に3回測定します。--consentは、機器の仕様・設定・数値を含むローカルファイルの作成に同意するオプションです。 サイトや別のサーバーへの自動送信は行いません。measurement.jsonを開いて内容を確認してから、サイトの測定記録の取り込みフォームで送信してください。 ファイルに記録するもの 機器・モデル・ランタイムの設定、実際の入力/出力トークン数、最初のトークンまでの待ち時間、最初の出力から最後の出力までにかかった時間。 プロンプト、回答、未加工のログ、トークンの一覧、サーバーのアドレス、ローカルファイルのパスは保存しません。 測定上の注意点 出力時間は、ローカルAPIのストリームを受信する時刻を使って測ります。エンジン内部のGPU処理時間とは異なります。 最初のトークンまでの待ち時間を、プリフィルの処理速度に換算しません。プリフィル時間やピークメモリ使用量を推測して補うこともありません。 サーバーが正確なトークン数を返さない場合、出力を一度にまとめて送る場合、各測定のトークン数が一致しない場合は、結果ファイルを作成しません。 不正な応答内容や秘密鍵はエラーメッセージに含めません。既存の結果ファイルも上書きしません。 承認された記録も、ユーザーによる測定です。サイトの運営者が同じ機器で結果を再現したことを意味するものではありません。