46.6kデモを予約するログイン無料で始める
Google

Google / gemini-Embedding-2

テキスト、画像、動画、音声、ドキュメントにわたり100以上の言語をサポートし、最大3072の出力次元に対応する、Google初のネイティブなマルチモーダル埋め込みモデル。

gemini-embedding-2 モデルの紹介

gemini-embedding-2-preview は、最大3072次元の埋め込みを作成する、Google初のネイティブなマルチモーダル埋め込みモデルです。text-embedding-004 や gemini-embedding-exp-03-07 などの Google の他の埋め込みモデルと比較して、Gemini Embedding 2 は複数のモダリティ(テキスト、画像、動画、音声、ドキュメント)を100以上の言語にわたる統一された埋め込み空間でサポートしており、マルチモーダル RAG やセマンティック検索アプリケーションに最適です。

まずは基本を簡単に見てみましょう。

モデル次元数最大トークン数言語価格
gemini-embedding-2-preview3072(MRL をサポート)8,192100+$0.20 / 100万テキストトークン
gemini-embedding-exp-03-073072(MRL をサポート)8,192多言語$0.15 / 100万トークン
text-embedding-0047682,048英語$0.025 / 100万文字

gemini-embedding-2 モデルの使い方

Gemini Embedding 2 を使用してベクトル埋め込みを生成する主な方法は2つあります。

  • PyMilvus: Gemini Embedding 2 モデルとシームレスに統合される、Milvus 向けの Python SDK。
  • Google Gemini API: Google が提供する Python SDK(google-genai)。

これらの方法により、開発者は高度なマルチモーダル埋め込み機能をアプリケーションに簡単に組み込めます。

ベクトル埋め込みが生成されたら、Zilliz Cloud(Milvus を基盤とするフルマネージドのベクトルデータベースサービス)に保存し、セマンティック類似性検索に使用できます。主な4つの手順は次のとおりです。

  1. Zilliz Cloud アカウントに無料でサインアップします。
  2. サーバーレスクラスターをセットアップし、Public Endpoint と API Keyを取得します。
  3. ベクトルコレクションを作成し、ベクトル埋め込みを挿入します。
  4. 保存された埋め込みに対してセマンティック検索を実行します。

Google Gemini API 経由で埋め込みを生成し、セマンティック検索のために Zilliz Cloud に挿入する

from google import genai
from pymilvus import MilvusClient

GEMINI_API_KEY = "your-gemini-api-key"
gemini_client = genai.Client(api_key=GEMINI_API_KEY)

# Generate embeddings for documents
docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

doc_result = gemini_client.models.embed_content(
    model="gemini-embedding-2-preview",
    contents=docs,
)
doc_embeddings = [e.values for e in doc_result.embeddings]

# Generate embeddings for queries
queries = ["When was artificial intelligence founded",
           "Where was Alan Turing born?"]

query_result = gemini_client.models.embed_content(
    model="gemini-embedding-2-preview",
    contents=queries,
)
query_embeddings = [e.values for e in query_result.embeddings]

# Connect to Zilliz Cloud with Public Endpoint and API Key
milvus_client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if milvus_client.has_collection(collection_name=COLLECTION):
    milvus_client.drop_collection(collection_name=COLLECTION)
milvus_client.create_collection(
    collection_name=COLLECTION,
    dimension=3072,
    auto_id=True)

for doc, embedding in zip(docs, doc_embeddings):
    milvus_client.insert(COLLECTION, {"text": doc, "vector": embedding})

results = milvus_client.search(
    collection_name=COLLECTION,
    data=query_embeddings,
    output_fields=["text"])

詳細については、Google の Gemini Embedding Guideを参照してください。