用最便宜的x86处理器、没有任何独立显卡,在仅有的8GB共享内存空间里驱动一颗集成GPU来运行大语言模型——这个听起来十分疯狂的念头,是我这周亲手验证的一次实验。结局不是卡到只能看幻灯片,而是确确实实获得了可用的对话体验。

这更像一次自我较劲:云上的大模型越来越聪明,但它们的推理成本全藏在电费和数据中心里。本地模型听起来很美,可动辄需要数十GB显存、几百个张量核心的传闻,把大多数普通设备挡在了门外。我把这一切前提降到最低——英特尔N100,市面上能找到的最廉价的x86处理器之一,自带一颗不起眼的第12代集成显卡,再加上8GB系统内存。然后,我意外地发现,它对付一些轻量级的文本任务竟然完全够用。

打开网易新闻 查看精彩图片

如果你也一直觉得本地AI只是万元显卡玩家的特权,那么这篇记录大概能让你重新衡量一下口袋里的那台廉价小主机。

本地部署大语言模型(LLM)对硬件的胃口之大早已不是什么秘密。更强大的模型需要充足的专业张量核心和海量VRAM,哪怕是不那么极端的7B参数量模型,在常规的消费级显卡上也只能靠着量化压缩才勉强喘过气。但还有一种在极弱硬件上苟活的技巧:混合专家模型(MoE)的卸载技术。通过让模型每次只激活一小部分参数,MoE可以把内存占用压到老古董机器也能忍受的水平。这个事实本身已经足够诱人——但它依旧带着一个硬性要求:你得有一张独立显卡。

多数MoE卸载方案在设计时就假定了离散GPU的存在,它们依赖显卡自有的高速显存和计算单元来完成那一部分被激活的矩阵运算。即便是我在过去的尝试中,把整套推理管道搬到一台带着亮机卡的老旧工作站上,也依然需要那张亮机卡来扛起计算。那么,如果把“独立显卡”这个变量彻底踢出方程,只靠一颗价格廉价到近乎白送的处理器内那颗集成显卡,会发生什么?

这个疑问一旦冒出来就再也挥之不去。我需要一个代价足够小,小到即使实验彻底失败也不会心疼的平台。市场给出的答案很直接:英特尔N100。这颗Alder Lake-N架构的低功耗芯片几乎就是“廉价”二字的代名词,经常栖身于软路由、迷你主机和工控板子上。它内置的英特尔超核心显卡(iGPU)基于Xe-LP架构,拥有24个执行单元,和那些大家耳熟能详的Arc独显自然没有可比性,但它的存在让那个“无独显跑LLM”的命题终于有了落脚点。

我手里的平台是一块LattePanda Mu计算模块,一个集成了N100处理器和8GB LPDDR5内存的紧凑板子。8GB内存既要充当系统运行时,又要作为集成显卡的共享显存,这种双重租金从一开始就限定了实验的边界。我很清楚,在这种内存容量下,想加载一个完整尺寸的模型是奢望,但那些针对边缘设备优化过的4比特、5比特量化版本,完全有可能塞进剩余的空间里。

接下来是软件层面的抉择。对于大部分刚开始接触本地大模型的新手,Ollama几乎是第一个被推荐的工具。它把模型下载、环境管理和API服务全都打包成一条简单的命令行,确实极大降低了门槛。但在这个项目里,我几乎是第一时间就把它踢出了候选名单。

Ollama为了易用性牺牲了太多东西。在资源本就岌岌可危的弱硬件上,它那一层额外的抽象和持续运行的服务进程带来的性能开销是致命的。原生的CPU推理尚可接受,一旦你想把部分算子调度到iGPU上执行,Ollama那种黑盒式的资源管理往往难以施加细粒度控制。我需要的是能对每一个运行参数发号施令的工具,尤其是那些决定哪些层跑在集成显卡上、批量大小设多少、上下文长度如何截断的细节。这些恰好是llama.cpp最擅长的领域。

因此,我没有费心去给Ollama套上各种补丁,而是直奔llama.cpp。这款纯粹用C++编写的推理引擎对性能的追求极其吝啬,它甚至能在没有GPU的年代直接调用CPU的AVX2指令集进行推理。而它最近几个版本里对Intel GPU通过SYCL后端的支持,正是我打算撬动N100核显的支点。

在正式把llama.cpp祭出来之前,我得先决定整个实验的运行环境。像任何一个折腾家庭实验室