快轉到主要內容

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

開源AI人工智慧應用 大型語言模型 LLaMA AI Large Language Model Termux
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

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

2.2. Chroot
#

  1. 安裝 Chroot Ubuntu並登入

  2. 新增SWAP file,給手機增加8GB的RAM

dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile
  1. 安裝依賴套件,編譯,下載模型。
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. 執行
./chat

2.3. Proot
#

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

3. 開始對話
#

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

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

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

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

相關文章

Dalai本機安裝教學,與LLaMA大型語言模型離線聊天
開源AI人工智慧應用 大型語言模型 LLaMA AI
如何在Android手機Termux跑Stable Diffusion,用於AI繪圖
開源AI人工智慧應用 Stable Diffusion教學 Stable Diffusion Android Termux Python
AI繪圖:Windows安裝Stable Diffusion WebUI教學
開源AI人工智慧應用 Stable Diffusion教學 Stable Diffusion AI Windows

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。