作者将家庭助手从云端AI迁移到本地AI,旨在降低成本并提升隐私。该助手提供日常简报、购物清单等功能。通过升级VPS并采用MoE模型优化,作者实现了在本地硬件上运行大型模型。虽然牺牲了即时响应,但获得了隐私、自主和无限免费token,并计划未来进一步优化。
译自:My family assistant now runs on local AI
作者:Rashi
大约两年前,我开发了一个小型“家庭”机器人。其主要目的是协调我们家庭生活的各个方面,包括:
- 每日简报:以家庭日程总结开始新的一天。
- 智能购物:管理和组织集体购物清单。
- 快速提醒:处理快速易设的提醒。
- 天气预报:提供天气更新,包括根据我们的太阳能电池板系统定制的太阳辐射预报。
该助手以 Telegram 机器人的形式运行,确保无需自定义界面或专用应用程序即可从任何地方轻松访问。
助手背后的智能
过去两年里,我尝试了各种云端AI模型(ChatGPT, Claude, Gemini)。总体结果令人满意,部分原因是任务复杂性相对较低。提示词和工具定义总计约 2,300 个 token。我在模型之间切换的主要原因是寻求更优惠的价格。
助手越有用,我们使用它的频率就越高——显然,使用率越高导致成本越高。有些月份,API 费用超过了 €12。这主要是因为机器人是自主的;它不只是等待用户输入——它会主动行动。虽然这种主动性是一个关键特性,但它意味着更高的 token 消耗。
我不会说 €12 是“昂贵”的,但当你已经在为其他各种AI订阅付费时,这是我想要消除的一项开支。更重要的是,我发现自己犹豫着是否要扩展其功能,因为我一直在考虑不断增加的API账单。
虽然最近出现了更便宜的模型(DeepSeek, Qwen, GLM)——而且像 OpenRouter 这样的平台提供了有竞争力的价格——但我宁愿不将个人家庭数据发送到未知服务器。我的目标始终是最终将 本地AI 用作助手的“大脑”。
本地AI时代已来临
该机器人的代码运行在 Hetzner 的个人 VPS 上,我的其他项目也托管在此。这是一个标准配置:4 个 vCPU 和 8GB 内存。
我用各种小型开源模型进行了多次测试,以找到响应质量和足够速度之间的“最佳平衡点”,从而保持流畅的用户体验。最终,我决定额外支付几欧元,将 VPS 略微升级到 8 个 vCPU 和 16GB 内存。
这使我能够使用更大的模型。虽然在没有 GPU 的系统上(速度已经是瓶颈)想要更大的模型可能看起来违反直觉,但这正是 MoE(专家混合) 模型的神奇之处。它们需要更多内存,但提供了显著更高的推理速度。
GPT-OSS-20B 模型被证明是完美的解决方案。通过 Q4 量化,它大约占用 12GB 内存,为操作系统和其他应用程序留下 4GB——这绰绰有余。
优化以实现更快推理
当在有限的硬件上运行自己的模型时,每一次优化都至关重要。很快就发现,助手构建动态提示和消息历史的方式并未针对 KV 缓存进行优化。当使用极速的云端模型时,这类低效问题是看不见的。
经过多次迭代和代码优化,我达到了一个“足够好”的解决方案。提示词和工具仍然保持约 2,300 个 token,但现在处理效率大大提高。平均而言,生成速度达到 22 tokens/秒,考虑到硬件和项目需求,这是非常可接受的。
权衡
我失去了云端模型的“即时”响应,但作为交换,我获得了隐私、自主权和无限免费 token。现在,我终于可以专注于扩展助手的功能,而无需担心每月的账单了。
未来
我不认为这标志着我的助手与本地AI计划的“终点”。我现在正在将每一次对话保存到文件中,记录所有互动。
我的计划是等待 2-3 个月,稍作清理,然后将其用作训练数据来微调一个更小的模型。也许我将能够在再次缩减 VPS 的同时获得更快的速度 🙂