快轉到主要內容

Android手機用Termux Ollama跑任意大型語言模型

分類   開源AI應用 大型語言模型
標籤   Ollama Large Language Model Android Termux
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

在Android手機跑Ollama服務,執行LLaMA、Gemini、Mistral這類開源的大型語言模型。

最後討論架設圖形聊天界面的方法。

Ollama這款開源軟體呢簡化了跑大型語言模型的複雜度,將Lllama.cpp變成單一執行檔,使其能夠執行多款語言模型,並透過REST API提供給外部程式串接的能力。

Ollama的大型語言模型執行的時候完全是跑在本機運算的,資料不會回傳給第三方。

不過Ollama主要是設計給Linux、Windows、macOS電腦跑的,想當然爾,目前Termux環境難以使用手機的GPU,再加上Ollama只支援CUDA和ROCm加速技術,所以這裡都是用CPU硬算的,語言模型生成回應的速度非常慢

未來llama.cpp加入Vulkan支援後,或許Termux就靠VirGL用Vulkan加速。

如果你想使用專為行動平台GPU優化的大型語言模型軟體的話,請使用MLC LLM或MediaPipe。

或者,你可以 將Ollama部署到你自己的電腦,再用手機遠端存取,這是比較實際的作法。

1. 系統需求
#

  • 10GB以上儲存空間(大型語言最小的7B起碼都4GB起跳)
  • 8GB以上RAM(大型語言模型執行非常吃RAM,這只是最低需求)
  • SD 865以上處理器

2. 安裝Ollama
#

雖然Ollama有ARM64的建置,但那是給樹莓派用的,Termux環境下需要手動編譯。且Termux沒有Systemd,故我們需要手動啟動服務。

  1. 安裝 Termux

  2. 安裝依賴套件

pkg install git cmake golang clang
  1. 參考 官方文件,編譯Ollama
git clone https://github.com/ollama/ollama.git

cd ollama

go generate ./...

go build .
  1. 將Ollama安裝到$PREFIX/bin
cp ollama $PREFIX/bin

cd

rm -r ollama

3. 使用Ollama
#

詳細使用方法參考 Ollama教學

我以Mistral-7B為例子:

指示Ollama下載Mistral 7B,模型會儲存到~/.ollama/models

ollama serve &
ollama pull mistral:7b-instruct

試著在終端機跑跑看,能不能進入對話:

ollama run mistral:7b-instruct

我另外使用Ollama的Modelfile的功能,把聯發科的Breeze-7B-Instruct中文模型轉到手機上跑。

4. 使用Maid APP做圖形界面
#

有很多Android APP相容Ollama API,我們就用Maid (Mobile Artificial Intelligence Distribution) 當作前端吧。

Open WebUI目前跑不起來。

  1. 在Termux啟動Ollama服務
ollama serve &
  1. 下載 Maid APK

  2. 點選Settings,輸入http://127.0.0.1:114314,連線到Ollama服務

  3. 選取要使用的模型,就可以聊天了。

相關文章

Ollama安裝教學,快捷部署AI大型語言模型到你的Linux電腦,離線執行
分類   開源AI應用 大型語言模型
標籤   Ollama Large Language Model Retrieval Augmented Generation
Android手機Termux跑Alpaca.cpp (LLaMA) 大型語言模型
分類   開源AI應用 大型語言模型
標籤   LLaMA AI Large Language Model Termux
SillyTavern 設定語言模型服務,與AI聊天前最重要的設定步驟
分類   開源AI應用 大型語言模型
標籤   Large Language Model LLaMA AI ChatGPT

留言板

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

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。