メモリとモデル

64GBのCMP 170HXには長文をどれくらい入力できる?

18,976トークンを処理した測定はありますが、64GBだけでは利用できる文脈長は決まりません。

64GBのメモリーにモデルを読み込むと、残りの領域の一部を文書や会話の情報を保持するKVキャッシュ1が使います。同じCMP 170HXでも、エンジンとモデル構成によって処理できる入力長が変わります。公開Qwen3.8-27B試験ではopen-jetが18,976トークン2入力を完了し、最初のトークンまで約13.55秒かかりました。

長文では生成速度だけでなく、最初の回答までの待ち時間も重要です。下の入力長ごとの表で完了状況と待ち時間を比べ、普段使う文書で確認してください。

実行条件と要点
  • 64GBはメモリー容量であり、一つの要求に入るトークン数はエンジンとモデル設定で確認します。
  • open-jetは18,976トークン入力を完了し、vLLMは9,472トークンでXid 31により停止しました。
  • 文脈設定65,536は、その長さまで検証されたことを意味しません。

メモリー容量と文脈長は別の数値です

モデルの重みはGPU3メモリーに常駐し、長い入力を処理するとトークンごとのattention4状態を保存するKVキャッシュも増えます。プロンプト5と回答は設定されたcontextを分け合うため、長い回答を求めると入力に使える余裕が減ります。物理容量64GBはこのメモリー予算の一部であり、エンジンが対応する最大トークン数と同じではありません。

文書のページ数も、そのままトークン数には換算できません。図表の量、文字密度、PDFアプリが全文を送るか関連箇所だけを送るかによって、モデルが受け取る量は変わります。レシピや測定表のトークン数は実際の入力長を示すもので、ページ数の推定値ではありません。

作業台にCMP 170HXカード1枚と虫眼鏡、ノートが置かれています。
64GBはカードのメモリー容量で、実際の要求長はエンジンごとに確認します。

18,976トークンを処理したエンジンと失敗したエンジンを分けます

open-jetは3,158・9,472・18,976トークン入力をすべて完了しました。vLLMは3,163トークンのチャット要求を完了しましたが、9,472トークンのチャット要求ではエラーで終了しました。まず表で、使いたい入力長とエンジンを確認してください。

左右にスクロールして各項目を比較できます。

CMP 170HX 1枚で記録された入力長ごとの結果
エンジン・モード入力トークン数記録された結果TTFT
open-jet MTP d=43,158完了2.066秒
open-jet MTP d=49,472完了6.358秒
open-jet MTP d=418,976完了13.550秒
vLLM DFlash2 k=73,163完了1.651秒
vLLM DFlash2 k=79,472Xid 31エラーでエンジン終了測定なし
vLLM DFlash2 k=765,536設定値・入力試験なし測定なし
グラフィックスカードを搭載したワークステーションの横で、モニターに空白のウィンドウが開いています。
同じ入力長でも、完了状況や最初の応答時間はエンジンによって変わります。

長文を入力する前に同じ条件で段階的に試します

まずモデルファイルとサービングエンジンを選び、実作業で送る指示と会話履歴を固定します。短い入力で応答を確認し、その後内容を増やして要求が最後まで完了するか調べます。各長さで入力トークン数、TTFT6、生成速度、完了・エラー状況を分けて記録すると、文書が長くなった際の変化を把握できます。

open-jetの測定では同じGPU構成で入力長を3,158→9,472→18,976トークンへ増やし、MTP7 d=4のTTFTは2.066→6.358→13.550秒に伸びました。decode8平均は約77.20、76.74、75.39 tok/sでした。これは1台・1エンジンでの記録なので、別のカードやモデル量子化9にそのまま適用せず、自分の文書と回答長で再確認してください。

入力を増やしたときエンジンが停止した場合、そのcontext設定値を最大対応長とは呼びません。トークン数とエラーを記録し、一段短い入力で再確認します。文書を分割したり関連箇所を検索したりする方法もありますが、モデルに渡る文脈が変わるため、文書全体を一度に処理した結果とは区別してください。

長文が負担になる場合は、必要な箇所から送ってください。

vLLMは/v1/completionsでも6,603トークン入力を完了しています。これは表のチャット要求とはAPI10と入力が異なる記録です。サーバーの65,536という設定値より、実際に使う方式で完了した長さを基に文書を準備してください。

文書全体を一度に入力できない場合は、章や節ごとに要約し、最後に要約をまとめられます。特定の質問に答えるなら、RAG11で関連箇所だけを検索して送る方法もあります。全体の理解が必要か、必要な部分だけ探せばよいかに応じて送る内容を決めてください。

オープン型ワークステーションにGPUカード2枚が搭載され、横にファンと目盛りのない計器があります。
入力長を増やす際は、完了した最長要求とエラーが起きた長さを記録します。

用語の注釈

  1. KVキャッシュ — 過去トークンのAttention用キー・バリューを保存し、後続トークン生成で再利用するメモリです。容量はコンテキスト長やバッチサイズで変わります。

    本文に戻る
  2. トークン — モデルが入力や出力を分けて処理する単位です。

    本文に戻る
  3. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  4. Attention — 入力トークン間の関連度を計算し、各位置の情報を現在の表現に反映するニューラルネットワーク演算です。

    本文に戻る
  5. プロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。

    本文に戻る
  6. 最初のトークンまでの時間 — リクエスト送信から最初の出力トークンが届くまでの時間です。

    本文に戻る
  7. MTP — 複数の将来トークンを一度に予測する学習目標、またはそれを行うモデル構成です。投機的デコーディングでは、その予測を候補トークンとして提案できます。

    本文に戻る
  8. トークンのデコード — 入力とそれまでの回答をもとに、次の出力トークンを順に生成する段階です。

    本文に戻る
  9. 量子化 — モデルの重みや計算値を少ないビット数で表し、保存容量やメモリ使用量を減らす方法です。表現が粗くなるため、精度にも影響することがあります。

    本文に戻る
  10. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る
  11. 検索拡張生成 — 質問に関連する資料を検索してモデル入力に加え、その文脈をもとに回答を生成する方式です。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
64GBのメモリーにモデルを読み込むと、残りの領域の一部を文書や会話の情報を保持するKVキャッシュが使います。同じCMP 170HXでも、エンジンとモデル構成によって処理できる入力長が変わります。公開Qwen3.8-27B試験ではopen-jetが18,976トークン入力を完了し、最初のトークンまで約13.55秒かかりました。
必要なメモリはどのくらいですか?
モデルの重みはGPUメモリーに常駐し、長い入力を処理するとトークンごとのattention状態を保存するKVキャッシュも増えます。プロンプトと回答は設定されたcontextを分け合うため、長い回答を求めると入力に使える余裕が減ります。物理容量64GBはこのメモリー予算の一部であり、エンジンが対応する最大トークン数と同じではありません。