5.7K Views
March 22, 24
スライド概要
DL輪読会資料
MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training Shohei Taniguchi, Matsuo Lab
書誌情報 MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training • 3/19にarXivに投稿 • マルチモーダルLLMの学習において,どの要素が性能により影響を与えるのか について検証したAppleの論文 • 検証結果をもとにしたベストな構成で学習したモデルは,同サイズの他のモデ ルと比較して,高い性能を実現 2
背景 マルチモーダルLLM, MLLM • 近年のLLMは,テキストだけでなく,画像もコンテキストとして与えられるも のが増えている(例:GPT-4V, Gemini) 3
背景 マルチモーダルLLM • MLLMの構成はとてもシンプル • 画像を埋め込んでテキストと同じように トークン化してLLMに入力するだけ • ただし,細かい構成方法にはバリエーション があり,どの要素がより重要なのかはあまり 自明ではない 4
背景 Closed Model vs Open Model • 最近は,GPTやGeminiのように,APIのみを提供して,モデルを公開しない closed modelが増えている • Open modelも,モデルやデータ,学習設定などは公開しているが,その選定 に至るプロセスはほとんど公開されておらず,大規模なモデルの開発において 何が重要なのかが知見として共有されていない 5
モチベーション • MLLMの学習において,重要な要素を幅広いablationを通して明らかにする • 特に以下の項目を詳細に調査 • 画像エンコーダの学習方法 • 画像と言語の接続方法 • 事前学習時のデータの選定方法 6
実験設定 • Ablationでは比較的小さいモデルで 各要素を検証する • Image Encoder: VITベースのCLIP • VL Connector: C-Abstractor • LLM: 2Tトークンで事前学習した1.2Bのdecoder-only Transformer • 最後にベストな構成で30Bまでスケールさせる • 評価はcaptioningとVQAのfew-shot性能 + text-onlyの性能(TextCore)
Image Encoder • MLLMはImage Encoderを何らかの方法で事前学習してから,LLMと結合する • 事前学習の方法として以下の要素を検証 • ロス:対照学習(CLIP)vs 再構成(AIM) • モデルサイズ:ViT-L vs ViT-H • 入力画像サイズ:224~378で変動させる • データ:人工的なキャプションデータ(VeCap)を使うかどうか
補足:VeCap Visual-enriched Caption • AltTextのキャプションデータをLLMに校正させたもの https://arxiv.org/abs/2310.07699
Image Encoder • 画像サイズ > モデルサイズ > 人工データの順で効果がある • 同じモデルサイズだとCLIPの方が 若干良いが,これはデータの量が 違うから何とも言えない (なぜデータを揃えてないのか不明
Vision Language Connector • Image Encoderの特徴量はそのままだと扱いづらいので,LLMに入力しやすい ようにテキストと同じサイズにトークン化する必要がある • 基本的には何らかの方法でpoolingして,サイズを整える • Average pooling • Attention: トークン数分queryを用意してattention • C-Abstractor: ResNet + avg. pooling
Vision Language Connector • Connectorの種類はどれも大差はない • 画像サイズやトークン数を上げる方が重要
事前学習用データ • 全体の事前学習時に使うデータの種類の影響を検証 • 以下を様々な割合で混ぜて事前学習に使う • キャプション付き画像 • Interleaved Image-Text • テキストのみ • 人工キャプション(VeCap)の効果も検証
補足:Interleaved Image-Text • https://huggingface.co/spaces/HuggingFaceM4/obelics_visualization
事前学習用データ • Interleavedはfew-shot性能に重要 • キャプションはzero-shot性能に重要 • Text-onlyもある程度必要 • VeCapはfew-shotを少しだけ改善する • Caption : Interleaved : Text = 5 : 5 :1くらいがちょうど良い
最終モデル • Image Encoder: ViT-Hを解像度378x378でCLIPロスで学習 • VL Connector: C-Abstractorで144トークンに変換 • データ:caption, interleaved, textを45%, 45%, 10%の割合で混ぜる • LLM部分は,3B~30Bまでスケールアップさせる
ハイパーパラメータの決め方 • モデルをスケールさせるとき,学習率などのハイパラの調整が難しい • 各サイズでそれぞれチューニングするのはコスト的に厳しい • まずは,9M~1.2Bのサイズでそれぞれグリッドサーチしてから,その値を線形 回帰させて,大きいモデルにも外挿する
事前学習後の性能 • 同じサイズの既存のモデルよりも 大きく性能を改善 • MM1-30Bは80Bサイズの既存モデル よりもいい性能
Supervised Fine-Tuning • 事前学習したMM1をSFTしたときの性能も検証 • データには,以下を使用 • 複雑な推論タスクをGPT-4VやLLaVAに答えさせて作ったデータ • VQAv2などのvision-languageデータセット • テキストのみのSFTデータセット(社内データ)
Supervised Fine-Tuning 高解像度画像への対応 • 事前学習時には378x378の画像にしか対応していないが,より高解像度画像 に対応できるように,SFTでは448~672の解像度で学習 • ViTのpositional encodingを補完すれば事前学習時の モデルをそのまま使える • より大きい画像を入れる場合は,672x672に縮小した ものと分割したものを両方入力することで対応 • これにより最大1792x1792まで対応
Supervised Fine-Tuning • SFT後も同規模のモデルの中で SOTAな性能を発揮 • 同時期に出たLLaVA-NeXTとは 大体同じくらいの性能
Supervised Fine-Tuning • 画像は基本的に大きいほど良い • 事前学習を短くすると性能は下がる
まとめ • マルチモーダルLLMの学習における構成要素を細かくablation • 検証結果を反映してスケールさせたMM1は,同サイズのモデルでSOTA性能を 実現 感想 • MLLMのまとまった検証は少ないので,参考になる部分は多そう • 結果自体はそこまで意外な部分は多くない(気がする)