マルチモーダル埋め込みとRAG:実践ガイド
マルチモーダル埋め込みにより、AIシステムはテキスト、画像、音声、動画をネイティブ形式で検索・推論できます。本記事ではその仕組みの核となる直感を解説し、WeaviateとGeminiを使った3つの実装例を紹介します。
音楽を言葉で説明しようとして、「ビリー・アイリッシュっぽいけどもっと柔らかくて、ピアノのラインがあって…もういいや、直接聴いて」と言った経験はないでしょうか?これは言語の失敗ではなく、言語が本質的に経験の圧縮表現であることを示しています。どんな圧縮も、音色、質感、空間配置といった詳細を失います。AIの歴史の大半では、この圧縮を前提としてきました。検索や情報取得は、テキストで書かれていなければ存在しないものとして扱われてきました。ポッドキャストは文字起こし、スキャンしたPDFはOCR、ホワイトボードの写真は活用困難。変換のたびに情報が失われていました。
マルチモーダル埋め込みはこの状況を変えます。テキスト、画像、音声、動画を同一の埋め込み空間にマッピングし、あるモダリティのクエリで他のモダリティの結果を取得できるようにします。本記事ではその仕組み、最新モデルがどのように実用性を高めたか、そしてWeaviateとGeminiを用いた3つの実践的なシステム構築例を紹介します。
埋め込みの基本
埋め込みとは、入力(テキスト/画像/音声など)を高次元の数学的空間上の点としてエンコードした表現です。text-embedding-3-largeやnomic-embed-textなどのモデルは、文をベクトルに変換します。意味的に類似した入力は埋め込み空間で近くに配置され(例:「犬」と「子犬」のベクトルは近い)、これが現代の検索システムの中核です。キーワード一致ではなくベクトル比較により、意味を理解するセマンティック検索が実現します。しかし、テキスト埋め込みはテキストしか扱えません。データが別の形式なら、変換するか諦めるしかありませんでした。
共有埋め込み空間
サポートエンジニアが、テキスト文書だけでなく顧客通話の録音、スキャンされたマニュアル、製品デモ動画からなる社内ナレッジベースを検索するとします。「圧力下でバルブシールが破損する部分」を探すと、答えは40分のトラブルシューティング動画の22分頃に表示されています。テキストのみの埋め込みでは対処できません。音声を文字起こししても言われたことしか捉えられず、手の動きや機器は分かりません。OCRでは図が消え、字幕は会話しか記述しません。情報は存在するが、形式がアクセスを妨げています。解決策は各モダリティを共有埋め込み空間にエンコードすることです。課題は、これを一貫して実現するモデルを訓練することです。
モダリティ間のアライメント学習
これを可能にするのが対照学習です。写真とキャプション、音声クリップとテキスト説明などのペアを用意し、2つのエンコーダを同時に訓練します。ペアの入力は埋め込み空間で近くに、ペアでないものは遠くに配置されるように学習します。各バッチで、画像とすべてのテキストを比較し、正しいペアが最高スコアになるよう、誤ったペアにはペナルティを与えます。これを数億ペアで繰り返すと、エンコーダは形式ではなく意味が支配する幾何学構造に収束します。
CLIP(OpenAI、2021)は画像-テキストの大規模アライメントを初めて実証しました(4億ペア)。ImageBind(Meta、2023)は6つのモダリティ(画像/動画、テキスト、音声、深度、熱、IMU)に拡張し、画像をアンカーとして、他のモダリティ間の関係(例:音声↔テキスト)も推移的に出現させます。しかし、「Mind the Gap」(NeurIPS 2022)が問題を指摘しています。各エンコーダの表現は高次元空間で狭い円錐状にクラスター化し、二つの円錐が完全には重なりません。対照学習は相対距離のみを気にするため、モダリティ間のギャップを埋めるインセンティブがなく、下流タスクの精度に影響します。
次世代モデルはこの問題を根本的に解決する必要がありました。すべてのモダリティをゼロから単一の統一アーキテクチャで共同訓練することです。現代のネイティブなマルチモーダル埋め込みモデルはまさにそれを実現し、これにより以下で説明する例が理論から実践へと変わりました。
マルチモーダル検索を形作る設計判断
実世界の精度に影響を与えるのはモデル選択よりも設計判断です。
- ネイティブ vs. ブリッジ埋め込み:一般的な手法はすべてをテキストに変換して信頼できるテキスト埋め込みモデルを使うことですが、変換による損失を伴います。代替案は、最初から共同訓練されたモデル(例:Gemini Embedding 2)を使って各モダリティをネイティブに埋め込むことです。これにより、音声のトーン、PDFのレイアウト、動画の視覚的行動が保持されます。
- 非テキストデータのチャンク戦略:テキストには文、段落といった自然な分割単位がありますが、音声や動画にはありません。標準的なアプローチは固定長の時間ウィンドウにオーバーラップを設けることです。短すぎると文脈を失い、長すぎると取得したチャンクが生成モデルに渡しにくくなります。ドキュメントの場合は、ページを画像に変換してページ単位でインデックスするのが効果的です。
- 次元数とストレージ:マルチモーダルワークロードは高速にベクトルを生成します。100万個の15秒動画チャンクを3072次元でインデックスすると、数GBのベクトルインデックスになります。Matryoshka表現学習(MRL)で訓練されたモデルは、埋め込みを壊さずに次元を削減できます(例:3072次元出力ベクトルの最初の768次元でも使用可能な表現)。小さい次元から始め、ベンチマークを取り、必要に応じて拡張することをお勧めします。
- 検索→生成、ネイティブメディアを利用:標準のRAGループ(コーパスの埋め込み、クエリの埋め込み、最近傍の取得、LLMへのコンテキスト渡し)はここでも有効です。追加として、生成モデルが音声、画像、動画を直接推論できる場合は、テキスト要約ではなく生のメディアを渡すことで、生成ステップも元の情報に基づくことができます。
マルチモーダルシステムの構築(3つの例)
Weaviateは最近、Gemini Embedding 2(Google初のネイティブマルチモーダル埋め込みモデル)をデータベースの取り込みパイプラインに直接統合しました。テキスト、画像、音声、動画の各フィールドを宣言するだけで、データのインポート時に埋め込みが自動生成・インデックスされます。
使用するスタック:Weaviate(multi2vec-googleモジュール)、Gemini Embedding 2(MRL対応マルチモーダル埋め込みモデル)、Gemini 3 Flash(生成ステップ用マルチモーダルLLM)。
1. 文字起こし不要の音声検索 問題:長い音声ファイル(ポッドキャスト、インタビュー、講義)があり、意味に基づいて特定の瞬間を検索したい。 アプローチ:音声を短いオーバーラップチャンクに分割し、ネイティブに埋め込みます。テキストや音声でクエリし、一致する音声セグメントを取得します。例では、Robert Frostの詩「Birches」の録音を使用。 取得した音声バイトはGemini 3 Flashに直接渡され、モデルは聞いた内容に基づいて回答します。これはテキストの文字起こしに基づく回答とは質的に異なり、詩の言葉だけでなく、行間の息遣いや音節の重み、沈黙も考慮されます。
2. 複雑な視覚ドキュメントとしてPDFを読む 問題:PDFからのテキスト抽出は誤りがちなだけでなく、図表、注釈、複雑な表組、段組みなどの情報を純テキストで表現できません。 アプローチ:PDFを視覚的なページのシーケンスとして扱い、各ページを画像に変換してimage_fieldsでインデックスします。埋め込みモデルはレイアウト、書体、図、表を保持したページを受け取ります。テキストクエリは視覚的類似性に基づいて最も関連するページを取得し、それらは画像としてLLMに渡され、人間と同じように「読まれ」ます。前処理パイプラインも簡素化されます。
3. 動画内の適切な瞬間を見つける 動画は検索が最も難しいメディアです。動画内で最も取得しやすい会話は、多くの場合、その瞬間に起こっている最も重要でないことだからです。例えば、設定パネルを構成するチュートリアル動画では、実際の操作は視覚的に提示され、ナレーションは「これをやります」とだけ言うかもしれません。字幕ベースの検索では正しい言葉が話された動画が見つかり、視覚検索では正しい動作が行われたセグメントが見つかります。 アプローチ:MP4ファイルをffmpegで15秒のオーバーラップセグメントに分割し、各チャンクの動画と音声ストリームを保持します。各チャンクを動画バイトとしてインデックス化し、クエリは意味的内容に基づいて最近傍チャンクを取得します。生成モデルは生の動画内容を推論して最良の回答を提供します。また、動画クリップ自体でクエリすることもでき、動画間検索が可能です。
マルチモーダル埋め込みを使用するタイミング(使用しないタイミング)
マルチモーダル埋め込みは万能なアップグレードではありません。データにテキストだけでは伝えられない信号が含まれているかが判断基準です。以下の場合に使用します:
- 音声に感情やトーンが重要な場合。
- PDFにレイアウト依存情報(表、注釈、図)があり、OCRで誤りやすい場合。
- 動画検索が視覚的な動作や手がかりを必要とする場合(話し言葉だけでない)。
- ユーザーが「これに似たものを見せて」と例示検索する可能性がある場合。
データが実際にテキストのみの場合は、テキスト埋め込みの方が十分優れており、より安価で高速です。1000万件の記事で視覚的・音声的要素がないなら、マルチモーダルはコストと複雑さを増すだけで精度は向上しません。ストレージコストにも注意し、小さい次元(768次元で多くのワークロードに十分)から始め、ベンチマークを取ってから拡張してください。
まとめ
3つの例に共通するのは、データが本来持つ形式で扱うことです。トーンを失う文字起こし、レイアウトを壊すOCR、視覚的なシーンを一文に平坦化するキャプション生成は行いません。これが「マルチモーダル」の実際の意味です。単に複数の形式を横断して検索できるだけでなく、表現自体がテキストに合うものだけではなく、完全な信号に基づいているのです。構築のためのエンジニアリングはかつてないほど身近になっています。リンク先のノートブックは実際の出発点です。自分のデータに最も近いものを選び(複数組み合わせてもよい)、今すぐ構築を始めましょう!