はじめに
Cohere Embed v4が新しくAmazon Bedrockで利用可能になったようです。
ということで少し触ってみました。今回はStrandsAgentsから呼び出しています。
この記事は触ってみた所感であり詳細な設計や比較は省いていることをご留意ください
やってみる
ではやってみます。コードは公式ドキュメントが更新されていたので、そこを参考にやってみました。
とりあえずテキストを何セットか用意して埋め込み、クエリを実行して類似度を出す
みたいなことをします。
Strandsにこのモデル使うよーと教えてあげます。
クロスリージョンモデルなので推論プロファイルで書きます。長いです。
COHERE_EMBED_V4_MODEL_ID = os.environ.get(
"COHERE_EMBED_V4_MODEL_ID",
"arn:aws:bedrock:us-west-2:017820658462:inference-profile/us.cohere.embed-v4:0",
)
与えるテキストは以下になります。
corpus句のテキストとqueryのテキストを比較します。
query = "RAGアーキテクチャにおいて、高精度なエンベディングモデルが意味的類似性スコアに与える影響についての評価結果は?"
corpus = [
"本研究では、従来のBERTベース埋め込みと比較して、Cohere Embed v4による意味的マッチング精度の向上を報告する。特に、質問応答型RAGパイプラインにおけるretrieverの性能差を焦点に分析した。",
"LLMベースの生成AIにおいては、クエリドリブンな知識検索(RAG)機構が注目されている。本稿では、embeddingモデルの差異が生成結果に与える影響を定量的に評価する。",
"OpenAIのtext-embedding-ada-002モデルを用いた際、特定ドメインにおける文書検索精度がCohere Embed v4と比較して劣後する傾向が観測された。",
"大規模言語モデルと組み合わせたRAG構成の性能最適化には、検索対象文書の事前クリーニング処理が精度向上に寄与する可能性があることが示された。",
"意味的類似性ベースのフィルタリング後に、要約や生成タスクを統合するmulti-stageなRAG設計においては、埋め込みの質が情報過多を抑制する鍵となる。"
]
ログは以下のような感じです。
cos_simがコサイン類似度です。
これだけだとどう変わったのかよくわからないのでv3も使って結果を比べようと思います。
- LLMベースの生成AIにおいては、クエリドリブンな知識検索(RAG)機構が注目されている。本稿では、embeddingモデルの差異が生成結果に与える影響を定量的に評価する。
cos_sim=0.5876, cos_dist=0.4124, l2_dist=0.9071
- 意味的類似性ベースのフィルタリング後に、要約や生成タスクを統合するmulti-stageなRAG設計においては、埋め込みの質が情報過多を抑制する鍵となる。
cos_sim=0.5480, cos_dist=0.4520, l2_dist=0.9498
- 本研究では、従来のBERTベース埋め込みと比較して、Cohere Embed v4による意味的マッチング精度の向上を報告する。特に、質問応答型RAGパイプラインにおけるretrieverの性能差を焦点に分析した。
cos_sim=0.5286, cos_dist=0.4714, l2_dist=0.9701
- 大規模言語モデルと組み合わせたRAG構成の性能最適化には、検索対象文書の事前クリーニング処理が精度向上に寄与する可能性があることが示された。
cos_sim=0.4563, cos_dist=0.5437, l2_dist=1.0426
- OpenAIのtext-embedding-ada-002モデルを用いた際、特定ドメインにおける文書検索精度がCohere Embed v4と比較して劣後する傾向が観測された。
cos_sim=0.3539, cos_dist=0.6461, l2_dist=1.1369
次元数をいじってみる
v4モデルは次元数をいじれるようでしたので、変更してみました。
一般的にベクトルの次元数が多いほどより詳細に分解でき、正確な情報が得られるとされています。
以下は次元数を1536にして実行した結果です。順位は変わらずでしたが、スコアが微妙に変化してました。
- LLMベースの生成AIにおいては、クエリドリブンな知識検索(RAG)機構が注目されている。本稿では、embeddingモデルの差異が生成結果に与える影響を定量的に評価する。
cos_sim=0.5697, cos_dist=0.4303, l2_dist=0.9280
- 意味的類似性ベースのフィルタリング後に、要約や生成タスクを統合するmulti-stageなRAG設計においては、埋め込みの質が情報過多を抑制する鍵となる。
cos_sim=0.5418, cos_dist=0.4582, l2_dist=0.9589
- 本研究では、従来のBERTベース埋め込みと比較して、Cohere Embed v4による意味的マッチング精度の向上を報告する。特に、質問応答型RAGパイプラインにおけるretrieverの性能差を焦点に分析した。
cos_sim=0.5194, cos_dist=0.4806, l2_dist=0.9820
- 大規模言語モデルと組み合わせたRAG構成の性能最適化には、検索対象文書の事前クリーニング処理が精度向上に寄与する可能性があることが示された。
cos_sim=0.4477, cos_dist=0.5523, l2_dist=1.0511
- OpenAIのtext-embedding-ada-002モデルを用いた際、特定ドメインにおける文書検索精度がCohere Embed v4と比較して劣後する傾向が観測された。
v3モデルと比較
v3も同様に呼び出します。
基本的にモデルIDを差し替えるだけですが、v3モデルは次元数が1024固定のようです。
次元数を指定するとエラーになります。
- 意味的類似性ベースのフィルタリング後に、要約や生成タスクを統合するmulti-stageなRAG設計においては、埋め込みの質が情報過多を抑制する鍵となる。
cos_sim=0.7176, cos_dist=0.2824, l2_dist=0.7516
- LLMベースの生成AIにおいては、クエリドリブンな知識検索(RAG)機構が注目されている。本稿では、embeddingモデルの差異が生成結果に与える影響を定量的に評価する。
cos_sim=0.7091, cos_dist=0.2909, l2_dist=0.7628
- 大規模言語モデルと組み合わせたRAG構成の性能最適化には、検索対象文書の事前クリーニング処理が精度向上に寄与する可能性があることが示された。
cos_sim=0.6908, cos_dist=0.3092, l2_dist=0.7866
- 本研究では、従来のBERTベース埋め込みと比較して、Cohere Embed v4による意味的マッチング精度の向上を報告する。特に、質問応答型RAGパイプラインにおけるretrieverの性能差を焦点に分析した。
cos_sim=0.6629, cos_dist=0.3371, l2_dist=0.8211
- OpenAIのtext-embedding-ada-002モデルを用いた際、特定ドメインにおける文書検索精度がCohere Embed v4と比較して劣後する傾向が観測された。
cos_sim=0.5667, cos_dist=0.4333, l2_dist=0.9309
v4と比べてスコア、順位にも変動が見られました。
用意したデータが微妙だったかもしれません。専門的な内容にし過ぎて比較が難しいですが、v4の方が気持ち正確な気もします。
マルチモーダルなクエリ
マルチモーダル対応なので画像読み込みも試してみます。
が、何回やってもうまくいきませんでした。
下記のように画像の埋め込みに失敗します。
[embed_v4_inputs] interleaved failed, trying fallbacks...
色々調べたら画像を含めた推論は米国東部 (バージニア北部)、ヨーロッパ (アイルランド)、アジアパシフィック (東京) しかまだ有効でないようです。他リージョンは順次有効になるらしいです。
普通にWhat's NEW に書いてあった...
ここだけus-east-1を指定して実行します。
というわけで気を取り直して、用意した画像は以下です。
画像1:州および大都市圏別の個人所得
画像2:州・大都市圏別国内総生産(2023年)
画像3:2025年第2四半期の州別国内総生産と州別個人所得、および州別個人消費支出(2024年)
画像読み込みは少し面倒なのですが、今回はデスクトップにimageフォルダを配置、その中に対象画像を入れて、コードの中でフォルダを読み込むようにしています。
folder = os.path.expanduser("/Users/hogehoge/Desktop/image")
以下結果になります。
img1は上の画像1のことですね()
マルチリンガルかつマルチモーダルな検索ができてるのはいいですね。
結果もあっているので良さそうです。
query = "個人所得について示す図はどれ?"
以下結果
- img1.png cos_sim=0.4260 cos_dist=0.5740
- img3.png cos_sim=0.3324 cos_dist=0.6676
- img2.png cos_sim=0.3044 cos_dist=0.6956
最後に
今回はあまり詳細な技術的な検証記事でありませんが参考になれば幸いです。
あとこれ早くKnowledgeBasesに対応して欲しいです。
参考


