ドキュメント

はじめに

LLMでの予測

エージェントフロー

テキスト埋め込み

トークン化

モデル情報

メモリ内のモデルを管理

AIモデルは非常に巨大です。それらをメモリにロードするには時間がかかる場合があります。LM StudioのSDKを使用すると、このプロセスを正確に制御できます。

モデル名前空間

  • LLMは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オフロードなど、ロード時の設定オプションを指定することもできます。

詳細については、ロード時の設定を参照してください。

自動アンロードタイマー(TTL)を設定する

ロードするモデルにtime to live(存続期間)を指定できます。これは、最後のリクエストからのアイドル時間(秒単位)で、モデルがアンロードされるまでの期間です。詳細については、アイドルTTLを参照してください。

プロのヒント

model()にTTLを指定した場合、それはmodel()が新しいインスタンスをロードした場合にのみ適用され、既存のインスタンスのTTLを遡って変更することはありません

import lmstudio as lms

llama = lms.llm("llama-3.2-1b-instruct", ttl=3600)