开篇聊聊动机
嘿,朋友,我最近在折腾点儿新玩意儿 — — 把 Gemma 4 这个小模型塞进我的树莓派 5。说干就干,过程像是点燃一根小火柴,又带点儿不确定性。
在我这儿,树莓派 5 已经是我的小型服务器,装了 Ubuntu Server,只有几条命令行工具,没装图形界面,SSH 成了我的唯一通道。于是我决定挑战一下:能不能在这样简陋的机器上跑起 Gemma 4 的最小版本 E2B?
准备工作:给树莓派装点儿软件
第一步,我得把 LM Studio 的 CLI 版装上。官方给了个自动脚本,点几下就搞定。装好后它会建议立刻启动 daemon,我就照着做。
- 打开终端,运行官方脚本完成安装。
- 启动 daemon,检查可用命令。
- 把模型存放目录换到外接 SSD,这样即使卡掉也不会把宝贵的模型塞进 SD 卡里。
下载最小的 Gemma 4 模型
接下来是下载 4.5GB 大小的 E2B 模型。下载期间,我给大家科普一下 Huul 官方说的三个亮点:
- 整个 Gemma 4 家族都是为 Agent 工作流设计的,原生支持 Function Calling。
- 模型能识别图像、视频,甚至小型模型还支持原生语音处理,能直接听懂人声。
- 上下文窗口长到 128k Token,几乎支持所有语言。
好消息是,Gemma 4 采用 Apache 2.0 开源许可,你可以自由玩、自由商用。
模型加载和启动 API
下载完成后,模型大约有 40 亿参数,已经装在了 SSD 上。随后我加载模型,看到它顺利跑进 RAM,随后启动 API 服务器监听 4000 端口。
为确保能从本地网络访问,我把服务器重新启动并把 host 参数换成 0.0.0.0,理论上应该可以从任何机器发请求。
可惜官方没给 host 参数,只能通过端口转发来实现。于是我使用 SoChat 这一小工具,把内部 4000 端口映射到外部 4001,形成桥梁,外部机器的请求就能被转发进去。
从外部机器访问模型
把映射设置好后,我关掉树莓派的 SSH 会话,回到我的 MacBook。用 curl 发送一次 GET 请求到树莓派的 4001 端口,列出可用模型。
返回的 JSON 里果然能看到我刚刚下载的 Gemma 4,说明一切工作正常。
now 我把服务器再次重启,这次加上 host=0.0.0.0,确保所有网络接口都能接受请求。
在编辑器里和模型聊天
因为 LM Studio 的服务器兼容 OpenAI API,任何支持自定义 endpoint 的工具都能用。我选用了 Zed 编辑器。
在 Zed 的设置里,我添加了一个新的 LLM 配置:
- 服务器地址指向树莓派的 IP。
- 端口填 4000。
- 模型名称写成 Gemma 4。
保存后,我在聊天窗口里选上这个模型,发送一个简短的提示:“写一段关于春天的诗”。
模型开始“思考”,随后输出了诗句,过程像是慢慢在脑子里翻书。
实测性能: CPU 炸裂 & 回答速度
为了看看模型到底占多少资源,我打开 htop 监控。
在生成回答的瞬间,四个 CPU 内核全部满载,内存占用也快到了极限。
第一次测试是让它写一个排序函数。它先“思考”,再生成代码。整个过程大约 6 分钟,感觉像是等咖啡慢慢滴滤。
第二次测试是让它想出三个 Web App 的创意。思考阶段稍快,生成文本约 5 分钟,内容详细,每个创意都配上了简短描述。
总的来说,虽然速度不算快,但对非实时任务或者自动化脚本来说已经足够用了。
如果不想要“思考”阶段,关闭 reasoning 模式可以把时间缩短不少,但相应的输出质量也会下降一点。
感想与展望
通过这次实验,我发现即使是最小的 Gemma 4 也能在树莓派 5 上跑起来,而且还能通过本地网络供其他设备调用。
这种“把 AI 模型放在边角料硬件上”的玩法,其实打开了很多可能性:比如在家庭服务器、离线摄像头、智能家居网关上跑小模型,省掉对大云服务器的依赖。
未来,我打算继续玩跑满参数更大的模型,或者把模型部署到其他低功耗设备上,看看能否在更小的空间里实现更强的能力。
如果你对这篇实验感兴趣,别忘了点个赞、关注,我会继续分享更多实战技巧。
评论 (0)