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