はじめに
以下では埋め込みモデルのDenseとSparseについて記載しました。
今回はDenseの1つであるCohere Embed 4を使って、PDFやパワーポイントの資料を画像として埋め込みます。
Cohere Embed 4
Cohere Embed 4は2025年4月にリリースされた最新の埋め込みモデルです。
以下のような流れでRAGパイプラインを構築します。
- すべての画像の埋め込みを作成し、VectorDBに格納する (画像対応)
- テキスト情報 (ユーザーからのクエリ) の埋め込みを生成 (テキスト対応)
- 1,2をマルチモーダル対応モデルに渡すことで回答生成できる
特徴
埋め込みモデルによって「最適な文書ファイルを抽出する能力」が変わります。
Cohere Embed 4は従来埋め込みモデルと比較して、以下の観点で優れています。
観点 | Cohere Embed v4 の特徴 |
---|---|
ベクトル空間の特性 | テキスト・画像・PDF・スライドなど異なるメディアを同じベクトル空間に統合。マルチモーダル検索が可能 |
意味理解 | 100以上の言語に対応し、クロス言語でも高精度。規制業界向けのドメイン特化型トレーニングにも対応 |
ベクトル次元数 | 256/512/1024/1536次元のマトリョーシカ構造により、用途やコストに応じて次元数を柔軟に選択可能 |
距離関数の最適化 | INT8量子化やバイナリ出力形式に対応し、検索速度とストレージ効率の最適化が可能 |
大規模文書対応 | 最大128kトークン(約200ページ)を一括処理可能。一貫した意味構造を保ったベクトル化が可能 |
その他の特徴
以下のような主要クラウド環境に対応しているため、エンタープライズレベルでの実運用にも適した設計になっています。
- Cohere’s platform
- Microsoft Azure AI Foundry
- Amazon SageMaker
使ってみる
ローカル環境でマルチモーダルRAGを構築し、PDFやスライド検索を試してみました。
LLMはマルチモーダル対応であるGemini2.5、ベクターストアはQdrantを利用しました。
ソースコードは最後に添付します。
入力データ
経済産業省やIPAが公開している以下のPDFやスライドデータを入れてみます。
全部で62枚のスライドを画像として埋め込みました。
実行結果
入力クエリに対して、関連度の高い画像をとってこれるか試します。
※1 関連度の高いデータから正しい回答を生成するのはLLMであるGeminiのモデル精度になるため、最終的な回答精度については期待しません。回答部分はただプロンプトに画像データを含めるだけの簡易実装にしています。
※2 スコアについてもQdrantのデフォルトの距離指標(コサイン類似度計算)を用いているため、純粋な埋め込みモデルの性能比較になっていない可能性はあり、精度向上の見込みは十分にあります。
Embed 4のデフォルトに合わせてベクトル次元数は1536次元で合わせます。
QA1: 表中のデータを聞いてみる
正解が含まれるデータは2番目のスコアであるpage5のデータでした。
しかし、回答にGeminiが5枚目のスライドを利用して正しい回答ができました。
QA2: ざっくり資料を聞いてみる
一番ほしかったのは3番目のスコアでしたが、大きくはぶれてなさそうです。
回答時にはpage10が1番上になってます。
QA3: 画像の抽象的な意味を聞いてみる
スライド上に記載のテキスト情報を拾ったのかもしれませんが、欲しいものが取れました。
ソースコード
是非ローカルで好きな資料を入れて試してみてください。
テキストRAGに比べて、実行が早いことも体感できます。
以下のノートブックを参考に実装しました。