Local / Edge実践ガイド

LM Studioのコンテキスト長はどう決める?必要な長さから設定する

LM Studioのコンテキスト長はどう決める? — 必要な長さから設定する
目次

公式サイトで次に進む

この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。

local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。

LM Studioでコンテキスト長を設定するとき、モデルカードに書かれた最大値をそのまま使えばよいとは限らない。

モデルが128Kまで対応していても、普段の会話でそこまで長い入力を使わないなら、最初から128Kを確保する必要はない。自分が実際に使う入力の長さを基準にし、足りないときだけ増やす方がメモリの変化も追いやすい。

モデルの上限とLM Studioの設定値を分ける

モデルカードにあるコンテキスト長は、そのモデルが扱える範囲を示す情報だ。一方、LM Studioで読み込むときに指定する長さは、今回の実行で確保する設定になる。

まず次を分けて記録する。

モデルが対応する上限:
普段使う入力の長さ:
必要な余裕:
LM Studioで設定する長さ:

最大値ではなく、普段の用途に必要な長さから考える。

モデルごとの設定やlms loadで確認する

LM Studioではモデルを読み込むときにコンテキスト長を設定できる。CLIのlms loadを使う場合は、--context-lengthで長さを指定できる。

また、対応するバージョンでは--estimate-onlyを使って、実際に読み込む前にメモリの見積もりを確認できる。

ただし、この見積もりを推論中に観測した最大VRAM使用量と同じ数字として扱わない。実際の使用量を比べる場合は、実行中の計測を別に行う。

長くするとKV cacheなどのメモリも増える

コンテキストを長くすると、KV cacheなどに必要なメモリも増える。

そのため、モデルが長いコンテキストへ対応していることと、自分のPCでその長さを余裕を持って使えることは別の話になる。

通常の会話が中心なら、将来使うかもしれない最大値を常時設定するより、今必要な範囲で読み込む方が扱いやすい。

小さい設定から一段ずつ増やす

メモリ使用量を確認しながら調整するなら、一度に複数条件を変えない。

  1. 必要最低限のコンテキスト長でモデルを読み込む
  2. メモリの見積もりや実測値を記録する
  3. 実際に使うプロンプトを試す
  4. 長さが足りなければ一段増やす
  5. 同じモデルと設定で再確認する

モデルや量子化まで同時に変えると、何がメモリ差を作ったのか分かりにくくなる。

PDFやRAGでは質問文以外も入る

文書チャットやRAGでは、コンテキストへ入るのは質問文だけではない。

  • system prompt
  • 会話履歴
  • 検索で取り出した文書
  • 添付文書の内容

なども加わる。

長いPDFを扱うから最大値へ設定するのではなく、実際にLM Studioがモデルへ渡す情報量を確認する。

必要な処理が入る長さで止める

目的は最大値を使うことではなく、必要な入力を安定して扱うことだ。

普段使う長さで始め、メモリと応答時間を確認し、足りない場合だけ増やす。 この順にすると、モデルの最大仕様ではなく、自分の使い方に合ったコンテキスト長を決めやすい。

LM Studioでモデル自体を選ぶ段階なら、LM Studioでモデルと量子化を選ぶ方法を先に確認できる。長いコンテキストが実際に必要か評価したい場合は、長コンテキストのローカルLLMを評価する方法へ進む。

まとめ

  • モデルが対応する最大コンテキスト長と、LM Studioで実際に確保する長さは別に考える
  • `lms load`ではコンテキスト長を指定でき、読み込み前のメモリ見積もりも確認できる
  • 長いコンテキストはKV cacheなどのメモリ使用量へ影響するため、最初から最大値へ設定する必要はない
  • 普段使う入力の長さを基準にし、足りないときだけ段階的に増やす
同じテーマから

この記事で扱ったデータ

モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。

サイト内検索