前言
之前在 本地部署大模型哪个性能好?在 8845HS (780M核显) 上的 LM Studio 基准测试 里已经对比过不同本地模型在 8845HS 核显下的表现,这次更加极端,直接把 2019 年的老笔记本 Matebook14 初代拿来部署,看看能否把这台七年前的老电脑利用起来。
我这台 Matebook14 是 2019 年大学时买的,当时的飞行堡垒坏了,虽然我有台式机,但平时去上实验课就不太方便了,于是斥巨资购入第一台轻薄本,不得不说,之前用惯了游戏本(甚至有段时间背着3kg+的飞行堡垒去坐地铁通勤),突然换到轻薄本,体验的提升太明显了,太爽了,上课直接手臂夹着就可以了,可以说是无感了😄
可惜买完没多久,新一代的 Matebook14 就推出了,还是加量不加价的版本,内存升到 16g 😭
毕业后,这台电脑在家吃灰了很久,性能也跟不上了,之前想过二手出掉,不过太懒了一直没动,直到最近才想到拿出来重装了 Linux 系统,平时用来部署一些服务,当个 home server 还不错。
这次更进一步,直接部署本地 LLM,后续还可以接入 OpenClaw 或者 Hermes Agent 之类的,看看这个 MX250 显卡能不能来点作用。
先看看这台老机器的配置
先说一下机器配置。
这台 MateBook 14 是 2019 年的初代版本,内存只有 8GB,独立显卡是 NVIDIA MX250,显存更是只有 2GB。(详细配置可以看文末附录)
放在 2019 年,MX250 还能算轻薄本上比较常见的入门独显,跑跑 LOL 轻度游戏,勉勉强强。
但放到现在这个动不动就是 7B、14B,甚至几十上百 B 参数模型的时代,2GB 显存看起来多少有点搞笑。
特别是之前我在 8845HS 那台机器上折腾本地模型的时候,考虑的还是 Qwen、Gemma 这些 4B、9B 左右的模型。
到了 MX250 这里,思路必须彻底换掉。
重点在于研究什么模型能完整塞进这 2GB 显存。
为什么不能照搬现在的 7B / 9B 模型玩法?
现在讨论本地 LLM,7B~9B 基本已经算“小模型”了。
如果有 16GB、32GB 内存,或者稍微像样一点的显卡,跑一个 7B/8B 的 Q4 量化模型其实没什么稀奇的。
但 MX250 只有2G显存。
而且这里还有一个很容易产生的误区:模型文件能塞进显存,不代表模型就一定能运行。
模型运行时除了权重本身,还需要 KV Cache、运行时 Buffer、Context 等额外空间。Context Length 越大,KV Cache 占用通常也会继续增加。
所以在一张只有 2GB 显存的显卡上,本来就已经没有多少腾挪空间。
7B、9B 基本可以直接不用想。
即使通过 CPU + GPU 混合卸载,理论上可以把一部分 Layer 放到显卡、一部分放进系统内存,对于我这台只有 8GB RAM 的机器来说也没什么意义。
最后很可能得到一个非常尴尬的结果,输出速度 1 token/s 😂
既然我的目标是把这台电脑当作一个长期运行的小服务器,那我反而更看重稳定、低资源占用和实际可用性。
还是选择 LM Studio
本地模型运行工具现在已经很多了,比如 Ollama、llama.cpp、vLLM 等等,不过这次我还是继续使用之前比较熟悉的 LM Studio。
一方面它底层本身就是成熟的推理 Runtime,另一方面它并不只是一个 GUI 软件。
LM Studio 自带了一个很好用的 CLI:
lms
所以即使这台 MateBook 后面主要当服务器使用,也完全可以通过终端完成模型下载、加载、卸载和 API Server 管理。
安装 LM Studio 并运行过一次以后,可以直接检查:
lms --help
查看已经下载的模型:
lms ls
查看当前已经加载到内存中的模型:
lms ps
加载模型则是:
lms load <model>
这样其实就已经很接近 Ollama 那种使用体验了。
GUI 可以负责前期找模型、调参数,等配置稳定以后,后面基本直接用 CLI 就行。
模型只能一路往小了选
刚开始的时候,我还是下意识地按照现在本地 LLM 的思路去找模型。
但很快就发现,在 2GB 显存面前,很多平时所谓的“小模型”其实一点都不小。
7B / 9B 不用想,4B 级别也会把显存和系统内存压得非常难受。
而对于这台机器来说,我又不想为了“模型能启动”去强行搞大量 CPU Offload。
如果主要计算还是落在 CPU 上,那 MX250 这张显卡存在的意义就没了。
所以思路逐渐明确:模型最好本身就足够小,尽可能完整地塞进 MX250 的 2GB 显存。
最后目标就落到了 2B 左右。
以前提起 1B、2B 模型,基本默认就是“玩具”;但这几年模型架构、训练数据和后训练能力都进步得非常快。对于一些简单的文本处理、结构化任务、分类、总结,甚至轻量 Agent 场景来说,2B 已经不是什么完全不能用的东西了。
我的目标本来也不是让 MX250 在这里写大型项目。
让它承担一些简单、固定、可预测的本地任务,就已经达到目的了。
最后选择 Qwen3.5 2B
折腾下来,我最后选择的是:Qwen3.5 2B
在 LM Studio 里对应:
qwen/qwen3.5-2b
这里我觉得模型选择的思路,比具体选哪个模型更重要。
在资源非常有限的机器上,应该先确定资源预算,而不是哪个模型 Benchmark 最高
对于 MX250 来说,这个预算就是非常残酷的:2GB VRAM。
在这个前提下,再去找能够完整或者尽可能完整 GPU Offload 的模型。
如果为了追求一个 7B 模型,最后大部分计算都掉到 CPU 上,每次输出几个字都要等半天,那么所谓模型能力更强其实没有多少实际意义。
一个能力稍弱但能够顺畅运行的 2B 模型,对这种老机器更加合理。
用 lms load 控制模型加载参数
模型确定以后,因为资源实在太紧张了,不能直接无脑加载,需要对参数做一些调整。
我最后使用的命令是:
lms load qwen/qwen3.5-2b \
--context-length 4096 \
--identifier qwen-commit
加载结果:
Model loaded successfully in 3.70s.
(1.81 GiB)
To use the model in the API/SDK,
use the identifier "qwen-commit".
这里有两个参数比较重要。
- --context-length 4096
- --identifier qwen-commit
identifier 比较简单,它相当于给当前加载的模型起一个 API 调用名称。
以后从其他程序调用 LM Studio 的时候,就不需要关心后面的具体 GGUF 文件名或者模型版本了,直接用 qwen-commit 就行。
以后就算我把底层模型换掉,只要 identifier 不变,上层应用不需要修改配置。
为什么 Context 只开 4096?
只有 2GB 显存,Context 并不是一个“越大越好”的参数。
更长的 Context 意味着模型可以记住更多内容,但与此同时,KV Cache 等运行时资源占用也会增加。
在显存只有 2G 的情况下,必须在上下文能力、显存占用和推理性能之间做妥协
而且仔细想想,这台机器以后真正适合承担的任务,本身也不会需要特别长的上下文。
比如简单总结、文本分类、信息提取、格式转换、简单工具调用,4K Context 已经足够处理很多事情。
如果真的需要几十 K 的 Context,还是老老实实上云端模型吧,没必要为难 MX250 😂
2GB 显存真的难顶
模型加载成功后看了一下 nvidia-smi。
GPU 显存占用:1928 MiB / 2048 MiB
基本已经顶到天花板了。
LM Studio 显示加载的模型大小大约是:1.81 GiB
MX250 的 2GB 显存几乎已经被榨干,只剩一百多 MiB 的余量。
所以 2GB 显存到底还能不能跑现在的 LLM? 已经验证是可以的。
接下来可以研究一下,这么一点资源,能利用到什么程度?
实际速度怎么样?
当然,能加载成功只是第一步。
真正用起来以后,MX250 和现在的显卡差距还是非常明显的。
把它接到 Hermes 这种 Agent 上以后,Agent 本身还会带 System Prompt、工具描述、上下文等额外内容,一次请求真正送进模型的东西并不只是屏幕上看到的那一句:你好
所以就是单纯聊天还能接受,一进入 Agent 场景,速度和体验马上开始下降。
在研究过程中,我也意识到,像 Hermes 这种完整 Agent Framework,其实未必是这台机器最适合的使用方向。
2B 模型本身的推理能力有限,而 Agent 恰恰是一个非常考验模型指令遵循、Tool Calling、规划和长上下文能力的场景。
如果让它做简单文本任务,Qwen3.5 2B 可以工作。
但如果指望它像 Claude Code、Codex 或者现在的大模型 Agent 一样自主规划、连续调用工具,那就明显是在为难它了。
所以我后来对这台机器的定位也发生了一点变化:一台可以长期在线的轻量本地推理节点。
不一定要在 MateBook 上直接使用
模型跑起来以后还有一个问题。
这台 MateBook 本身是作为 Home Server 使用的,我平时并不会坐在它面前操作。
那模型怎么给其他电脑使用?
LM Studio 本身可以启动一个兼容 OpenAI API 的本地 Server。
例如:
lms server start --bind 0.0.0.0 --port 1234
然后同一个局域网里的其他设备,就可以通过这台 MateBook 的 IP 地址访问:
http://192.168.x.x:1234/v1
这样我的台式机、笔记本,甚至其他服务器,都可以把它当成一个 OpenAI Compatible API 来使用。
例如查看模型:
curl http://192.168.x.x:1234/v1/models
或者直接调用刚才设置好的 qwen-commit:
curl http://192.168.x.x:1234/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-commit",
"messages": [
{
"role": "user",
"content": "你好"
}
]
}'
这时候 MateBook 就开始有一点“AI Server”的感觉了。
前端设备完全不需要安装模型。
虚拟组网与 LM Link
之前我还折腾过 LM Studio 自带的 LM Link:
lms link enable
结果一直出现:
LM Link enabled. Connecting...
LM Link enabled but could not connect.
Use lms link status for details.
后来我突然反应过来,我为什么非得用 LM Link?
我已经搭建了虚拟组网,直接通过内网 IP 调用不就行了?
例如:
http://100.x.x.x:1234/v1
整个架构:
台式机 / 笔记本 / 平板
│
│ 组网
▼
2019 MateBook 14
│
▼
LM Studio
│
▼
Qwen3.5 2B
│
▼
MX250
需要注意的是,LM Studio API 一旦绑定到非 localhost 地址,就意味着其他网络设备也可能访问它。
局域网环境最好确认防火墙规则;如果需要暴露给更多设备
Matebook14的详细配置
核心配置
- 处理器 (CPU):可选 英特尔第八代酷睿 i5-8265U 或 i7-8565U。
- 显卡 (GPU):英特尔 UHD 620 核芯显卡,或搭载 NVIDIA GeForce MX250(2GB GDDR5)独立显卡。
- 内存 (RAM):8GB LPDDR3 2133MHz。
- 存储 (Storage):512GB PCIe NVMe SSD 固态硬盘。
屏幕与显示
- 尺寸与比例:14英寸 3:2 生产力黄金比例全面屏。
- 分辨率:2160 × 1440(PPI 185),支持 100% sRGB 色域,最高亮度 300 尼特,部分版本支持多点触控。
外观与便携
- 尺寸:307.5 mm × 223.8 mm × 15.9 mm。
- 重量:约 1.49 kg。
- 材质:金属机身设计。
接口与特色功能
- 接口:1个 USB-C 接口(支持数据传输和充电)、1个 USB 3.0、1个 USB 2.0、1个 HDMI、3.5mm 耳麦合一接口。
- 特色:电源键集成指纹识别、隐藏式按压摄像头(位于键盘F6/F7之间)、支持华为 Huawei Share 一碰传功能。
程序设计实验室
微信公众号