33
31

LLaVA

Last updated at Posted at 2023-10-10

はじめに

今回はLLaVA(Large Language and Vision Assistant)の紹介になります.LLaVAは画像のエンコーダーとLLMのLlama2を合わた新しいend-to-endの学習済みモデルで,GPT4-Vのオープンソースのようなモデルです.ScienceQAというデータセットでSOTAも達成しています.日本語にも対応しているみたいなので日本語で検証を行っています.
記事に誤り等ありましたらご指摘いただけますと幸いです。

目次

1. LLaVA

ライセンス:Apache-2.0
リポジトリ:https://github.com/haotian-liu/LLaVA
公式サイト:https://llava-vl.github.io/
論文: 
https://arxiv.org/abs/2310.03744
https://arxiv.org/abs/2304.08485

LLaVAはLarge Language and Vision Assistantの略で,画像を詳細なテキスト情報に変換することができます.ScienceQAというマルチモーダルのデータセットにおいてはstate-of-the-artを達成しています.また新しい点として,画像とテキストのインストラクションチューニングデータを使い学習を行っています.日本語でも使用することができます.

LLaVAのv1.5のモデルは以下のものが現在利用できます.

OSSの謎のマスコットは"a cute lava llama with glasses"というプロンプトで生成したそうです.
スクリーンショット 2023-10-11 5.10.21.png

2. 使い方

すぐに試したい方はData Science WikiのページまたはColabのリンクから実行してみてください

Data Science Wiki

Open In Colab

今回の検証では4bit量子化を行ったので,それぞれGPUの消費は以下でした.
llava-v1.5-7b:7.3 / 40.0 GB
llava-v1.5-13b:10.8 / 40.0 GB

今回はllava-v1.5-13bで検証を行っていきます.

必要なものをインストールします.

!git clone https://github.com/haotian-liu/LLaVA.git
cd LLaVA
!pip install -e .
from PIL import Image
import requests

はじめに以下の画像で試してみます.

url = "https://img.peapix.com/e27fcf12e0664a5cb1c6b58c6b311d31.jpg?attachment&modal"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
image.save("/content/tokyo.jpg", "JPEG")
image

image.png

以下のコマンドを実行するとLLaVAのダウンロードが始まります.その後にユーザーが入力できるコンソールウィンドウが表示されます.

!python -m llava.serve.cli \
    --model-path liuhaotian/llava-v1.5-13b \
    --image-file "/content/tokyo.jpg" \
    --load-4bit

出力結果
スクリーンショット 2023-10-11 4.18.40.png
大体,正しい出力を得ることができていますが東京タワーについては回答できていません.この辺りはインストラクションデータに含まれていないと難しいのかもしれません.

次に以下の画像で試します.

url = "https://i.gzn.jp/img/2013/12/08/cat-island-aoshima/P1640392.jpg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
image.save("/content/cat.jpg", "JPEG")
image

image.png

!python -m llava.serve.cli \
    --model-path liuhaotian/llava-v1.5-13b \
    --image-file "/content/cat.jpg" \
    --load-4bit

出力結果
スクリーンショット 2023-10-11 4.32.49.png
正確には猫の数は当たっていませんが,ある程度は猫のことを認識している印象です.また,最後の質問は答えられるとは思いませんでしたが,そこまで正確ではないもののまともな回答ができています.このレベルのモデルがOSSとして使えるのは非常にありがたいですね.

4. おわりに

今回はLLaVAの紹介でした.前に紹介したBLIP,BLIP2に比べ画像に対する説明能力が飛躍的に上昇している印象です.このレベルで画像を文章に変換できるのであれば何かしら社会実装で役に立ちそうですね.

最後までお読みいただきありがとうございます.記事に誤り等ありましたらご指摘いただけますと幸いです。

5. 参考文献

33
31
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
33
31