🐨

llama.cppを使ってiPhone上でLLM動かしてみた

2024/05/01に公開

iPhone上でLLMを動かすには?

ここ最近モバイル開発に関わり出したので、iPhone上でLLMを動かす方法を調べてみました。
方法としてはMLX、CoreML、llama.cppがあるそうです。

llama.cppはサンプルプロジェクトもあるそうなので、今回はllama.cppを使って試してみます。

llama.cppを使ってみることに

1. プロジェクトをローカルにクローン

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make


2. Xcodeでビルド

プロジェクト内の「examples」→「llama.swiftui」内にサンプルコードがあります。
llama.swiftuiフォルダ内にある「llama.swiftui.xcodeproj」をXcode上で立ち上げます。

https://github.com/ggerganov/llama.cpp/tree/master/examples/llama.swiftui


ビルド先の端末は「iPhone15」にします。
Teamを設定して、ビルドを実行。


立ち上がりました。


3. モデルをローカルにダウンロード

「View Models」を選択


今回は「Phi-2.7B」をダウンロードすることにします


クリックするとスクショのようにダウンロードが始まります。


ダウンロードが成功しました。
これで動かすことができます。

検証

英語で質問

「What is the capital of United States?」
日本語でアメリカの首都は何?と聞いてみます。


ワシントンD.Cと返ってきました。
ただ、なぜか問題形式での出力。

日本語で質問

日本語はまだまだのようです。

最後に

llama.cppを使ったら簡単にiPhone上でLLMを動かすことができました。
今後はOpenELMも使えるようになるのかな?

ヘッドウォータース

Discussion