文档
空闲 TTL 和自动驱逐
ℹ️ 需要 LM Studio 0.3.9 (b1) 版本,目前为 beta 版本。请在此处下载here
LM Studio 0.3.9 (b1) 引入了为 API 模型设置生存时间 (TTL) 的功能,并可以选择在加载新模型之前自动驱逐先前加载的模型。
这些功能完善了 LM Studio 的按需模型加载 (JIT),以实现高效的内存管理自动化,并减少手动干预的需求。
JIT 加载
使在其他应用中使用 LM Studio 模型变得容易:您无需手动加载模型即可使用它。然而,这也意味着模型即使在不使用时也可能保持加载在内存中。 [默认:启用]
(新增)空闲 TTL
(技术上:生存时间)定义了模型在没有接收到任何请求的情况下可以在内存中保持加载的时间。当 TTL 过期时,模型将自动从内存中卸载。您可以使用请求负载中的 ttl
字段设置 TTL。 [默认:60 分钟]
(新增)自动驱逐
是一项在加载新模型之前卸载先前 JIT 加载的模型的功能。这使得从客户端应用程序轻松切换模型成为可能,而无需先手动卸载它们。您可以在开发者选项卡 > 服务器设置中启用或禁用此功能。 [默认:启用]
使用场景:想象一下,您正在使用像 Zed、Cline 或 Continue.dev 这样的应用程序与 LM Studio 提供的 LLM 进行交互。这些应用程序利用 JIT 在您首次使用模型时按需加载模型。
问题:当您不积极使用模型时,您可能不希望它仍然加载在内存中。
解决方案:为通过 API 请求加载的模型设置 TTL。空闲计时器在模型每次收到请求时都会重置,因此它在使用时不会消失。如果模型没有执行任何工作,则被视为空闲。当空闲 TTL 过期时,模型将自动从内存中卸载。
默认情况下,JIT 加载的模型的 TTL 为 60 分钟。您可以为任何通过 JIT 加载的模型配置默认 TTL 值,如下所示
设置默认 TTL 值。将用于所有 JIT 加载的模型,除非在请求负载中另有指定
当启用 JIT 加载时,对模型的首次请求会将其加载到内存中。您可以在请求负载中为该模型指定 TTL。
这适用于针对 OpenAI 兼容性 API 和 LM Studio 的 REST API 的请求
curl https://127.0.0.1:1234/api/v0/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-r1-distill-qwen-7b", + "ttl": 300, "messages": [ ... ] }'
lms
加载的模型设置 TTL默认情况下,使用 lms load
加载的模型没有 TTL,并将保持加载在内存中,直到您手动卸载它们。
您可以为使用 lms
加载的模型设置 TTL,如下所示
lms load <model> --ttl 3600
<模型>
您也可以在服务器选项卡中加载模型时设置 TTL,如下所示
在服务器选项卡中加载模型时设置 TTL 值
通过此设置,您可以确保通过 JIT 加载的新模型自动首先卸载先前加载的模型。
当您想从另一个应用程序切换模型,而无需担心未使用模型的内存累积时,这非常有用。
在开发者选项卡 > 服务器设置中启用或禁用 JIT 加载模型的自动驱逐
当自动驱逐为“开启”时(默认)
1
个模型加载在内存中(当通过 JIT 加载时)当自动驱逐为“关闭”时:
此功能与 TTL 协同工作,为您的工作流程提供更好的内存管理。
TTL
:生存时间,是一个从网络协议和缓存系统借用的术语。它定义了资源在被视为陈旧并被驱逐之前可以保持分配多长时间。