文档

管理模型

管理内存中的模型

用于从内存中加载、访问和卸载模型的 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),即上次请求后直到模型卸载的空闲时间(以秒为单位)。有关此内容的更多信息,请参阅空闲 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 上找到