前言

之前在 本地部署大模型哪个性能好?在 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 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-8265Ui7-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 一碰传功能。