最近我把家里的助手从云端的AI彻底搬到了本地,主要是为了省钱和保护隐私。这个助手平时能提供日常简报、帮着管理购物清单这些功能。我把之前租用的VPS给升级了一下,还搞了个MoE模型优化,总算能在自己的电脑上跑那种大模型了。虽然速度没以前快了,但换来的是完全不用花钱买token,还有数据自己掌控。 差不多两年前我刚开发这个“家庭”机器人的时候,也就是个小型系统。主要是帮着协调我们家里的各种事儿,像每天看一下日程表、帮着记购物清单、设个提醒什么的。天气这块儿也挺方便,连太阳能电池板需要多少阳光都能算出来。我把它做成了个Telegram机器人,这样不管我在哪都能用,也不用再装专门的软件了。 一开始我试过各种云AI模型,比如ChatGPT、Claude还有Gemini。效果还不错,主要是任务也不是特别复杂。每次生成提示词加工具说明大概也就两千来个token。我在这些模型间换来换去,主要是想找个便宜点的。这机器人挺自觉的,它不光等着我输命令,还会自己去做事。这种主动挺好用的,但就是太费token了。 每个月的API费用一度超过12欧元,虽然不能说贵得离谱吧,但加上我本来就有好多AI的订阅费要交,这笔钱我还是不想继续花下去了。更让我纠结的是,每次想给它加点功能的时候,心里总想着那不断上涨的账单。虽说现在也有DeepSeek、Qwen、GLM这种便宜的模型了,OpenRouter那种平台也提供挺有竞争力的价格,但我实在不想把家里的数据传到不知道谁手里的服务器上去。 我的目标就是把本地AI做成这个助手的“大脑”。之前我的机器人代码都在Hetzner那边的VPS上跑着。我给自己配的是标准的配置:4个虚拟CPU和8GB内存。我试了好几种开源小模型,想找个既能快速响应又不太卡顿的平衡点。后来我咬咬牙把这个VPS给升级了一下,换成了8个虚拟CPU和16GB内存。这下总算有条件用更大的模型了。 其实你要在没GPU的机器上跑大模型本来就有点吃力(因为速度本来就是瓶颈),但MoE这种专家混合模型就挺神奇的。它虽然要多占点内存,但推理速度却快了不少。我选了个GPT-OSS-20B模型试了试效果还不错。用Q4量化之后大概占了12GB内存,剩下的4GB给操作系统用就够了。 在自己的硬件上跑模型就得一点一点优化细节。我发现之前那个构建提示词的方法没利用好KV缓存这部分资源(在云端跑得那么快的时候这问题就看不出来)。经过几轮折腾优化之后总算达到了“够用”的水平。 现在提示词还是那2000多token的样子,但运行效率高了很多。平均算下来每秒能生成22个字符左右的速度。考虑到我的硬件条件和需求来说,这已经挺满意的了。 虽然失去了那种云端模型的秒回体验(毕竟算力摆在那),但我也因此获得了隐私、自主性和无限免费token。这下我终于能放开手脚给助手加功能了(因为不用担心账单问题)。 这事儿还没完呢。我现在开始把每一次对话都存下来记录下来以后打算等过个两三个月稍微清理一下再用它来训练个更小的模型用(没准还能把VPS再缩减一点呢)。