46.4kデモを予約するログイン無料で始める
雪の結晶

雪の結晶 / snowflake-arctic-embed-l-v2.0

74言語に対応し、非埋め込みパラメータが3億300万の多言語テキスト埋め込みモデル

snowflake-arctic-embed-l-v2.0 の紹介

snowflake-arctic-embed-l-v2.0 モデルは、74言語をサポートする多言語テキスト埋め込みモデルで、英語および非英語のタスク全体で高品質な検索と効率的な推論を提供するように設計されています。303M の非埋め込みパラメータを備え、高速でスケーラブルな推論を提供し、Matryoshka Representation Learning と量子化対応学習によってコンパクトな表現をサポートします。

snowflake-arctic-embed-l-v2.0 を snowflake-arctic-l モデルと比較します:

モデルパラメータ非埋め込みパラメータ次元数言語サポート
snowflake-arctic-l-v2.0568M303M1024多言語
snowflake-arctic-l335M303M1024英語のみ

snowflake-arctic-embed-l-v2.0 で埋め込みを作成する方法

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

  • PyMilvus: snowflake-arctic-embed-l-v2.0 モデルをシームレスに統合する、Milvus 用の Python SDK。
  • テキストと画像向けに Snowflake Cortex が提供する AI_EMBED 関数。

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

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

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

# Load the Snowflake Arctic Embed L v2.0 model
ef = SentenceTransformerEmbeddingFunction(
    "Snowflake/snowflake-arctic-embed-l-v2.0", 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 = "arctic_embed_l_v2_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 documentationを参照してください。