在Android手機跑Ollama服務,執行LLaMA、Gemini、Qwen這類開源的大型語言模型。
最後討論架設圖形聊天界面前端的方法。
Ollama這款開源軟體呢,簡化了跑大型語言模型的複雜度,將Lllama.cpp變成單一執行檔,使其能夠執行多款語言模型,並透過REST API提供給外部程式串接的能力。
Ollama的大型語言模型執行的時候完全是跑在本機運算的,資料不會回傳給第三方。
不過Ollama主要是設計給Linux、Windows、macOS電腦跑的,Android手機得透過Termux執行。目前Ollama只支援CUDA和ROCm加速技術,Termux環境難以使用手機GPU或NPU加速,所以這裡都是用CPU硬算的,語言模型生成回應的速度非常慢,可能只夠跑7B以下資料量的模型。
或者,改將Ollama部署到自己的電腦,再用手機遠端存取WebUI,這是比較實際的作法。手機與網頁互動,將運算交給遠端伺服器,使用體驗較佳。
1. 系統需求#
- 10GB以上儲存空間,大型語言最小的3B起碼都4GB起跳
- 8GB以上RAM,大型語言模型執行非常吃RAM,這只是最低需求。
- 高通SD 865以上等級的處理器
2. 安裝Ollama#
雖然Ollama有ARM64的版本,但那是給樹莓派用的,Termux環境需要安裝特製版。且Termux沒有Systemd,故我們需要手動啟動服務。
安裝Termux
Ollama現在可以從Tur Repo安裝,不需要手動編譯了
pkg install tur-repo
pkg install ollama
或者參考官方文件,手動編譯最新版Ollama:
pkg install git cmake golang clang
git clone https://github.com/ollama/ollama.git
cd ollama
go generate ./...
go build .
cp ollama $PREFIX/bin
cd
rm -r ollama
3. 終端機使用Ollama#
詳細使用方法參考Ollama教學
模型是從Ollama Library下載的,我以Mistral-7B為例子:
指示Ollama下載Mistral 7B,模型會儲存到~/.ollama/models
ollama serve &
ollama pull mistral:7b-instruct
試著在終端機跑跑看,能不能進入對話:
ollama run mistral:7b-instruct
4. 使用圖形界面APP連線到Ollama#
Open WebUI不能直接用Termux跑,需要使用Proot-distro。
有很多Android APP相容Ollama API,例如JHubi1/ollama-app或者Mobile-Artificial-Intelligence/Maid,這些APP能當作Ollama前端使用。下面以Maid為例。
- 在Termux啟動Ollama服務
ollama serve &
下載Maid APK
點選Settings,輸入
http://127.0.0.1:114314
,連線到Ollama服務選取要使用的模型,就可以聊天了。