近年來,本地部署大語言模型(LLM)的趨勢逐漸興起,吸引了眾多技術愛好者的關注。他們不再滿足于云端運行模型,而是傾向于在個人電腦或系統上搭建這些強大的語言處理工具。
在這一背景下,越南開發者Binh Pham的一項創新實驗尤為引人注目。他成功地利用樹莓派Zero(Raspberry Pi Zero)這款小型設備,將其改造為能夠本地運行LLM的USB驅動器,無需依賴其他額外硬件。
Pham的這一項目得益于llama.cpp和llamafile的支持,這兩者結合指令集和一系列輕量級軟件包,為用戶提供了一種離線的、輕量級的聊天機器人體驗。然而,將llama.cpp移植到樹莓派Zero并非易事,因為這款設備已經問世八年,硬件性能相對有限。
為了克服硬件上的限制,Pham首先將樹莓派Zero連接到USB接口,并為其定制了一個3D打印外殼。然而,項目進展并非一帆風順。樹莓派Zero W的512MB內存成為了另一大障礙。在嘗試將llama.cpp編譯到該設備時,Pham遭遇了失敗,此前也無人嘗試在樹莓派Zero或One上編譯該軟件。
問題的關鍵在于樹莓派Zero的CPU采用的是ARMv6架構,而llama.cpp的ARMv8指令集并不兼容。為了繞過這一難題,Pham對llama.cpp的源代碼進行了大量修改,將其ARMv8指令集轉換為適配ARMv6的版本,并移除了所有基于現代硬件的優化或注釋。
在成功修改源代碼后,Pham將注意力轉向了軟件的運行和用戶體驗的優化。他設計了一個基于文本文件輸入的LLM實現方案,用戶可以通過輸入文本文件作為提示,LLM則根據這些提示生成故事,并以完整的輸出文件形式返回給用戶。
為了測試這一方案的性能,Pham設置了64個token的限制,并對多個不同大小的模型進行了基準測試。測試結果顯示,Tiny15M模型每個token的處理速度為223毫秒,而較大的Lamini-T5-Flan-77M模型和SmolLM2-136M模型的處理速度則分別為2.5秒和2.2秒。
盡管這一項目在技術上取得了創新性突破,但在實際應用中,使用樹莓派Zero這類老舊且輕量級的硬件運行本地LLM仍存在諸多局限。尤其是在處理速度方面,該設備在許多實際應用場景中可能會顯得力不從心。因此,對于追求更高性能和更廣泛應用場景的用戶來說,選擇更復雜的模型和更強大的硬件平臺可能會是更明智的選擇。