ドキュメント

モデルの管理

メモリ内のモデルを管理

モデルをメモリにロード、アクセス、アンロードするための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)の設定

ロードしたモデルに*有効期間*を指定できます。これは、最後の要求からモデルがアンロードされるまでのアイドル時間(秒)です。これについての詳細は、アイドル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
});

このページのソースはGitHubで利用可能です。