画像対応モデルのLLaVAをMacで動かす

画像認識対応モデルのLLaVAで、おうちでも設計画像からコードが生成できるようになりました。
LLaVAを使っておうちのパソコンでも画像からコード生成 - きしだのHatena

llama.cppが対応したことでMacでも動かしやすくなりました。
https://github.com/ggerganov/llama.cpp/tree/master/examples/llava

llama.cppは生成AIをc/cppで動かそうというプロジェクトですね。
https://github.com/ggerganov/llama.cpp

Macで動かす手順も簡単。
cloneして、

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

makeするだけ

make

動かすには、モデルを自分でコンバートするかコンバート済みのものをダウンロードする必要があります。
https://huggingface.co/mys/ggml_llava-v1.5-7b
https://huggingface.co/mys/ggml_llava-v1.5-13b

filesにあるファイルをダウンロードしてどこかに置いておきます。必要なのはggmo-model-....ggufのうちひとつとmmprojj-....ggufです。

今回は13Bのggml-model-q4-k.ggufとmmproj-model-f16.ggufをmodels/llava1.5-13Bというフォルダにダウンロードしました。

あとはllavaという実行ファイルができてるので呼び出すだけ。-m--mmprojにダウンロードしたモデルファイルを、--imageに画像を、-pにプロンプトを指定します。

./llava -m models/llava1.5-13B/ggml-model-q4_k.gguf
  --mmproj models/llava1.5-13B/mmproj-model-f16.gguf
  --image images/network.png
  -p 'write docker compose file'

そうするとこんな感じで動きます。なんかPyTorch版よりも思い込みが強い感じですね。