English version
LLaMA是什麼?它是Meta釋出的大型語言模型,Alpaca則是史丹佛大學微調後的版本。這二個模型因為資源耗用較小,且有人製作了純CPU運算的版本,不用依賴顯示卡,因此除了在個人電腦跑,也可以跑在Android手機上。

本文採用的是antimatter15/alpaca.cpp,fork自ggerganov/llama.cpp。
請先安裝Termux,並解除signal 9問題。
Alpaca最少需要4GB RAM。手機RAM大於等於8GB可以直接編譯,或者用Proot跑,不過Proot會比較慢。
8GB RAM以下的手機跑Alpaca.cpp,Termux高機率閃退,因為Android常常有背景程序吃掉RAM,沒有8GB RAM是不夠跑的。
RAM小於8GB,並且有root權限的話,可以考慮用chroot掛SAWP file強行增大RAM跑Alpaca.cpp。
- 裝置:小米Pocophone F1
- Android版本:13
- 處理器:高通s845
- RAM: 6GB
從以下方法三擇一。
- 安裝以下套件
1
| pkg install clang wget git cmake
|
- 設定Android NDK
1
2
3
| wget https://github.com/lzhiyong/termux-ndk/releases/download/ndk-r23/android-ndk-r23c-aarch64.zip
unzip android-ndk-r23c-aarch64.zip
export NDK=~/android-ndk-r23c-aarch64
|
- 編譯,下載模型
1
2
3
4
5
6
7
| git clone https://github.com/rupeshs/alpaca.cpp.git
cd alpaca.cpp
mkdir build-android
cd build-android
cmake -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23 -DCMAKE_C_FLAGS=-march=armv8.4a+dotprod ..
make -j8
wget https://huggingface.co/Sosaka/Alpaca-native-4bit-ggml/resolve/main/ggml-alpaca-7b-q4.bin
|
- 執行主程式
安裝Chroot Ubuntu並登入
新增SWAP file,給手機增加8GB的RAM
1
2
3
4
| dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile
|
- 安裝依賴套件,編譯,下載模型。
1
2
3
4
5
| apt install build-essential wget
git clone https://github.com/antimatter15/alpaca.cpp
cd alpaca.cpp
make chat
wget https://huggingface.co/Sosaka/Alpaca-native-4bit-ggml/resolve/main/ggml-alpaca-7b-q4.bin
|
- 執行
- 安裝Proot Debian並登入
1
| proot-distro login debian --shared-tmp
|
- 安裝依賴套件,編譯,下載模型。
1
2
3
4
5
| apt install build-essential wget
git clone https://github.com/antimatter15/alpaca.cpp
cd alpaca.cpp
make chat
wget https://huggingface.co/Sosaka/Alpaca-native-4bit-ggml/resolve/main/ggml-alpaca-7b-q4.bin
|
- 執行
執行後便是對話框,可以開始對答了。

Alpaca的用法請參考這篇文章。譬如,我問「你可以用Termux做什麼?」對話的時候CPU會將近100%,要注意散熱。

Alpaca的回答跟Termux官網介紹的差不多呢。

用手機CPU算實在太慢了,電腦CPU大約10秒就會開始回答問題,而手機要等30秒才會開始回答,並且速度很慢。