ドキュメンテーション

「アイドルTTL」と「自動退去」

ℹ️ LM Studio 0.3.9 (b1) が必要です(現在ベータ版)。こちらからダウンロードしてください

LM Studio 0.3.9 (b1) では、APIモデルにTime-To-Live (TTL) を設定する機能が導入され、オプションとして、新しいモデルをロードする前に以前にロードされたモデルを自動的に退去させることができるようになりました。

これらの機能は、LM Studio のオンデマンドモデルロード (JIT)を補完し、効率的なメモリ管理を自動化し、手動での介入の必要性を減らします。

背景

  • JITロードにより、LM Studioモデルを他のアプリで簡単に使用できるようになります。モデルを使用する前に手動でロードする必要はありません。ただし、これはモデルが使用されていない場合でもメモリにロードされたままになる可能性があることも意味します。[デフォルト: 有効]

  • (新規) アイドルTTL(技術的には: Time-To-Live)は、モデルがリクエストを受信せずにメモリにロードされたままいられる期間を定義します。TTLの期限が切れると、モデルは自動的にメモリからアンロードされます。リクエストペイロードのttlフィールドを使用してTTLを設定できます。[デフォルト: 60分]

  • (新規) 自動退去は、新しいモデルをロードする前に、以前にJITロードされたモデルをアンロードする機能です。これにより、クライアントアプリからモデルを簡単に切り替えることができ、手動で最初にアンロードする必要がなくなります。この機能は、開発者タブ > サーバー設定で有効または無効にできます。[デフォルト: 有効]

アイドルTTL

ユースケース: LM Studioが提供するLLMとやり取りするために、ZedCline、またはContinue.devのようなアプリを使用していると想像してください。これらのアプリはJITを活用して、初めて使用するときにモデルをオンデマンドでロードします。

問題: モデルをアクティブに使用していない場合、メモリにロードされたままにしておきたくない場合があります。

解決策: APIリクエストを介してロードされたモデルにTTLを設定します。モデルがリクエストを受信するたびにアイドルタイマーはリセットされるため、使用中に消えることはありません。モデルが何も作業していない場合、アイドル状態と見なされます。アイドルTTLが期限切れになると、モデルは自動的にメモリからアンロードされます。

アプリのデフォルトのアイドルTTLを設定する

デフォルトでは、JITロードされたモデルは60分のTTLを持ちます。JITを介してロードされる任意のモデルに対して、以下のようにデフォルトのTTL値を設定できます。

undefined

デフォルトのTTL値を設定します。リクエストペイロードで別途指定されない限り、すべてのJITロードされたモデルに使用されます。

APIリクエストでモデルごとのTTLを設定する

JITロードが有効になっている場合、モデルへの最初の要求により、モデルがメモリにロードされます。リクエストペイロードでそのモデルのTTLを指定できます。

これは、OpenAI互換APILM StudioのREST APIの両方をターゲットとするリクエストで機能します。


curl http://localhost:1234/api/v0/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1-distill-qwen-7b",
+   "ttl": 300,
    "messages": [ ... ]
}'
これにより、モデルがJITロードされた場合、そのモデルのTTLが5分(300秒)に設定されます。

lmsでロードされたモデルのTTLを設定する

デフォルトでは、lms loadでロードされたモデルはTTLを持たず、手動でアンロードするまでメモリにロードされたままになります。

lmsでロードされたモデルのTTLを以下のように設定できます。

lms load <model> --ttl 3600
1時間(3600秒)のTTLを持つ<model>をロードします。

サーバータブでモデルをロードする際にTTLを指定する

サーバータブでモデルをロードする際にも、以下のようにTTLを設定できます。

undefined

サーバータブでモデルをロードする際にTTL値を設定します。

JITロードされたモデルの自動退去を設定する

この設定により、JITを介してロードされた新しいモデルが、以前にロードされたモデルを自動的に最初にアンロードするようにできます。

これは、別のアプリからモデルを切り替える際に、未使用のモデルでメモリが蓄積されることを心配せずに済むため、便利です。

undefined

開発者タブ > サーバー設定で、JITロードされたモデルの自動退去を有効または無効にします。

自動退去がオンの場合(デフォルト)

  • (JITを介してロードされた場合)一度にメモリにロードされるモデルは最大1つです。
  • JITでロードされていないモデルは影響を受けません。

自動退去がオフの場合:

  • 外部アプリからモデルを切り替えると、以前のモデルはメモリにロードされたままになります。
  • モデルは、次のいずれかの状態になるまでロードされたままになります。
    • TTLが期限切れになる
    • 手動でアンロードする

この機能はTTLと連携して機能し、ワークフローのメモリ管理を向上させます。

用語集

TTL:Time-To-Live(生存時間)は、ネットワークプロトコルやキャッシュシステムから借用された用語です。これは、リソースが古くなり退去させられると見なされるまでに、どれだけの期間割り当てられたままでいられるかを定義します。