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

アリババ / Qwen3-Embedding-8B

80億パラメータのテキスト埋め込みモデル、32kのコンテキスト長に対応し、100以上の言語をカバー

Qwen3-Embedding-8B の紹介

Qwen3-Embedding-8B モデルは、Qwen3 Embedding シリーズに含まれる Alibaba の 80億パラメータのテキスト埋め込みモデルです。高密度な Qwen3 アーキテクチャを基盤として構築されており、32k のコンテキスト長をサポートし、100以上の人間の言語およびプログラミング言語にわたる強力な多言語機能を提供することで、テキスト検索、コード検索、クロスリンガルなシナリオで効果的なパフォーマンスを実現します。

Qwen3-Embedding-8B は、テキスト埋め込みアプリケーションにおいて最先端の性能を発揮し、現在 MTEB 多言語リーダーボード(2025年6月5日)でスコア 70.58 により第1位にランクされています。また、すべての次元にわたるベクトル定義とユーザー定義の指示による柔軟性も備えており、開発者は特定のタスク、言語、またはアプリケーション要件に合わせてモデルを適応させることができます。

Qwen3-Embedding-8B で埋め込みを作成する方法

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

  • PyMilvus: Qwen3-Embedding-8B モデルをシームレスに統合する Milvus 用の Python SDK。
  • PAI-EAS: Qwen3-Embedding-8B のようなカスタムモデルをデプロイするためのマネージドサービス(高度なカスタマイズ向け)。

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

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

from pymilvus.model.dense import SentenceTransformerEmbeddingFunction
from pymilvus import MilvusClient

# Load the Qwen3-Embedding-8B model
ef = SentenceTransformerEmbeddingFunction(
    "Qwen/Qwen3-Embedding-8B", 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 = "qwen3_embedding_8b_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 ドキュメントを参照してください。