2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon BedrockでCohere Embed 3 Multilingualを活用する方法

Posted at

はじめに

Amazon Bedrockは、Cohereの最新埋め込みモデル「Embed 3 Multilingual」と「Embed 3 English」のサポートを開始しました。特に、Embed 3 Multilingualは100以上の言語に対応し、日本語のテキストや画像データを処理することができます。本記事では、このモデルの特長や活用方法を詳しく解説し、Pythonを用いた実装方法についても紹介します。

参考: Amazon Bedrock now offers multimodal support for Cohere Embed 3 Multilingual and Embed 3 English

Amazon BedrockのCohere Embed 3マルチモーダル対応をわかりやすく解説

1. そもそも「Cohere Embed 3」とは?

Cohere Embed 3は、AIモデルの一種で、テキストや画像を「埋め込み(ベクトル)」という数値データに変換する技術を提供します。これにより、データ同士の関連性を計算し、より高度な検索やデータ分析が可能になります。

簡単に言うと?

文章や画像を数値化して「似ているものを探しやすくするAI技術」です。

2. 「マルチモーダル対応」とは?

マルチモーダル対応とは、「テキスト(文章)だけでなく、画像(視覚データ)も一緒に処理できる」ことを意味します。これにより、企業はより高度な検索システムを構築できます。

例えば?

「製品の説明文だけでなく、商品の写真からも検索できるECサイト」を作れるようになります。

具体的な活用例

例①:ECサイトの検索を高度化

課題

ECサイトで「赤いスニーカー」と検索しても、完全に一致する商品がなかなか見つからない。

解決策

  • テキスト検索: 「赤いスニーカー」だけでなく、「ランニング用スニーカー」「スポーツシューズ」など関連商品を表示。
  • 画像検索: 実際にスニーカーの画像をアップロードすると、それに似たデザインの商品を探せる。

結果

より直感的で便利な検索が可能になり、顧客満足度が向上。


例②:企業の膨大な文書や設計データを検索

課題

大手メーカーでは、過去の設計図、マニュアル、仕様書が膨大にあり、必要な情報をすぐに見つけるのが困難。

解決策

  • テキスト検索: 「エンジンの冷却システム」と検索すると、関連するマニュアルや設計図を瞬時に表示。
  • 画像検索: 古い設計図の画像をアップロードするだけで、似た部品の仕様書を探せる。

結果

エンジニアが必要な情報を素早く見つけ、業務の効率が向上。


例③:ニュース記事や研究論文の検索を改善

課題

研究者が関連する論文を探すとき、キーワード検索では適切な論文がヒットしないことが多い。

解決策

  • テキスト検索: 「AIの自然言語処理」と検索すると、関連論文を高精度に抽出。
  • 画像検索: 図表やグラフをアップロードすると、似たデータを含む研究を発見。

結果

研究者がより関連性の高い論文を簡単に見つけ、調査時間を短縮できる。

必要な環境と準備

必要なライブラリのインストール

以下のコマンドを実行して、必要なライブラリをインストールします。

pip install boto3 numpy scikit-learn

その後、AWSのクライアントを設定します。

import boto3

bedrock = boto3.client(service_name='bedrock', region_name='ap-northeast-1')

region_name は、適宜変更してください。

Amazon BedrockでCohere Embed 3を利用する方法

1. 利用可能なモデルの確認

まず、利用可能なCohereのモデル一覧を取得します。

list_models = bedrock.list_foundation_models(byProvider='cohere')

for model in list_models['modelSummaries']:
    print(f"Model Name: {model['modelName']}, Model ID: {model['modelId']}")

例えば、次のような出力が得られます。

Model Name: Embed Multilingual, Model ID: cohere.embed-multilingual-v3

2. 日本語テキストの埋め込み生成

モデルを使って、日本語テキストの埋め込みを生成します。

import json

input_text = "赤いスニーカーを探しています。"
model_id = 'cohere.embed-multilingual-v3'

params = {
    "modelId": model_id,
    "contentType": "application/json",
    "accept": "application/json",
    "body": json.dumps({"inputText": input_text})
}

response = bedrock.invoke_model(**params)
result = json.loads(response['body'].read())
embedding = result['embedding']

print("Generated Embedding:", embedding)

この埋め込みを利用することで、入力テキストの意味的な情報を数値化し、検索や分類に活用できます。

3. ベクトル検索の実装

埋め込みを活用して、類似検索を実装することも可能です。以下の例では、事前に用意したテキストと比較し、最も類似したものを特定します。

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

database_texts = [
    "青いスニーカーがあります。",
    "赤い靴を販売しています。",
    "スポーツ用のシューズをお探しですか?"
]
database_embeddings = [
    # 事前に生成した埋め込みベクトルを格納
]

input_embedding = np.array(embedding).reshape(1, -1)
similarities = cosine_similarity(input_embedding, database_embeddings)

most_similar_index = np.argmax(similarities)
most_similar_text = database_texts[most_similar_index]

print("最も類似したテキスト:", most_similar_text)

このようにして、埋め込みを利用した検索システムを構築することができます。

まとめ

Amazon BedrockのCohere Embed 3マルチモーダル対応により、

  • ECサイト では、画像とテキストで商品検索が可能。
  • 企業の情報管理 では、設計図やマニュアルをすぐに検索。
  • 研究分野 では、論文やデータの検索を高度化。

データの種類にとらわれず、より便利な検索が可能になります!

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?