4 ポイント 投稿者 GN⁺ 2024-11-18 | 1件のコメント | WhatsAppで共有
  • Voyage AIが公開したvoyage-multimodal-3は、テキストと画像が混在するナレッジベースを単一の埋め込みモデルで検索するためのRAG・セマンティック検索向けモデル
  • PDF、スライド、表、図、文書スクリーンショットのようにレイアウト情報が重要な資料を、文書パースなしでベクトル化できる点が中核的な差別化要素
  • CLIP系モデルの混合モダリティ検索の限界を減らすため、テキストと視覚情報を同じTransformerエンコーダで処理し、モダリティが混在した入力の文脈関係を保持
  • 20件のマルチモーダル検索データセットで、次点のマルチモーダル埋め込みモデルより平均**19.63%**高い検索精度を示し、34件のテキスト検索データセットでもOpenAI v3 largeを上回る
  • スクリーンショット比率が高まるほどCLIPベースのモデルは品質が低下したが、voyage-multimodal-3は全域で性能低下が小さく、画面キャプチャベースの検索パイプラインに実用的

voyage-multimodal-3が狙う用途

  • voyage-multimodal-3はVoyage AI初のマルチモーダル埋め込みモデルで、視覚資料とテキストが多いナレッジベースにおけるRAGとセマンティック検索を目的とする
  • 入力対象はテキストとコンテンツ量の多い画像で、代表例は次の通り
    • テキストのスクリーンショット
    • 図と表
    • PDFのスクリーンショット
    • スライドデッキ
    • その他の文書画像
  • 生成されたベクトルはテキストの意味だけでなく、フォントサイズ、テキスト位置、余白のような視覚的特徴も反映する
  • 複雑なレイアウトや図・写真が混在する文書では、ヒューリスティックベースのパースで精度問題が生じることがあり、モデルは元の画面をそのまま検索用ベクトルに変換するアプローチを採る
  • 機能例はsample notebookで確認できる

CLIP系と異なる埋め込み方式

  • Amazon Titan Multimodal G1、Google Vertex AI multimodal、Cohere multimodal v3のような既存のマルチモーダル埋め込みモデルは、OpenAI CLIPベースの構造を使っている
  • CLIP系の構造は、異なるモダリティを独立したネットワークで処理する
    • 画像はvision towerを通じてベクトル化される
    • テキストはtext towerを通じてベクトル化される
    • この構造では、テキストと画像が混在した入力を一度に処理しにくい
  • voyage-multimodal-3は、2つのモダリティを同じTransformerエンコーダ内で直接ベクトル化する
    • テキストと視覚特徴は別個の構成要素ではなく、統合表現の一部として扱われる
    • 最新のビジョン言語モデルのアーキテクチャを、生成ではなくベクトル化に適用した形
  • その結果、混在するテキストと画像、文書スクリーンショット、複雑なPDF、注釈付き画像において、視覚情報とテキスト情報の文脈関係をまとめてベクトルに含められる

スクリーンショットが混在する検索で表れた違い

  • CLIP類似モデルは**モダリティギャップ(modality gap)**のため、混合モダリティ検索で性能が低下することがある
  • 例では、「I address you, members of the Seventy-Seventh Congress…」というテキスト断片に最も近いベクトルは、該当スクリーンショットではなく別のテキストだった
  • こうした現象は、テキストベクトルが関連画像よりも、無関係でも同じモダリティの項目に近づいてしまう検索バイアスにつながる
  • Voyage AIはPyTorch文書を用いて定量実験を構成した
    • 同一内容を持つ文書セットを、通常のテキスト文字列とスクリーンショットでそれぞれ作成
    • テキストベース文書の一部と、残りの文書のスクリーンショットを混ぜて混合モダリティデータセットを構成
    • スクリーンショット比率は0%から100%まで変化させた
    • 各モデルはコサイン類似度で上位10件の結果を検索し、NDCG@10で評価された
  • CLIPベースのモデルは、スクリーンショット比率が90%まで増えるにつれて検索品質が低下し、すべてのテキストを画像に置き換えた場合でも性能が低かった
  • voyage-multimodal-3はすべての比率で最も高い性能を示し、全体的な性能低下もほとんどなかった
  • この結果は、スクリーンショット内の意味情報をベクトルに取り込む能力と、すべての入力モダリティを同じバックボーンで処理するアプローチの堅牢性を示している

評価データセットと比較対象

  • マルチモーダル評価は3つのタスク、合計20件のデータセットで実施
    • 表・図検索: charxiv, mmtab-test, ChartQA, Chartve, FintabnetQA, PlotQA
    • 文書スクリーンショット検索: ViDoRe benchmarkのEnergy, Healthcare Industry, Artificial Intelligence, Government Report, InfoVQA, DocVQA, ArxivQA, TabFQuad, TAT-DQA, Shift Project
    • テキスト-写真検索: meme-cap, mm-imdb, winoground, docci
  • 標準テキスト検索評価は、法務、金融、対話、コード、Web、技術など6ドメイン34件のデータセットで実施
  • すべてのデータセットでクエリはテキストであり、文書は図、写真、テキスト、文書スクリーンショット、またはそれらの組み合わせとなる場合がある
  • マルチモーダルタスクの比較モデルは次の通り
  • 標準テキスト検索では、OpenAI v3 large (text-embeddings-3-large)、Cohere multimodal/English 1 v3、voyage-3と比較
  • Cohere multimodal v3は純粋なテキストではCohere English v3 (embed-english-v3.0)をtext towerとして使うため、チャートでは混乱を避けるために「Cohere multimodal v3」というラベルのみを使用

検索精度の結果

  • voyage-multimodal-3は20件のマルチモーダル検索データセット全体で、次点のマルチモーダル埋め込みモデルより平均**19.63%**高い検索精度を記録
  • 表・図検索では、OpenAI CLIP large、Amazon Titan Multimodal G1、Cohere multimodal v3、SigLIP So400M、ColQwen2 v0.1に対してそれぞれ41.44%、45.00%、43.37%、20.66%、6.14%上回った
  • 文書スクリーンショット検索では、同じ比較モデルに対してそれぞれ26.54%、37.68%、25.84%、35.62%、0.98%高い性能を示した
  • テキスト-写真検索では、同じ比較モデルに対してそれぞれ6.55%、5.16%、5.86%、3.42%、10.34%上回った
  • 標準テキスト検索では、OpenAI v3 largeより5.13%、Cohere multimodal/English 1 v3より13.70%高い性能を示した
  • 純粋なテキスト文書検索精度はvoyage-3より**0.05%**高く、両モデルはほぼ同等の水準
  • 全評価結果はスプレッドシートで公開されている

利用開始と提供資料

  • voyage-multimodal-3は公開初日から利用可能
  • 最初の2億トークンは無料
  • 開始用資料はsample notebookdocsで提供されている
  • ファインチューニング埋め込みモデルに関心のあるユーザーは、contact@voyageai.comに連絡できる

1件のコメント

 
GN⁺ 2024-11-18
Hacker Newsのコメント
  • 核心となる観察はシンプルで直感的だ。すべてのCLIP系モデルは、モダリティ間ギャップのため混合モダリティ検索で性能がよくない
    たとえば「I address you, members of the Seventy-Seventh Congress…」という文に最も近いベクトルが、そのスクリーンショットではなく別のテキストになってしまう。つまり埋め込み空間では、テキストベクトルが関連画像より無関係なテキストに近くなり、検索結果が同一モダリティ側に偏る

    • この引用は重要だが、単独で見ると、彼らがその問題を解決したと主張しているのかははっきりしない。新モデルvoyage-multimodal-3は、モダリティをまたいだつながりのある概念を識別すると言っているように見える
      視覚的に表現されていてもテキストで表現されていても、同じアイデアをクラスタリングできる潜在空間があるなら、かなりすごいことだと思う。ただ、このベンチマークはマルチモーダル埋め込みをかなり狭く捉えているようにも思う。関連するテキスト画像とテキスト埋め込みが近いのは便利だが、それが「rabbit」とウサギの写真のような別の視覚表現との関連性まで拡張されるとは言いにくい。文書画像のインデックス化という狭い目的であれば、ほかの手法でもかなりうまく機能するかもしれない。テキスト媒体を超えたマルチモーダルな概念表現のベンチマークデータセットが新たに出てくる良い機会に思える
    • この問題は、2つのモダリティの間に大きな潜在空間ギャップが生じないようにするmultimodal mixupで解決できるかもしれない: https://arxiv.org/abs/2203.03897
  • この分野に関心があるなら、内部的にColPaliを透過的に使っている私たちのプロジェクトも候補に入れてよいかもしれない
    https://github.com/tjmlabs/ColiVara
    こちらの主要ベンチマークはVidoreリーダーボードで、VoyageAIがよりオープンなオープンソース実装と比べてどの程度なのか見てみたい

  • 何か見落としている気がする。「ネイティブなマルチモーダル」のLLMなら、何らかの形でマルチモーダル埋め込みを含んでいるはずではないだろうか
    たとえばGoogleのGeminiブログ記事では、従来のマルチモーダルモデルは異なるモダリティ向けのコンポーネントを別々に学習してからつなぎ合わせていたが、Geminiは最初から複数モダリティで事前学習し、追加のマルチモーダルデータでファインチューニングしたと説明している。だから、あらゆる種類の入力を最初から自然に理解し推論できると主張している

    • GeminiのようなLLM、より広く言えば因果言語モデルは次トークン予測で学習されるため、出力トークン埋め込みをプーリングして得たベクトルは、実際の埋め込みモデルで得られるものに比べてRAGや意味検索ではあまり有用ではない
      ここで区別すべきなのは、トークン埋め込みと埋め込みモデルが出力するベクトル/埋め込みは関連してはいるが別概念だということだ。各トークンに対応する多数のトークン埋め込みはトランスフォーマーを通る中で文脈化され、埋め込みモデルは長文テキスト・写真・文書スクリーンショットのような入力データ1件ごとに1つのベクトルを出力する
    • LLMの埋め込みには多くの概念の重なり合った表現が含まれているため次トークン予測はできるが、対照学習で事前学習された埋め込みモデルほど性能はよくない
    • ほかの回答が明確でなかったなら、ここでいう「埋め込み」を「自分のAIモデルのどこかの層が作るリスト」くらいに置き換えて考えればよい
      正確にはもう少し具体的な概念だが、この文脈ではそれで合っている。マルチモーダルLLMを含むLLMにも埋め込みはあるが、それらは類似文書を探すよう学習された埋め込みではなく、テキスト生成を通じて学習された埋め込みだ
  • かなり印象的に見える。提示された評価に対する批判的な見方が気になる
    非英語テキストではどうなのかも気になる。ほかの商用モデル同様、APIでしか提供されないモデルだという理解で合っている?

    • そう、VoyageモデルはAPI専用だ
      多言語について書いていた内容が間違っていたので削除した。参考までに、Voyageには別途lawcodefinanceモデルもある。[1]を参照
      いずれにせよ、結果は本当に興味深い
      [1]: https://docs.voyageai.com/docs/embeddings
  • モデルが商用のプロプライエタリで、しかもAPI専用なのは残念

    • 従業員に給料を払わなければならないのは悲しいことなのか?
  • API専用モデルなら見送る。それでもおめでとうとは言う

    • その両方に同意する。もちろん、人からお金を取ろうとする以外にもAPIのみに集中する明確な理由はいくつもあるだろうが、ほかの選択肢を提供しないという事実だけで、個人的には検討対象にならないと思う
  • かなり興味深そうだ。画像や音声のような複数のデータ型をLLMに統合するフレームワークAnyModalに取り組んできた: https://github.com/ritabratamaiti/AnyModal
    voyage-multimodal-3はマルチモーダルLLM開発にかなり有望に見えるが、それが意図されたユースケースなのかはよく分からない

  • 従来のPython APIでは、Voyageエンジンがテキストブロックをトークン化して文字列を出力する。このモデルは、画像を空間内でベクトル化することでそれを行っているように見える
    youappleのような単語は1つのトークンになり、pikachuのようなより複雑な用語はpik-a-chuのように分割されることがある
    [1]: https://docs.voyageai.com/docs/tokenization

  • マルチモーダル埋め込みの捉え方が興味深い。入力があるモダリティから別のモダリティへ徐々に移行するときの性能変化を測定している
    https://i0.wp.com/blog.voyageai.com/wp-content/uploads/2024/...

  • Colabでは内積0.428と0.498を測定し、それを「類似度の値がかなり高い」と説明している。本当に高い値なのか疑問だ
    0.4しきい値でデータを自信を持ってラベル付けするシステムを設計できるだろうか?

    • 生の類似度スコアも重要ではあるが、通常はほかの文書と比べたときの相対スコアのほうがより重要だ
      ノートブックの例では、それらの値が相対的に最も高かった。なぜ曖昧だったり混乱を招いたりしうるのかは理解できるので、修正するつもりだ
    • 生の出力値そのものはたいてい重要ではない。重要なのは出力分布の中でどこに位置するかだ
    • コサイン類似度の0.4は、シグモイドしきい値の0.4と同じではない
      ほぼ完全に同一な重複データではない実データにおいて、コサイン類似度0.4はかなり悪くない値だ