文档

入门

使用 LLM 进行预测

Agentic 流程

文本嵌入

分词

模型信息

管理内存中的模型

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)