Android手機Termux跑Alpaca.cpp (LLaMA) 大型語言模型

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。

1. 裝置

  • 裝置:小米Pocophone F1
  • Android版本:13
  • 處理器:高通s845
  • RAM: 6GB

2. 編譯執行alpaca.cpp

從以下方法三擇一。

2.1. 直接在Termux跑

  1. 安裝以下套件
1
pkg install clang wget git cmake
  1. 設定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. 編譯,下載模型
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
  1. 執行主程式
1
./chat

2.2. Chroot

  1. 安裝Chroot Ubuntu並登入

  2. 新增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. 安裝依賴套件,編譯,下載模型。
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
  1. 執行
1
./chat

2.3. Proot

  1. 安裝Proot Debian並登入
1
proot-distro login debian --shared-tmp
  1. 安裝依賴套件,編譯,下載模型。
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
  1. 執行
1
./chat

3. 開始對話

  1. 執行後便是對話框,可以開始對答了。

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

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

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


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。

這是Giscus留言板,需要登入Github帳號才能留言。方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。