Google / EmbeddingGemma
100以上の言語に対応する多言語テキスト埋め込みモデル。リソースの限られたハードウェア上で効率的に動作します
Milvus Integrated
タスク: 埋め込み
モダリティ: テキスト
類似性メトリック: コサイン、ドット積
ライセンス: gemma
次元: 768
最大入力トークン: 2048
価格: 無料
EmbeddingGemma の紹介
EmbeddingGemma モデルは、Google による 3億800万パラメータの多言語テキスト埋め込みモデルで、Gemma 3(T5Gemma 初期化を使用)を基盤とし、Gemini モデルの背後にあるものと同じ研究基盤を用いて開発されています。分類、クラスタリング、セマンティック類似性検索を含む、検索および取得タスクに適しています。
EmbeddingGemm は 100 以上の言語をサポートし、Matryoshka Representation Learning (MRL) を介して柔軟な出力次元(768 から 128 まで)を提供します。2K トークンのコンテキストウィンドウと、量子化時に 200MB 未満のメモリフットプリントにより、EmbeddingGemma はリソースが限られたハードウェア上でも効率的に動作します。スマートフォン、ノートパソコン、タブレットなどの日常的なデバイスにデプロイでき、幅広い環境で高度なテキスト埋め込み機能を利用できるようにします。
EmbeddingGemma で埋め込みを作成する方法
ベクトル埋め込みを生成する主な方法は 2 つあります。
- PyMilvus:
EmbeddingGemmaモデルをシームレスに統合する Milvus 用の Python SDK。 - SentenceTransformer library: Python ライブラリ
sentence-transformer。
ベクトル埋め込みが生成されると、それらを Zilliz Cloud(Milvus を搭載したフルマネージドのベクトルデータベースサービス)に保存し、セマンティック類似性検索 に使用できます。主な手順は次の 4 つです。
- Zilliz Cloud アカウントに無料で 登録 します。
- サーバーレスクラスターをセットアップ し、Public Endpoint と API Key を取得します。
- ベクトルコレクションを作成し、ベクトル埋め込みを挿入します。
- 保存された埋め込みに対してセマンティック検索を実行します。
PyMilvus 経由で埋め込みを作成し、セマンティック検索のために Zilliz Cloud に挿入する
from pymilvus.model.dense import SentenceTransformerEmbeddingFunction
from pymilvus import MilvusClient
# Load the Google EmbeddingGemma-300M model
ef = SentenceTransformerEmbeddingFunction(
"google/embeddinggemma-300m", trust_remote_code=True
)
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.",
]
# Generate embeddings for documents
docs_embeddings = ef(docs)
queries = ["When was artificial intelligence founded", "Where was Alan Turing born?"]
# Generate embeddings for queries
query_embeddings = ef(queries)
# Connect to Zilliz Cloud with Public Endpoint and API Key
client = MilvusClient(uri=ZILLIZ_PUBLIC_ENDPOINT, token=ZILLIZ_API_KEY)
COLLECTION = "embeddinggemma_300m_documents"
# Drop collection if it exists
if client.has_collection(collection_name=COLLECTION):
client.drop_collection(collection_name=COLLECTION)
# Create collection with auto-detected dimension
client.create_collection(collection_name=COLLECTION, dimension=ef.dim, auto_id=True)
# Insert documents with embeddings
for doc, embedding in zip(docs, docs_embeddings):
client.insert(COLLECTION, {"text": doc, "vector": embedding})
# Search for similar documents
results = client.search(
collection_name=COLLECTION,
data=query_embeddings,
# consistency_level="Strong", # Strong consistency ensures accurate results but may increase latency
output_fields=["text"],
limit=2,
)
# Print search results
for i, query in enumerate(queries):
print(f"\nQuery: {query}")
for result in results[i]:
print(f" - {result['entity']['text']} (distance: {result['distance']:.4f})")
詳細については、当社の PyMilvus Embedding Model ドキュメント を参照してください。





