LLaVAとは?画像対話AIの作り方

画像と指示から回答を学ぶLLaVAのVisual Instruction Tuning全体像

画像と指示から回答を学ぶLLaVAのVisual Instruction Tuning全体像

LLaVA(Large Language and Vision Assistant)は、画像を説明するだけでなく、「何が不自然?」「右側の物体は何をしている?」といった指示へ答えるためのVLM(Vision-Language Model)です。

ポイントは、Vision EncoderとLLMをProjectorで接続したことだけではありません。既存の画像・caption pairを、画像について質問し回答するinstruction dataへ変換し、画像表現の接続指示に従う振る舞いを二段階で学習したことにあります。

Visual Instruction Tuning論文を軸に、次の流れを追います。

  1. text-only GPT-4へcaptionとbounding boxを渡し、画像対話dataを作る
  2. CLIP Vision EncoderとVicunaをProjectorで接続する
  3. Feature Alignmentで画像表現の入口を整える
  4. Visual Instruction Tuningで画像と指示に応じた回答を学ぶ

前回のVLMとは?画像を理解する大規模言語モデルでは、Vision Encoder・Connector・LLMという共通構造を説明しました。今回は、その構造へ「画像について対話する能力」をどう加えるかに焦点を絞ります。

LLaVAは画像caption modelと何が違うのか

画像caption modelの典型的な目的は、画像から説明文を生成することです。入力が同じ画像なら、質問がなくても「犬が芝生を走っている」のようなcaptionを返せます。

画像対話assistantには、もう一段別の能力が必要です。同じ画像でも、ユーザーのinstructionによって求められる出力が変わります。

入力と目的 画像caption Visual Instruction Tuning後のassistant
画像のみ 画像全体の説明を生成する 通常はinstructionと組み合わせて使う
「動物は何匹?」 instructionを想定しない場合がある countingとして短く答える
「危険な点を説明して」 一般captionでは拾わない可能性がある relevantなvisual evidenceを選んで説明する
「初心者向けに一文で」 出力形式を変えにくい 内容だけでなく形式にも従う

画像captionとVisual Instruction Tuning後の画像対話の出力差

つまりVisual Instruction Tuningは、画像表現をLLMへ接続するだけの処理ではありません。画像とinstructionの組み合わせから、どの情報を選び、どの形式でanswerを返すかを学ぶ処理です。

通常の指示チューニングとの違いは、条件へ画像表現が加わることです。一方、Visual Prompt Tuning(画像modelへ少数の学習可能prompt parameterを追加するparameter-efficient adaptation)とは目的が違います。LLaVA論文も、この二つを別概念として区別しています。

text-only GPT-4は画像を見ずにinstruction dataを作った

LLaVAのdata生成で誤解しやすいのは、「GPT-4へ画像を渡して回答dataを作った」と単純化することです。原論文でteacherとして使ったGPT-4はtext-onlyで、画像pixelを直接入力していません。

代わりに、COCO画像に付随する次の二つをtextへ変換しました。

  • Captions: scene、物体、行動を自然言語で説明する
  • Bounding boxes: object名と座標によって、存在と空間的位置を表す

画像を\(X_v\)、captionを\(X_c\)、bounding boxを\(X_b\)とすると、teacherが受け取るのは画像そのものではなく、次のsymbolic contextです。

\[C_{\mathrm{teacher}}=\operatorname{Serialize}(X_c,X_b)\]

captionとbounding boxからtext-only GPT-4で画像instruction dataを生成する流れ

GPT-4は、このcontextと人手で設計した少数のseed examplesを読み、画像についてのinstruction \(X_q\)とanswer \(X_a\)を生成します。

\[(X_q,X_a) \sim p_{\mathrm{GPT\text{-}4}} \left(\cdot\mid C_{\mathrm{teacher}},\text{seed examples}\right)\]

ここで重要なのはdata reformation(既存dataの形式変換)という見方です。新しく全画像を人手で質問・回答へannotateする代わりに、既存のcaptionとboxを、instruction-following形式へ変換しています。

ただし、teacherが参照できる視覚情報はcaptionとboxに含まれる範囲です。小さい文字、captionに書かれていない属性、box化されていない関係は、正確なground truthとして与えられていません。生成dataの流暢さと、画像への忠実さは別々に確認する必要があります。

3種類のinstructionが異なる振る舞いを教える

Original LLaVAは合計158Kのlanguage-image instruction-following samplesを作りました。内訳は一様ではありません。

Data type Samples 主に教える振る舞い 弱くなりやすい点
Conversation 58K 物体、個数、行動、位置について対話する 長い包括的説明や多段推論
Detailed description 23K 画像全体を詳しく説明する 短い問いへの簡潔な回答
Complex reasoning 77K visual factsを組み合わせて理由を説明する symbolic contextにない事実の保証

LLaVA-Instruct 158Kを構成する会話・詳細説明・複雑推論の役割

Conversation dataでは、object type、counting、action、location、relative positionなど、画像から答えが確定できる問いを重視します。Detailed descriptionは一枚の画像を広く説明する形式です。Complex reasoningでは、画像内の事実を前提に、なぜそう判断できるかを段階的に答えます。

この3種類は単なる文章の長短ではありません。どのvisual evidenceを選ぶか、回答をどの粒度にするか、根拠をどう接続するかというbehaviorの違いです。

論文のablationでは、conversation dataだけを使うより、detailed descriptionとcomplex reasoningを加えた方がLLaVA-Benchの総合relative scoreが高くなりました。ただし、この結果は同論文のdata生成法とGPT-4 judgeによる評価条件の下での比較です。あらゆるdomainで同じ比率が最適だとは限りません。

LLaVAはCLIP・Projector・Vicunaをつなぐ

Original LLaVAのmodelは、三つのcomponentで読めます。

Component Original LLaVAでの選択 役割
Vision Encoder CLIP ViT-L/14 画像をgrid状のvisual featuresへ変換する
Projector trainable linear layer \(W\) visual featureをLLMのembedding dimensionへ写す
Language Model Vicuna image-conditioned instructionからanswer tokensを生成する

CLIP Vision Encoder、線形Projector、Vicunaからなるoriginal LLaVA architecture

入力画像を\(X_v\)、凍結したVision Encoderを\(g\)とすると、visual featureは次のように得られます。

\[Z_v=g(X_v), \qquad Z_v\in\mathbb{R}^{N\times D_v}\]

\(N\)はvisual token数、\(D_v\)はVision Encoderのfeature dimensionです。Projector \(W\)でLLMのembedding dimension \(D_l\)へ変換します。

\[H_v=Z_vW, \qquad W\in\mathbb{R}^{D_v\times D_l}, \qquad H_v\in\mathbb{R}^{N\times D_l}\]

\(H_v\)はtext tokenizerが作る離散token IDではなく、LLMへ入力できる連続embeddingです。Projectorがdimensionを一致させても、その初期値だけで画像の意味をLLMが読めるわけではありません。そこで二段階trainingが必要になります。

CLIPが画像とtextを同じ表現空間へ近づける仕組みは、CLIPとは?画像とテキストを同じ空間で扱う技術で解説しています。ViTが画像をpatch列へ変える過程は、ViTとは?画像をパッチとして読むTransformerを参照してください。

Stage 1は画像表現の入口だけを合わせる

Stage 1のFeature Alignmentでは、Vision EncoderとLLMを凍結し、Projector \(W\)だけを更新します。

Component Stage 1
CLIP Vision Encoder Frozen
Linear Projector Trainable
Vicuna LLM Frozen
Data filtered CC3M 595K image-text pairs
目的 visual featuresをfrozen LLMが利用できるembeddingへ整合する

各image-caption pairを単純なsingle-turn instructionへ変換し、画像を簡潔に説明するanswerを予測させます。原論文は、この段階をfrozen LLMに対するcompatible visual tokenizerを学ぶ処理として説明しています。

ただし、「visual tokenizer」という表現をtext tokenizerと同一視してはいけません。画像をvocabulary上の整数IDへ量子化しているのではなく、Projectorを通した連続vectorをLLMのembedding列へ挿入しています。

Stage 1が解くのは、主にmodality interfaceの不一致です。LLM本体を凍結しているため、多様な画像instructionへ応じた会話behaviorまで十分に書き換える段階ではありません。

Stage 2は画像と指示に応じた回答を学ぶ

Stage 2のFine-tuning End-to-Endでは、Vision Encoderを凍結したまま、ProjectorとLLMを更新します。

Component Stage 2
CLIP Vision Encoder Frozen
Linear Projector Trainable
Vicuna LLM Trainable
Data LLaVA-Instruct 158K
目的 画像とinstructionに応じたanswerの内容・形式を学ぶ

「End-to-End」という語から全parameterを更新すると考えやすいですが、original LLaVAではVision Encoderは凍結されています。end-to-endはvisual inputからanswer outputまで一つのobjectiveで学習することを指し、すべてのcomponentがtrainableという意味ではありません。

Stage 1とStage 2の違いは、次のように整理できます。

比較軸 Stage 1: Feature Alignment Stage 2: Visual Instruction Tuning
主問題 visual embeddingをLLMへ接続する 画像と指示に適切なanswerを返す
更新対象 Projectorのみ Projector+LLM
supervision image-caption pair image-instruction-answer
学習するもの modality間の入口 task selection、回答内容、会話形式
失敗例 画像情報をLLMが利用できない 画像は見えてもinstructionを無視する

LLaVAのFeature AlignmentとVisual Instruction Tuningで凍結・更新するparameter比較

この分離により、既存のVision Encoderとinstruction-tuned LLMを再利用しながら、まず接続を安定させ、その後にbehaviorを学べます。一方で、Vision Encoderが拾えない小物体や文字はStage 2だけでは回復できません。

answer tokenだけへlossを掛ける意味

LLaVAはvisual embedding、instruction tokens、answer tokensを一つのautoregressive sequenceとして扱います。概念的には次の並びです。

[visual embeddings] [user instruction] [assistant answer]

answerを\(Y=(y_1,\ldots,y_L)\)、instructionを\(Q\)、画像を\(X_v\)とすると、answerの条件付き確率は次のように分解できます。

\[p(Y\mid Q,X_v) =\prod_{\ell=1}^{L} p\left(y_\ell\mid y_{<\ell},Q,X_v\right)\]

training lossはanswer token位置のnegative log-likelihoodです。

\[\mathcal{L}_{\mathrm{answer}} =-\sum_{\ell=1}^{L} \log p\left(y_\ell\mid y_{<\ell},Q,X_v\right)\]

visual embeddingsとinstructionをcontextにしassistant answerだけへlossを掛けるsequence

一般的な実装では、visual placeholderやuser instructionをcontextとして入力し、それらのlabelをignore indexへ置いてloss対象から外します。assistant answer位置だけをsupervisionにすることで、「質問文を再生成する」ことより、「画像と質問を条件に回答する」ことへgradientを集中させます。

ただし、mask位置、conversation template、image placeholder展開がずれると、modelが本来学ぶべきでないtokenへlossを掛けます。data fileが読み込めることだけでなく、tokenize後のinput IDs、labels、attention maskをsample単位で確認する必要があります。

158K、595K、665Kは同じdatasetではない

LLaVAを調べると、158K、595K、558K、665K、1.2Mと複数の数字が出てきます。これらはmodel revisionとtraining stageが異なります。

数字 対象 用途
595K original LLaVAのfiltered CC3M pairs Stage 1 Feature Alignment
158K original LLaVA-Instruct Stage 2 Visual Instruction Tuning
558K LLaVA 1.5で案内されるalignment subset Stage 1
665K LLaVA 1.5のinstruction tuning mixture Stage 2。GPT生成data+academic VQA data
1.2M LLaVA 1.5 reportのfinal 13B checkpoint report全体で用いたpublic data

Improved Baselines with Visual Instruction TuningのLLaVA 1.5では、336pxのCLIP ViT-L、2-layer MLP connector、academic VQA dataを追加しています。したがって「LLaVAは常にlinear Projectorで158K samplesを使う」と固定仕様のように説明するのは不正確です。

論文の仕組みを学ぶときはoriginal LLaVA、実際のrepositoryからcheckpointを調整するときは対象versionのREADME、model card、scriptを確認します。

85.1%と92.53%をどう読むか

Original paperは印象的な結果を報告していますが、評価構成を外して数字だけを比較できません。

85.1%はGPT-4をjudgeにしたrelative score

LLaVA-Bench (COCO)は、30枚の画像にconversation、detailed description、complex reasoningの3種類、合計90 questionsを用意します。

Candidate modelは画像とquestionからanswerを生成します。Reference側のtext-only GPT-4には画像そのものではなく、ground-truth captionとbounding boxを渡します。さらにjudge役のGPT-4が両answerを比較し、helpfulness、relevance、accuracy、detailを1〜10で採点します。

LLaVA-BenchでGPT-4 judgeが候補回答と参照回答を比較するrelative score構成

Full dataで報告された85.1%は、この評価手順におけるreference answerに対するrelative scoreです。次を意味しません。

  • 全画像質問に85.1%正解した
  • 人間評価でGPT-4の85.1%に達した
  • 現在のVLM benchmarkでも同じ順位になる

また、No Instruction Tuningのablationは総合21.5、full dataは85.1でした。これは同じ評価pipelineの中でvisual instruction dataがinstruction-following behaviorへ寄与した強い証拠ですが、評価judgeもGPT-4である点は残ります。

ScienceQA 92.53%はLLaVAとGPT-4の組み合わせ

論文ではLLaVA単体がScienceQAで90.92%、LLaVAの推論結果をtext-only GPT-4が利用して最終回答を選ぶ組み合わせが92.53%と報告されています。「LLaVA単体が92.53%」ではありません。

結果を読むときは、model単体かsystem構成か、answer生成かjudgeか、relative scoreかaccuracyかを分けます。

自分のdataでVisual Instruction Tuningする前の確認

公式のcustom data文書では、sampleにidimageconversationsを持たせ、会話内へ<image> placeholderを置く形式が示されています。概念的な最小例は次の形です。

[
  {
    "id": "sample-0001",
    "image": "images/sample-0001.png",
    "conversations": [
      {
        "from": "human",
        "value": "<image>\n画像内の警告表示を一文で説明してください。"
      },
      {
        "from": "gpt",
        "value": "画面には接続エラーが表示されています。"
      }
    ]
  }
]

このschemaを満たすだけでは、良いtraining dataとは限りません。少なくとも次を確認します。

  1. Visual grounding: answerが画像で確認できる情報だけに基づくか
  2. Instruction diversity: 質問形式、回答長、taskが偏っていないか
  3. Negative and abstention: 読めない、存在しない場合の回答を含むか
  4. Template consistency: role名、separator、<image>位置が対象checkpointと合うか
  5. Loss mask: assistant answerだけが学習対象になっているか
  6. Component compatibility: base LLM、Vision Encoder、Projector、processorが一致するか
  7. Evaluation slices: OCR、counting、spatial relation、long answerを分けて測るか
  8. Rights: annotation、元画像、teacher API、base model weightの利用条件を別々に確認したか

Visual Instruction Tuning前に確認するdata・loss・component・評価・権利のchecklist

特にProjectorはtensor dimensionが一致するだけでは交換できません。公式repositoryも、pretrained projectorを使うときはbase LLMとVision Encoder、code/configの組み合わせを合わせるよう注意しています。

GPU memoryが限られる場合、公式文書はtask-specific dataが少ないケースでLoRAを案内しています。ただしLoRAを使ってもVision Encoderのforward、visual tokens、activation、image preprocessingのcostは消えません。学習可能parameter数と実際のpeak memoryを分けて見積もります。

Visual Instruction Tuningの限界

Visual Instruction Tuningは、teacherやdatasetに含まれる情報を超えてvisual evidenceを保証しません。

  • Caption omission: 元captionにない事実はteacher contextから欠落する
  • Box limitation: bounding boxはobjectと位置を表せても、細かなtextureや文字を十分に表せない
  • Teacher bias: teacherの回答形式、表現、推論癖がstudent dataへ入る
  • Language prior: visual evidenceが弱いと、LLMがもっともらしい語を補う
  • Evaluation coupling: data生成と評価の両方へ同系統のteacherを使うとbiasを共有する可能性がある
  • Inherited risk: Vision Encoder、LLM、元datasetのbiasと制約を継承する

対策はdata量を増やすことだけではありません。画像へgroundedな正解、存在しない対象を否定するsample、読めない場合に不確実性を示すsampleを入れ、task別のheld-out setで評価します。

ライセンスも一つの表示だけで判断できません。LLaVA repositoryのcodeはApache License 2.0ですが、base model、checkpoint、annotation、COCOなどの元画像、teacher serviceの規約は別です。LLaVA-Instruct-150K dataset cardのCC BY 4.0表示を、構成元画像すべての許諾とみなさないでください。

まとめ

LLaVAの画像対話能力は、単にCLIPとLLMを線形層で接続した結果ではありません。

  • captionとbounding boxをtext-only GPT-4へ渡し、画像対話形式の158K samplesを生成した
  • conversation、detailed description、complex reasoningが異なる回答behaviorを教える
  • Stage 1ではVision EncoderとLLMを凍結し、ProjectorだけでFeature Alignmentする
  • Stage 2ではVision Encoderを凍結し、ProjectorとLLMへanswer tokenのlossを伝える
  • 85.1%と92.53%はjudge・reference・system構成を含む条件付きの結果である
  • 独自dataではschemaだけでなくgrounding、loss mask、component互換性、権利条件を確認する

Visual Instruction Tuningは、「画像を表現できるmodel」を「画像について人の指示に応答するassistant」へ変えるdataとtrainingの設計です。architecture、data、objective、evaluationを一続きで見ると、画像対話AIがどこで能力を得て、どこで誤るのかを切り分けられます。

参考文献

コメント

タイトルとURLをコピーしました