0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Android】ローカルLLM入門 Part1: llama.cppサンプルを動かす

Posted at

はじめに

DroidKaigi2025、お疲れ様でした!

今回の登壇は前回に比べ、AIを利用したものが多かったと感じましたが、その中でもローカルで動かせる大規模言語モデル(LLM)がとても印象的でした。

そこでローカルLLM入門と称し、最終的に自身で構築したアプリケーションへ組み込むところまでをパート別で検証し、理解を深めていきたいと思います。
まずはPart1として有名な llama.cpp を使って、Androidサンプルを実機で動かすところまでやったので手順をまとめます。

環境

項目 バージョン
macOS Sonoma 14.x
Android Studio Narwhal 3 Feature Drop (2025.1.3)
実機 Pixel 6a
NDK / CMake SDK Managerから導入

1. llama.cpp を取得する

まずリポジトリを clone します。

$ git clone https://github.com/ggml-org/llama.cpp.git
$ cd llama.cpp
$ git submodule update --init --recursive

2. Android サンプルを開く

クローンしたプロジェクトの中で、examples/llama.android がAndroidStudioプロジェクトになっています。

  1. Android Studio を起動
  2. 「Open Project」で llama.cpp/examples/llama.android を指定
  3. Gradle Syncが通れば準備OKです。

3. 実機でビルド&実行

USBデバッグを有効にしたAndroid端末を接続して、AndroidStudioから実行します。
これでサンプルアプリ(Llama.app)が起動します。

執筆時点で実行すると以下のような画面が表示されます。

なお、スクショ時点では手動でPhi-2 7Bをダウンロードしています。
初回起動時は何もモデルを持っていない状態です。

4. モデルについて

今回のサンプルはアプリに組み込み済みの小さいモデルを利用しました。
外部からモデルを読み込む機能は未実装のため、まずは標準の設定で動くことを確認しました。

※より実用的に使うにはGGUF形式のモデルを自分で用意し、アプリのコードを修正して読み込めるようにする必要があります。
これについては今後で触れる予定です。

5. 実際に動かしてみて

試しに Phi-2 7B で動かしてみると、「こんばんは」という問いに対して、なぜか「いいです」と返ってきました。笑
これは日本語を考慮したモデルではないため、日本語入力に対しては正しく反応できないケースが多いということですね。

まとめ

  • llama.cppにはAndroid向けサンプルが用意されている
  • 数ステップで実機上でLLMを動かせる
  • まずは「動いた!」を体験するのが大事

次回は 外部モデルの読み込み他プロジェクトへ組み込むための準備 などについて検証を進めていきたいと思います。

さいごに

今回のDroidKaigi2025ではAIと絡めた登壇が数多くあり、大きな刺激と学びを得ることができました。
この学びをしっかり自分のものにするために、これからも検証を重ねて理解を深めていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?