背景
ここ1週間、マルチモーダルのモデルが非常に増えました。
多くの有名IT企業が、自社のLLMを基にトレーニングされたLMMを公開しました。
今日はマルチモーダルモデルの中身(LMM)について説明したいと思います。
1.マルチモーダルとは
マルチモーダルとは、テキスト、画像、音声など異なる種類の情報を統合して処理するのことを指します。
最初のマルチモーダルモデルは、2年前OpenAIが公開された「CLIP」というモデルになります。
しかし、今までCLIPを利用しているケースはそれほど多くありません。理由は非常にシンプルで、異なる種類の情報を同時に処理するより、それぞれ分けて処理した方が性能が高いからです。
今年になってからLLMの強さがみんな感じましたので、LMMのトレーニングも活発に行われるようになりました。
2.マルチモーダルモデルの中身について
ほとんどのLMMはCLIPをベースとしてトレーニングしましたので、CLIPの中身について詳しく説明したいと思います。
一言でまとめると、CLIPは「テキストと画像をそれぞれの数字構成listに変換して(embedding)、それらを同じ場所(ベクトル空間)内でペアのものを近づくようにする」ということです。
例えば、リンゴの画像と「リンゴ」という単語があります。
リンゴの画像は画像用のモデルを用いて、ベクトルA:[3,4,6,7,8,4] に変換します。(CLIPはVision Transformer)
「リンゴ」という単語はテキスト用のモデルを用いて、ベクトルB:[2,4,5,6,7] に変換します。(CLIPはBERT)
その後は、ベクトルAとベクトルBを同じベクトル空間において、リンゴの画像は事前に「リンゴ」であるとアノテーションされていますので、ベクトルAとベクトルBはペアであることは分かります。
最後は、最適化アルゴリズム(adamとか)を使って、ベクトルAとベクトルBができるだけ近づくようにトレーニングします。(ここで損失関数が使われます)
トレーニングの流れは下図の通りとなります。
CLIPが公開されてからBLIPやBLIP2などもありました。
チューニング方法はそこまで違いがなくて、データを増やしたり、レイヤーを追加したりでチューニングされています。
(最近のLMMモデルも基本的にはCLIPのやり方で、テキストのモデルをBERTから自分のLLMに変換する+アノテーションで作ってもらった高品質な画像データを入れることでトレーニングしてます)
3.最近のLMMモデル
この1週間で結構多くのLMMが公開されました。
注目されているモデルは:
Microsoftの「LLaVa」:Vision Transformer + Llama2
Googleの「PaLi-3」:Vision Transformer + Bard
「BaKLLaVa-1」: Vision Transformer + Mistral
「fuyu-8b」: Transformerの開発者がトレーニングしたモデル
これらのモデルに関して比較するような記事はこれから公開されると思います。GPTくらいの性能があればLMMのfinetuningも流行る可能性が高いと思います。
ハードルはさらに高くなりますが、画像であってもベクトルベースであり、LLMとそこまで変わりはないと考えます。
ちなみに「fuyu-8b」に関しては、最近すごい話題になってますので、試してみたいと思います。
fuyu-8b:
CLIP論文: