一次偏极限的尝试:在 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,并用当前版本的帮助信息确认启动和服务命令:
|
|
为了避免频繁读写 SD 卡,模型目录应放在外接 SSD。迁移后先确认挂载点、可用空间和读写权限,再下载模型。8GB 设备应优先选择能够给系统和 KV Cache 留出空间的小模型量化版;上下文从 2K 或 4K 开始,不要直接照搬模型宣传的最大值。
模型加载后,原方案在本机端口启动兼容接口,并从本机请求模型列表。由于服务默认只监听本机,当时使用 socat 将局域网端口桥接到内部端口,MacBook 能够取得模型列表。
这只能证明网络和接口连通,不能证明生成性能。对外监听也会扩大风险:只在可信局域网内测试;需要远程访问时使用 SSH 隧道或带身份验证的反向代理,不要直接暴露到公网。
编辑器只要支持自定义 OpenAI 兼容 base_url,原则上就能接入。原记录曾在 Zed 完成基础聊天连通性测试,但没有保存请求耗时和响应内容,因此这里只把它作为“接口可访问”的证据。
怎样做一次可复核的性能测试
先记录系统、内存和磁盘状态:
|
|
再记录准确模型标识。若使用 GGUF 文件,至少保存文件名、字节数和哈希:
|
|
测试前重启模型服务,固定相同的提示词、上下文、线程数和最大输出 token 数。LM Studio CLI 参数会随版本变化,应先查看对应子命令的 --help,不要照抄旧版参数。测试时另开终端每秒记录内存:
|
|
至少连续运行三次:第一次观察冷启动,后两次观察热加载。把原始结果填入表格,而不是只写“能跑”或“较慢”。
| 项目 | 第 1 次 | 第 2 次 | 第 3 次 |
|---|---|---|---|
| 模型与量化 | 待测 | 待测 | 待测 |
| 上下文长度 | 待测 | 待测 | 待测 |
| 首字延迟 | 待测 | 待测 | 待测 |
| 生成速度(token/s) | 待测 | 待测 | 待测 |
| 峰值内存 | 待测 | 待测 | 待测 |
| 是否发生 swap | 待测 | 待测 | 待测 |
如果服务端显示模型已加载,但客户端失败,应分层检查:先在树莓派本机请求模型列表,再检查监听地址和端口,最后检查局域网防火墙。若内存不断下降并开始使用 swap,则应减小上下文、换更低量化或停止服务,避免把磁盘交换误判成模型可用。
适用场景
更适合:
- 离线学习和边缘设备实验
- 低并发、低实时性要求的辅助任务
- 固定短提示词的本地自动化
不适合:
- 高频交互聊天
- 长上下文代码库分析
- 对首字延迟和生成速度敏感的开发协作
结论
在 Raspberry Pi 5 上启动 Gemma 4 E2B 并提供局域网接口具备可行性,但现有记录不足以给出可信的性能数字。
如果目标是离线实验和低频调用,这条路线值得复测;如果目标是流畅实时交互,应先按固定口径测出首字延迟、生成速度和内存峰值,再决定是否升级硬件。本文不会用缺失的跑分数据包装成“实测结论”。