14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BedrockにCohere Embed v4が来てたので試してみた

Last updated at Posted at 2025-10-03

はじめに

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:州および大都市圏別の個人所得

img1.png

画像2:州・大都市圏別国内総生産(2023年)

img2.png

画像3:2025年第2四半期の州別国内総生産と州別個人所得、および州別個人消費支出(2024年)

img3.png

画像読み込みは少し面倒なのですが、今回はデスクトップに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に対応して欲しいです。

参考

14
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?