树莓派 5 跑 Gemma 4:部署边界与复测方法

整理 Gemma 4 在树莓派 5 上的部署边界,并给出模型、内存、首字延迟和生成速度都可复核的测试方法。

一次偏极限的尝试:在 Raspberry Pi 5(8GB RAM) 上运行 Gemma 4,目标是最小体量的 E2B,而不是更大的版本。

原始记录能够证明模型服务曾成功启动并被局域网客户端访问,但没有保存量化文件名、token/s、首字延迟和内存峰值,因此不能把它当作完整性能实测。更准确的结论是:这套方案具备可行性,实际速度必须按固定口径重新测量。

原始部署环境

  • 设备:Raspberry Pi 5(4 核 CPU,8GB RAM)
  • 系统:Ubuntu Server(无图形界面)
  • 访问方式:SSH
  • 模型运行方式:LM Studio CLI
  • 模型:Gemma 4 E2B;原记录未保存量化格式和文件哈希

缺少量化版本会让“约 4.5GB”失去比较意义。同一模型的 BF16、Q8、Q4 文件大小、内存占用和速度差别很大,复测必须记录完整文件名与 SHA256。

部署流程与边界

先安装 LM Studio CLI,并用当前版本的帮助信息确认启动和服务命令:

1
2
lms --help
lms server --help

为了避免频繁读写 SD 卡,模型目录应放在外接 SSD。迁移后先确认挂载点、可用空间和读写权限,再下载模型。8GB 设备应优先选择能够给系统和 KV Cache 留出空间的小模型量化版;上下文从 2K 或 4K 开始,不要直接照搬模型宣传的最大值。

模型加载后,原方案在本机端口启动兼容接口,并从本机请求模型列表。由于服务默认只监听本机,当时使用 socat 将局域网端口桥接到内部端口,MacBook 能够取得模型列表。

这只能证明网络和接口连通,不能证明生成性能。对外监听也会扩大风险:只在可信局域网内测试;需要远程访问时使用 SSH 隧道或带身份验证的反向代理,不要直接暴露到公网。

编辑器只要支持自定义 OpenAI 兼容 base_url,原则上就能接入。原记录曾在 Zed 完成基础聊天连通性测试,但没有保存请求耗时和响应内容,因此这里只把它作为“接口可访问”的证据。

怎样做一次可复核的性能测试

先记录系统、内存和磁盘状态:

1
2
3
4
uname -a
cat /etc/os-release
free -h
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS

再记录准确模型标识。若使用 GGUF 文件,至少保存文件名、字节数和哈希:

1
2
ls -lh /path/to/model.gguf
sha256sum /path/to/model.gguf

测试前重启模型服务,固定相同的提示词、上下文、线程数和最大输出 token 数。LM Studio CLI 参数会随版本变化,应先查看对应子命令的 --help,不要照抄旧版参数。测试时另开终端每秒记录内存:

1
while true; do date -Iseconds; free -m | sed -n '1,2p'; sleep 1; done | tee memory.log

至少连续运行三次:第一次观察冷启动,后两次观察热加载。把原始结果填入表格,而不是只写“能跑”或“较慢”。

项目 第 1 次 第 2 次 第 3 次
模型与量化 待测 待测 待测
上下文长度 待测 待测 待测
首字延迟 待测 待测 待测
生成速度(token/s) 待测 待测 待测
峰值内存 待测 待测 待测
是否发生 swap 待测 待测 待测

如果服务端显示模型已加载,但客户端失败,应分层检查:先在树莓派本机请求模型列表,再检查监听地址和端口,最后检查局域网防火墙。若内存不断下降并开始使用 swap,则应减小上下文、换更低量化或停止服务,避免把磁盘交换误判成模型可用。

适用场景

更适合:

  • 离线学习和边缘设备实验
  • 低并发、低实时性要求的辅助任务
  • 固定短提示词的本地自动化

不适合:

  • 高频交互聊天
  • 长上下文代码库分析
  • 对首字延迟和生成速度敏感的开发协作

结论

在 Raspberry Pi 5 上启动 Gemma 4 E2B 并提供局域网接口具备可行性,但现有记录不足以给出可信的性能数字。

如果目标是离线实验和低频调用,这条路线值得复测;如果目标是流畅实时交互,应先按固定口径测出首字延迟、生成速度和内存峰值,再决定是否升级硬件。本文不会用缺失的跑分数据包装成“实测结论”。