オープンソース モデル LLaVA 1.5 との対話
概要
LLaVA-1.5 は、2023 年 10 月 5 日にオープンソースのマルチモーダル言語モデルとしてリリースされました。これは、AI 開発者にとって素晴らしいニュースでした。AI 開発者は、さまざまな種類の情報を処理できるマルチモーダルを実験して革新できるようになったからです。つまり、完全にオープンソースのモデルを使用しています。
この記事では、コード デモを使用して LLaVA1.5 モデルについて説明します。さまざまな実験例が結果とともに示されています。この記事では、AI 開発者がアプリケーションの開発に使用できる最新の LLaVA モデルについても説明します。
LLaVAによるマルチモダリティ
マルチモダリティの概要
Grand View Research によると、世界のマルチモーダル AI 市場規模は 2023 年に 13 億 4,000 万米ドルと推定され、2024 年から 2030 年にかけて年間平均成長率 (CAGR) 35.8% で成長すると予測されています。
マルチモーダル LLM (マルチモーダル大規模言語モデル) は、テキストだけでなくさまざまなデータ モダリティからの情報を理解して処理するように設計された AI モデルです。これは、テキスト、画像、オーディオ、ビデオなどのさまざまなデータ型を処理できることを意味します。
従来の言語 AI モデルは、多くの場合、テキスト データの処理に焦点を当てていました。マルチモダリティはこの制限から解放され、モデルが画像やビデオを分析し、音声を処理できるようにします。
マルチモデルの使用例
- 画像をもとに物語を書く
- 音声コマンド (オーディオ) と視覚的フィードバック (カメラ) を同時に使用してロボット制御を強化
- 取引データ (テキスト) とセキュリティ映像 (ビデオ) を分析することで、リアルタイムの不正行為を検出します。
- 顧客レビュー (テキスト、画像、ビデオ) を分析してより深い洞察を得て、製品開発に情報を提供します。
- 気象データ(テキスト)と衛星画像(画像)を組み合わせた高度な天気予報。
LLaVAの紹介
LLaVA の完全な形式は大型言語および視覚アシスタントです。 LLaVA は、GPT によって収集されたマルチモーダル命令追従データを使用して LLaMA/Vicuna を微調整することによって開発されたオープンソース モデルです。トランスフォーマー アーキテクチャは、この自己回帰言語モデルの基盤として機能します。 LLaVA-1.5 は、すべての公開データを利用して、元の LLaVA に簡単な変更を加えるだけで、11 のベンチマークでほぼ SoTA のパフォーマンスを達成します。
LLaVA モデルは、ビデオの質問応答、画像のキャプション付け、複雑な画像に基づいたクリエイティブなテキスト形式の生成などのタスク向けに設計されています。さまざまなモダリティにわたる情報を処理および統合するには、大量の計算リソースが必要です。 H100 GPU は、これらの要求の厳しい計算に対応できます。
LLaVA だけでも、印象的なマルチモーダル チャット能力を実証し、時には目に見えない画像や命令に対してマルチモーダル GPT-4 の動作を示し、合成マルチモーダル命令追従データセットで 90.92% の精度スコアをもたらします。ただし、LLaVA を GPT-4 と組み合わせると、他のモデルと比較して最高のパフォーマンスが得られます。
他にもLLaVAモデルはあります。試せるオープンソース モデルをいくつかリストしました。
1.LLaVA-HR: 強力なパフォーマンスと優れた効率を備えた高解像度 MLLM です。 LLaVA-HR は、複数のベンチマークで LLaVA-1.5 を大幅に上回ります。 2.LLaVA-NeXT: このモデルは推論、OCR、および世界の知識を向上させました。 LLaVA-NeXT はいくつかのベンチマークで Gemini Pro を上回っています 3.MoE-LLaVA (大規模視覚言語モデルの専門家の混合): これは、大規模な LLaVA モデル (大規模言語および視覚アシスタント) を効率的にトレーニングするという、マルチモーダル AI の世界における重要な課題に取り組む新しいアプローチです。 4.Video-LLaVA: ビデオ LLaVA は、Cava などの大規模言語モデル (LLM) の基盤に基づいて構築され、その機能をビデオの領域まで拡張します。また、Video-LLaVA は、Video-ChatGPT を 5.8%、9.9%、18.6 上回るパフォーマンスを示します。 MSRVTT、MSVD、TGIF、ActivityNet ではそれぞれ %、10.1% でした。 5.LLaVA-RLHF: 汎用の視覚および言語理解のための、RLHF でトレーニングされたオープンソースの大規模マルチモーダル モデルです。マルチモーダル GPT-4 の精神を模倣する、印象的な視覚的推論と知覚能力を実現しました。このモデルは、合成マルチモーダル命令において GPT-4 と比較して 96.6% (対 LLaVA の 85.1%) の相対スコアをもたらしたと主張されています。
LLaVAモデルで試した出力例
さまざまなプロンプトで LLaVA 1.5 をテストしたところ、次の結果が得られました。
テスト #1: 洞察力に富んだ説明
プロンプト: この画像について洞察に富んだ説明をしてください。
私たちは、世界のチャットボット市場を表す画像を与えて、LLaVA 1.5 の機能をテストしました。このモデルは、上の図に示すように、チャットボット市場の内訳について完全な洞察に富んだ情報を提供します。
LLaVA-1.5 の画像理解能力をさらにテストします。
テスト #2: 画像の理解
プロンプト: この画像には何冊の本が写っていますか?また、この画像で観察したことも教えてください。
モデルさんは冊数についても正解しており、細部までこだわりながら正確に描写されていました。
テスト #3: ゼロ ショット オブジェクトの検出
プロンプト: 画像の座標を x_min、y_min、x_max、および y_max 形式で返します。
モデルは、ロゴが中央にあると仮定して座標を返し、上の画像に示すように答えを与えました。答えは満足のいくものでした。
デモ
このデモでは LLaVA-1.5 (70 億パラメータ) を実装しました。
依存関係のインストール
!pip install python-dotenv
!pip install python-dotenv transformers torch
!pip install transformers
from dotenv import load_dotenv
from transformers import pipeline
load_dotenv() # take environment variables from .env.
import os
import pathlib
import textwrap
from PIL import Image
import torch
import requests
これには、オペレーティング システムと対話するための os
、ファイル システム パスの pathlib
、テキストの折り返しと塗りつぶしのための textwrap
、PIL.Image
が含まれます。 はさまざまな画像ファイル形式を開いたり、操作したり、保存したりするためのもので、torch
は深層学習用、requests
は HTTP リクエストを作成するためのものです。
環境変数をロードする
model_id = "llava-hf/llava-1.5-7b-hf"
pipe = pipeline("image-to-text",
model=model_id,
model_kwargs={})
load_dotenv() 関数呼び出しは、スクリプトと同じディレクトリにある .env ファイルから環境変数をロードします。 API キー (api_key) などの機密情報には、os.getenv(“hf_v ”) を使用してアクセスします。ここでは、セキュリティ上の理由から、完全な HuggingFace API キーは示していません。
API キーを個別に保存するにはどうすればよいですか?
- プロジェクト ディレクトリに .env という名前の隠しファイルを作成します。
- 次の行を .env に追加します: API_KEY=YOUR_API_KEY_HERE (実際のキーに置き換えます)。
- 書き込みload_dotenv(); api_key=os.getenv(“API_KEY ”)
パイプラインの設定: トランスフォーマー ライブラリのパイプライン関数は、「image-to-text」タスクのパイプラインを作成するために使用されます。このパイプラインは、画像を処理し、テキストの説明を生成するためのすぐに使用できるツールです。
画像の URL とプロンプト
image_url = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTdtdz2p9Rh46LN_X6m5H9M5qmToNowo-BJ-w&usqp=CAU"
image = Image.open(requests.get(image_url, stream=True).raw)
image
prompt_instructions = """
Act as an expert writer who can analyze an imagery and explain it in a descriptive way, using as much detail as possible from the image.The content should be 300 words minimum. Respond to the following prompt:
""" + input_text
image=Image.open(requests.get(image_url, stream=True).raw)
は、URL から画像を取得し、PIL を使用して開きます。プロンプトとどのような種類の説明が必要かを書き、文字数制限を設定します。
出力
prompt = "USER: <image>\n" + prompt_instructions + "\nASSISTANT:"
print(outputs[0]["generated_text"])
割り当て 上で述べたように、他にも LLaVA モデルが利用可能です。
最後に
この記事では、LLaVA-1.5 の可能性を探り、画像を分析して洞察力に富んだテキスト説明を生成する機能を紹介しました。私たちはこのデモンストレーションに使用されたコードを詳しく調べ、これらのモデルの内部動作を垣間見ることができました。また、LLaVA-HR や LLaVA-NeXT などのさまざまな高度な LLaVA モデルが利用可能であることも強調し、探索と実験を奨励しました。
基礎ビジョンモデルの継続的な進歩とさらに強力な LLM の開発により、マルチモダリティの未来は明るいです。