树莓派 Zero“硬核改造”:8 年老设备实现本地运行大语言模型
树莓派 Zero“硬核改造”:8 年老设备实现本地运行大语言模型
近年来,本地运行大语言模型(LLM)的趋势愈发明显,越来越多的人开始在个人电脑或系统上部署这些模型。近日,越南开发者Binh Pham在树莓派Zero上成功运行大语言模型的创新实验引发了广泛关注。
越南开发者Binh Pham最近尝试使用树莓派Zero(Raspberry Pi Zero)进行了一项创新实验。他成功地将这款设备改造为一个小型USB驱动器,使其能够在本地运行LLM,无需任何额外设备。这一项目主要得益于llama.cpp和llamafile的支持,这两者结合了指令集和一系列轻量级软件包,旨在提供一种离线的轻量级聊天机器人体验。
然而,由于树莓派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处理速度表明,该设备在许多实际应用场景中可能会显得过慢。尽管这一项目具有创新性,但在实际应用中,使用老旧的轻量级硬件运行本地LLM并不具备太多实用价值。相比之下,使用更复杂的模型,例如在树莓派5上运行Deepseek,可能会是更好的选择。