树莓派 Zero“硬核改造”:8 年老设备实现本地运
近年来,本地运行大语言模型的趋势愈发明显,越来越多的人开始在个人电脑或系统上部署这些模型。
越南开发者 Binh Pham 最近尝试使用树莓派 Zero进行了一项创新实验。他成功地将这款设备改造为一个小型 USB 驱动器,然而,由于树莓派 Zero 已经问世八年,其硬件性能有限,因此将 llama.cpp 移植到该设备并非易事。首先,Pham 将设备连接到 USB 接口,并为其 3D 打印了一个外壳。
在解决了硬件问题后,项目又因树莓派 Zero W 的 512MB 内存限制而变得更加复杂。在尝试将 llama.cpp 编译到该设备时,Pham 遇到了失败,此前也无人尝试在树莓派 Zero 或 One 上编译该软件。
问题的根源在于树莓派 Zero的 CPU 采用的是 ARMv6 架构。为了克服这一障碍,Pham 不得不对 llama.cpp 的 ARMv8 指令集进行转换,并移除所有基于现代硬件的优化或注释。
在成功修改 llama.cpp 源代码后,Pham 将注意力转向软件的运行和用户体验的优化。他构建了一个基于文件输入的 LLM 实现,这些文件作为主要的提示,而 LLM 则会根据这些提示生成故事,并以完整的输出文件形式返回。
为了测试性能,Pham 设置了 64 个 token 的限制,并对 15M 到 136M 不等的多个模型进行了基准测试。其中,Tiny15M 模型的每个 token 处理速度为 223 毫秒,而较大的 Lamini-T5-Flan-77M 模型的每个 token 处理速度为 2.5 秒,SmolLM2-136M 模型的每个 token 处理速度为 2.2 秒。
这些 token 处理速度表明,
