ドキュメント
メモリ内のモデルを管理
AIモデルは非常に巨大です。それらをメモリにロードするには時間がかかる場合があります。LM StudioのSDKを使用すると、このプロセスを正確に制御できます。
モデル名前空間
client.llm
名前空間を介してアクセスされます。client.embedding
名前空間を介してアクセスされます。lmstudio.llm
は、デフォルトクライアント上のclient.llm.model
と同等です。lmstudio.embedding_model
は、デフォルトクライアント上のclient.embedding.model
と同等です。最も一般的な方法
.model()
を使用します。.model("model-key")
を使用します。高度な設定(手動モデル管理)
.load_new_instance("model-key")
を使用します。.unload("model-key")
またはmodel_handle.unload()
を使用します。.model()
で取得するLM Studioにすでにモデルがロードされている場合(GUIまたはlms load
経由)、引数なしで.model()
を呼び出すことで使用できます。
import lmstudio as lms
model = lms.llm()
.model("model-key")
で取得する特定のモデルを使用したい場合は、モデルキーを.model()
の引数として提供できます。
.model("model-key")
を呼び出すと、モデルがまだロードされていない場合はロードされ、ロード済みであれば既存のインスタンスが返されます。
import lmstudio as lms
model = lms.llm("llama-3.2-1b-instruct")
.load_new_instance()
でロードするload_new_instance()
を使用すると、モデルの新しいインスタンスを、たとえ既存のインスタンスがあってもロードできます。これにより、同じモデルまたは異なるモデルの複数のインスタンスを同時にロードできます。
import lmstudio as lms
client = lms.get_default_client()
llama = client.llm.load_new_instance("llama-3.2-1b-instruct")
another_llama = client.llm.load_new_instance("llama-3.2-1b-instruct", "second-llama")
既に存在するインスタンス識別子を指定すると、サーバーはエラーをスローします。したがって、特に気にしない場合は、識別子を指定しない方が安全です。その場合、サーバーが自動的に生成します。LM Studioのサーバータブでいつでも確認することもできます!
.unload()
でアンロードするモデルが不要になったら、そのハンドル上でunload()
を呼び出すだけでアンロードできます。
import lmstudio as lms
model = lms.llm()
model.unload()
モデルをロードする際に、コンテキスト長やGPUオフロードなど、ロード時の設定オプションを指定することもできます。
詳細については、ロード時の設定を参照してください。
ロードするモデルにtime to live(存続期間)を指定できます。これは、最後のリクエストからのアイドル時間(秒単位)で、モデルがアンロードされるまでの期間です。詳細については、アイドルTTLを参照してください。
model()
にTTLを指定した場合、それはmodel()
が新しいインスタンスをロードした場合にのみ適用され、既存のインスタンスのTTLを遡って変更することはありません。
import lmstudio as lms
llama = lms.llm("llama-3.2-1b-instruct", ttl=3600)
このページの内容
現在のモデルを.model()で取得
特定のモデルを.model("model-key")で取得
- ロードされていれば取得、そうでなければロード
.load_new_instance()でモデルの新しいインスタンスをロード
インスタンス識別子に関する注意
.unload()でメモリからモデルをアンロード
カスタムロード設定パラメータを設定
自動アンロードタイマー(TTL)を設定