ドキュメンテーション

LLMでの予測

エージェントフロー

テキスト埋め込み

トークン化

モデル情報

API リファレンス

メモリ内のモデルを管理

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

最も一般的な使用法

  • 現在ロードされているモデルを取得するには、.model()を使用します
  • 特定のモデルを使用するには、.model("model-key")を使用します

詳細 (手動モデル管理)

  • モデルの新しいインスタンスをロードするには、.load("model-key")を使用します
  • モデルをメモリからアンロードするには、model.unload()を使用します

現在のモデルを.model()で取得する

LM Studioに既にモデルがロードされている場合(GUIまたはlms load経由で)、引数なしで.model()を呼び出すことで使用できます。

import { LMStudioClient } from "@lmstudio/sdk";
const client = new LMStudioClient();

const model = await client.llm.model();

特定のモデルを.model("model-key")で取得する

特定のモデルを使用したい場合は、.model()の引数としてモデルキーを指定できます。

ロードされていれば取得、そうでなければロード

.model("model-key")を呼び出すと、モデルがまだロードされていない場合はロードされ、既存のインスタンスが既にロードされている場合はそれを返します。

import { LMStudioClient } from "@lmstudio/sdk";
const client = new LMStudioClient();

const model = await client.llm.model("llama-3.2-1b-instruct");

モデルの新しいインスタンスを.load()でロードする

load()を使用して、モデルの新しいインスタンスをロードします。たとえ既存のインスタンスがあっても同様です。これにより、同じモデルまたは異なるモデルの複数のインスタンスを同時にロードできます。

import { LMStudioClient } from "@lmstudio/sdk";
const client = new LMStudioClient();

const llama = await client.llm.load("llama-3.2-1b-instruct");
const another_llama = await client.llm.load("llama-3.2-1b-instruct", {
  identifier: "second-llama"
});

インスタンス識別子に関する注意

既に存在するインスタンス識別子を提供すると、サーバーはエラーをスローします。したがって、特に気にしない場合は、識別子を提供しない方が安全です。その場合、サーバーが自動的に生成します。LM Studioのサーバータブでもいつでも確認できます!

メモリからモデルを.unload()でアンロードする

モデルが不要になったら、そのハンドルでunload()を呼び出すだけでアンロードできます。

import { LMStudioClient } from "@lmstudio/sdk";

const client = new LMStudioClient();

const model = await client.llm.model();
await model.unload();

カスタムロード設定パラメータを設定する

モデルをロードする際に、コンテキスト長やGPUオフロードなどのロード時設定オプションを指定することもできます。

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

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

ロードするモデルに「タイム・トゥ・ライブ (time to live)」を指定できます。これは、最後の要求からモデルがアンロードされるまでのアイドル時間(秒単位)です。詳細については、アイドルTTLを参照してください。

import { LMStudioClient } from "@lmstudio/sdk";

const client = new LMStudioClient();

const model = await client.llm.load("llama-3.2-1b-instruct", {
  ttl: 300, // 300 seconds
});