AndroidタブレットでローカルLLMのllama.cppをTermux上でビルドして軽量高性能モデルPhi-2をサーバモードで起動して遊んでみた。メモリさえあればそこそこちゃんと動いて驚いた。LLM禁止職場へどうぞ

LinuxならTermuxでもllama.cpp動くという事でビルドして動かしてみました。メモリが気になる所ですが、2.2Bクラスなら3.6GB消費メモリだったのでAndroidでもなんとかいけそう。 AndroidのGPU対応してくれたら爆速化しそうな予感で未来を感じます。 LLM禁止職場でどうぞ
14
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

AndroidタブレットにTermux入れて its-pointless repo追加してからgccとcmake入れてllama.cppをgit cloneしてmake。無事サーバー版llama.cppを起動してから小型モデルのphi-2を動かした。 メモリ3.6GB程度。Androidでも完璧 pic.twitter.com/bI6Adi0sH1

2024-01-02 10:22:38
拡大
拡大
拡大
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

まずTermuxを入れたら termux-setup-storage で内部ディスクをマウント 次にgccを入れるために its-pointless repoを追加する curl -LO its-pointless.github.io/setup-pointles… bash setup-pointless-repo.sh pic.twitter.com/AZxE3bBzEv

2024-01-02 10:30:42
拡大
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

次にaptでパッケージを追加 apt update apt install gcc-11 git cmake clang git clone github.com/ggerganov/llam… cd llama.cpp cmake . make pic.twitter.com/GH5Va0XlZu

2024-01-02 10:35:32
拡大
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

llama.cppのmakeが完了したらAndroidのブラウザでLLMモデルをダウンロード メモリの関係で3B以下の小さいものを推奨。端末次第。 今回はここからPhi-2をダウンロードした huggingface.co/kroonen/phi-2-…

2024-01-02 10:37:37
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

ダウンロードしたらTermuxに戻ってサーバ版llama.cppを起動。-mオプションでダウンロードしたモデル指定 ./bin/server -m ../storage/downloads/phi-2.q4_0.gguf 起動したらAndroidのブラウザで http://127.0.0.1:8080 を開くといつものllama.cppの画面 後は質問するだけ。メモリ注意 pic.twitter.com/hHlFg7sVxz

2024-01-02 10:43:41
拡大
拡大
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

モデルは小さいのをq4で量子化したのを選ぶと良い。1.1Bなら3GBメモリ、2.2Bや3Bまでなら4GBメモリ程度?7B動かそうと思ったら12GBメモリ欲しい。 aarch64で。 ここから好きなモデルをダウンロードしても良い huggingface.co/TheBloke

2024-01-02 10:51:36
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

英語なら2.2BだけどPhi-2は結構賢い。 PythonやJavaのソースコードも書いてくれる メモリとCPUを大幅に節約できるので低コストでいい 侮ってはいけないレベルで素晴らしい pic.twitter.com/9xgwxHWJry

2024-01-02 10:55:14
拡大
Kapper@Linuxガジェヲタ&異世界小説家&電子工作大好き @kapper1224

プロセッサマニア大好きなllama.cppのARMハードウェアチェックでは n_thread 4 total_thread 8 NEON = 1 ARM_FMA = 1 2.2Bでも遅いけど割とコア数多い。 GPU対応すれば結構ARM速くなりそうな予感 pic.twitter.com/bHjeWjhEm5

2024-01-02 11:04:17
拡大
耕士 @ysdkz

x.com/kapper1224/sta… を参考に1万円くらいで買った中国製のタブレットでllama.cppを動かしてみました。ちょっと手間取ったところを以下に書きます。

2024-01-19 22:59:12
耕士 @ysdkz

its-pointless repoをインストールするために bash setup-pointless-repo.sh を実行したらレポジトリのサーバーが見つからないので、termux-change-repoで変更しろと言う感じのエラーがたくさん出ました。

2024-01-19 23:04:32
耕士 @ysdkz

llama.cppのmakeのために必要なプログラムのインストールのため apt install gcc-11 git cmake clang を実行したらgcc-11はないってエラーが出ました。調べたらどうもgccはclangをインストールすればよいようだったのでgcc-11は省いてインストール。

2024-01-19 23:09:01
耕士 @ysdkz

調べたらtermux-change-repoを実行してサーバーを選べばよいようでしたので、実行したらサーバー選択画面が表示され、なるべく広くなるように選択しました。その後 bash setup-pointless-repo.sh を実行したら無事完了。

2024-01-19 23:06:30
耕士 @ysdkz

その後llama.cppのディレクトリに移って cmake . make でllama.cppをmakeできました。

2024-01-19 23:13:52
耕士 @ysdkz

こんな感じです。 なぜか、いちいちLlamaが顔を出しますが。 pic.twitter.com/SDMxBcX0AS

2024-01-19 23:21:03
拡大
耕士 @ysdkz

huggingface.co/TheBloke/phi-2… から phi-2.Q3_K_M.gguf をダウンロードして使ってみました。とりあえず動くけど、すごく遅い。メモリの状況を見たらスワップしてるみたいだったので一度タブレットを再起動して再度やってみたらそこそこ使える速度で動いてくれました。

2024-01-19 23:17:42
耕士 @ysdkz

動作中のCPUの負荷はこの程度。4コアなのでほぼフルに動いてます。(screenを使って複数の端末を動かしています。) pic.twitter.com/6uxZmZG8ai

2024-01-19 23:50:29
拡大
耕士 @ysdkz

Tiny Vicunaを試してみました。軽くていいですね。日本語は無理っぽいですが。tiny-vicuna-1b.q8_0.ggufです。これくらいならタブレットで楽に使えそう。 twitter.com/ysdkz/status/1… pic.twitter.com/iF5su2WowW

2024-01-20 09:03:54
拡大