第 1 课

装好 llmster,加载模型并在终端对话

用官方脚本安装 llmster 并处理 ldconfig、下载被拦截两个常见坑,用 lms daemon 启动后台服务,lms get 下载 IBM Granite 4.0 Micro,lms load --estimate-only 先估内存,再带 --context-length、--identifier、--ttl 正式加载,最后用 lms chat -p --stats 对话并看速度。

图文20 分钟LM Studio 官方文档 ↗

课程目录第 1 / 3 课

学习位置仅保存在当前浏览器,有效期 180 天。

01 / 图文教材

图文教材

本课对照的官方页面:Headless 运行、lms CLI、lms get、lms load、lms chat。命令与输出在无显卡的 Linux x86_64 云主机上实测(llmster 0.0.27+1),输出为节选。

这一课在一台没有图形界面的机器上装好 LM Studio 的后台服务 llmster,下载官方示例模型 IBM Granite 4.0 Micro,加载进内存,再在终端里和它说第一句话。全程不需要账号,也不花钱。

第 1 步:用官方脚本安装 llmster

llmster 是 LM Studio 桌面版的推理内核,单独打包成不依赖图形界面的后台服务。官方安装命令:

# Linux / macOS
curl -fsSL https://lmstudio.ai/install.sh | bash

# Windows(PowerShell)
irm https://lmstudio.ai/install.ps1 | iex

对照结果(Linux,节选):

Downloading llmster 0.0.27-1 Linux x86_64
(下载进度条省略)
Verifying checksum...
Installing llmster...
Install completed at /home/box/.lmstudio/llmster/0.0.27-1.
Installation finished successfully! llmster is ready to launch.
To start the daemon, run:
    lms daemon up
To add lms to your PATH, either restart your shell or run:
    export PATH="/home/box/.lmstudio/bin:$PATH"

安装包约 1.2 GB,装在 ~/.lmstudio/ 下。按提示把 lms 加进 PATH:

export PATH="$HOME/.lmstudio/bin:$PATH"
lms --help

lms --help 会列出 Local models(chat、get、load、unload、ls、ps、import)、Serve(server、log)、Runtime 等几组命令,本课会用到其中大部分。

实测遇到的两个坑,按需处理:

  • 脚本报 ldconfig must be available:精简版 Linux 的普通用户 PATH 里可能没有 /sbin。先执行 export PATH="$PATH:/sbin:/usr/sbin" 再重跑脚本。
  • 下载安装包时报 HTTP 500:测试机所在网络会拦截不带 https 的下载请求,而脚本里的安装包地址没有写协议头。解决办法是先 curl -fsSL https://lmstudio.ai/install.sh -o install.sh 把脚本存下来,把里面的下载地址改成以 https:// 开头,再 bash install.sh。脚本自己会做校验(上面的 Verifying checksum...)。本课测试机就是这样装的,另外还手动下载了一份安装包,用官方同目录下的 .sha512 文件核对,结果一致。网络正常的机器不会遇到这个问题。

第 2 步:启动后台服务

llmster 以守护进程(daemon)方式运行,用 lms daemon 管理:

lms daemon up
lms daemon status
lms server status

对照结果:

Starting local model service...
llmster started (PID: 1145672).

llmster v0.0.27+1 is running (PID: 1145672)

Server:  OFF
(i) To start the server, run the following command:
    lms server start

daemon 负责加载模型和推理;HTTP 服务(server)是另一个开关,第 2 课再打开。现在 lms 命令已经能直接和 daemon 对话。需要给脚本读状态时,可以加 --json(下面是另一次启动的输出,所以 PID 不同):

lms daemon up --json
lms daemon status --json

对照结果:

Starting local model service...
{"status":"running","pid":1157334,"isDaemon":true,"version":"0.0.27+1"}
{"status":"running","pid":1157334,"isDaemon":true}

第 3 步:下载示例模型

官方 REST 快速开始用的示例模型是 ibm/granite-4-micro,3B 参数,量化后约 2.1 GB,没有显卡也能跑。--yes 表示不弹出选择、直接下载推荐的量化版本:

lms get ibm/granite-4-micro --yes
lms ls

对照结果(节选):

To download: Granite 4.0 Micro Q4_K_M [GGUF] - 2.10 GB
Resolution completed. Downloading 2.10 GB...
(下载进度条省略)
Download completed.

You have 2 models, taking up 2.18 GB of disk space.
LLM                              PARAMS  ARCH     SIZE     DEVICE
ibm/granite-4-micro (1 variant)  3B      granite  2.10 GB  Local
EMBEDDING                                PARAMS  ARCH        SIZE
text-embedding-nomic-embed-text-v1.5             Nomic BERT  84.11 MB

列表里的嵌入模型 text-embedding-nomic-embed-text-v1.5 是安装后就有的,本课用不到。想换别的模型,lms get 后面可以跟 LM Studio 模型库里的名字或 Hugging Face 仓库地址,不带 --yes 时会让你选量化版本。

第 4 步:先估算内存,再加载

加载前可以先看看要占多少内存,--estimate-only 只估算、不真加载:

lms load ibm/granite-4-micro --estimate-only

对照结果:

Model: ibm/granite-4-micro
Estimated GPU Memory:   1.96 GiB
Estimated Total Memory: 1.96 GiB
Confidence: LOW
Estimate: This model may be loaded based on your resource
guardrails settings.

确认放得下就正式加载。下面三个参数都很常用:

lms load ibm/granite-4-micro \
  --context-length 8192 \
  --identifier granite \
  --ttl 3600 -y
lms ps
参数作用
--context-length 8192上下文长度,越大越占内存
--identifier granite给这次加载起个短名,API 里用它当 model
--ttl 3600空闲 3600 秒后自动卸载;不写则一直留在内存里
-y遇到选择时自动用默认项

对照结果:

Model loaded successfully in 3.89s.
(1.96 GiB)
To use the model in the API/SDK, use the identifier "granite".

IDENTIFIER  MODEL                STATUS  SIZE     CONTEXT  PARALLEL
granite     ibm/granite-4-micro  IDLE    2.10 GB  8192     4
(表格后面还有 LOAD CONFIG、DEVICE、TTL 三列,TTL 显示 60m / 1h)

PARALLEL 4 表示这个实例最多同时处理 4 个请求。

第 5 步:在终端里对话

lms chat 不带 -p 会进入交互式对话;带 -p 则只问一句就退出,适合脚本和快速试用。--stats 会打印速度和 token 数:

lms chat granite \
  -p "用一句中文介绍你自己,不超过 30 个字。" --stats

对照结果:

我是一个AI助手,为用户提供有用且简明的回答。
Prediction Stats:
  Stop Reason: eosFound
  Tokens/Second: 6.75
  Time to First Token: 1.340s
  Prompt Tokens: 54
  Predicted Tokens: 24
  Total Tokens: 78

在没有显卡的测试机上约每秒 7 个 token。有 NVIDIA 显卡或 Apple Silicon 的电脑会快很多。Prompt Tokens 比你输入的字多,是因为模型的对话模板加了系统提示和角色标记,第 3 课会用日志把它们打印出来。

小结

  • llmster 是 LM Studio 不带图形界面的推理内核,curl -fsSL https://lmstudio.ai/install.sh | bash 一条命令装好,装完记得把 ~/.lmstudio/bin 加进 PATH。
  • lms daemon up 启动后台服务,lms daemon status 看状态。daemon 和 HTTP 服务是两个开关。
  • lms get 下载、lms ls 列出磁盘上的模型;lms load --estimate-only 先估内存,再用 --context-length、--identifier、--ttl 正式加载;lms ps 看内存里有哪些模型。
  • lms chat <名字> -p "..." --stats 一句话试模型,顺便看速度。

下一课打开 HTTP 服务,用 OpenAI SDK 和 LM Studio 自己的 REST 接口调用这个模型。