LM StudioのJIT loadingと自動unloadはいつ使う?複数モデル運用の考え方

目次
LM StudioのAPIから複数モデルを使う場合、すべてを常に読み込んでおく方法と、必要なときだけ読み込む方法がある。
JIT loadingや自動unloadは、この使い分けに関係する機能だ。便利だから有効にするのではなく、モデルの読み込み待ちを減らしたいのか、VRAMやRAMを空けたいのかで判断する。
JIT loadingは必要になったモデルをその場で読み込む
JIT loadingを使う構成では、APIから指定されたモデルがまだ読み込まれていない場合に、必要になった時点で読み込むことができる。
複数モデルを常駐させる必要がない点は便利だが、最初の要求にはモデルの読み込み時間が加わる。
そのため、
- メモリを節約できる
- 最初の応答が速い
は同じ意味ではない。
自動unloadは使っていないモデルのメモリを空ける
一定時間利用されていないモデルを解放する設定を使えば、そのVRAMやRAMを別のモデルへ回しやすくなる。
一方、短い間隔で同じモデルへ何度も戻る使い方では、毎回読み込み直すことで待ち時間が増える場合がある。
idle TTLなどの設定値や既定値はLM Studioの更新で変わる可能性があるため、使用中のバージョンで確認する。
自動evictionを使うと常駐状態も変わる
別のモデルを読み込むためのメモリが足りないとき、すでに読み込まれているモデルを解放する仕組みが使われる場合がある。
その場合、「さっき読み込めたモデルだから今も常駐している」とは限らない。モデルの状態やログを見て、いつ読み込み・解放が起きたかを確認する。
2モデルだけで挙動を確認する
最初から多数のモデルを登録せず、AとBの2つで試す。
- Aへ短い要求を送る
- Bへ切り替える
- すぐAへ戻る
- しばらく使わずに待つ
- 再びBを使う
このとき、
モデル:
要求を送った時刻:
読み込み開始・完了:
応答開始までの時間:
VRAM・RAMの状態:
解放された時刻:
を記録する。
利用頻度で常駐かJITかを決める
毎日ほぼ同じモデルを連続して使うなら、常駐させた方が読み込み待ちを避けやすい。
反対に、複数モデルをたまに切り替えるだけで、使っていない間はメモリを空けたいならJIT loadingや自動unloadの価値が上がる。
常駐モデルを減らすことと、応答待ちを減らすことは両立しない場合がある。 自分の利用頻度で2モデルを実際に切り替え、どちらを優先するか決めるのが分かりやすい。
LM Studioの実行環境そのものを更新・切り替える場合は、LM Studioの推論環境を更新する前の確認を別の作業として確認する。
まとめ
- JIT loadingを使うと、要求された時点で必要なモデルを読み込む運用ができる
- 使っていないモデルを解放すればVRAMやRAMを空けられるが、次に使うときは読み込み待ちが発生する
- idle TTLや自動evictionの設定値・既定値は、使用中のLM Studioバージョンで確認する
- 2つのモデルを実際に交互利用し、常駐させる方がよいか必要時だけ読み込む方がよいか決める
公式サイトで次に進む
この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。
LM Studio
local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。
この記事で扱ったデータ
モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。
参照した情報源を見る(1件)
参照情報源
- LM Studio — Server settings and JIT model loadingLM Studio情報源を開く ↗