46.6kデモを予約するログイン無料で始める
マイクロソフト

マイクロソフト / multilingual-e5-large

多言語文書に対応し、100以上の言語をサポート。多言語による情報検索やセマンティック検索タスクに最適。

多言語-e5-large埋め込みモデルの紹介

multilingual-e5-largeモデルは、マイクロソフト社がXLM-RoBERTa-largeアーキテクチャに基づいて開発した最先端のテキスト埋め込みモデルです。24のレイヤー構造と5億6,000万個のパラメータを持つmultilingual-e5-large` モデルは、1024次元の埋め込みを生成し、100の言語をサポートし、多言語の文脈でも堅牢な性能を提供する。

億の弱教師付きテキストペアで訓練され、特定のデータセットで微調整されたこのモデルは、多言語情報検索と意味検索タスクに優れている。query:」または「passage:」で始まるテキスト入力を処理し、意味内容を正確に反映する埋め込みを作成する。このモデルは、多言語ベンチマークにおいて、より小さなモデルや従来の手法を凌駕する優れた性能を示し、クロスリンガルなテキスト解析、クラスタリング、類似性比較に理想的である。

multilingual-e5-largeモデルによるベクトル埋め込み作成方法

multilingual-e5-large`モデルでベクトル埋め込みを作成するには、主に2つの方法があります:

1.PyMilvus: MilvusのPython SDKで、multilingual-e5-largeモデルとシームレスに統合されています。 2.SentenceTransformer ライブラリ: sentence-transformer の Python ライブラリ。

ベクトル埋め込みが生成されると、Zilliz Cloud(Milvusによって提供される完全に管理されたベクトルデータベースサービス)に保存され、意味類似検索に使用することができる。以下は4つの重要なステップである:

1.Zilliz Cloudのアカウントにサインアップする。 2.サーバーレスクラスターのセットアップ](https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster)とパブリックエンドポイントとAPIキーを取得する。 3.ベクター・コレクションを作成し、ベクター埋め込みを挿入する。 4.**セマンティック検索を実行する。

PyMilvusで埋め込みベクトルを生成し、Zilliz Cloudに挿入してセマンティック検索を行う。

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

ef = SentenceTransformerEmbeddingFunction("intfloat/multilingual-e5-large")
    
docs = [".
   "passage:人工知能は1956年に学問分野として創設された"、
   "passage:アラン・チューリングは、人工知能の分野で大規模な研究を行った最初の人物である。"、
   「一節:图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
    
# ドキュメントの埋め込みを生成する
docs_embeddings = ef(docs)
    
queries = ["クエリ:人工知能はいつ作られたか?
           "query:アラン・チューリングはどこで生まれましたか?]
               
# クエリの埋め込みを生成する
query_embeddings = ef(queries)

# Public EndpointとAPI KeyでZilliz Cloudに接続する
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT、
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    コレクション名=COLLECTION、
    dimension=ef.dim、
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION、
    data=query_embeddings、
    consistency_level="Strong"、
    output_fields=["text"])

詳細はPyMilvus Embedding Model documentationを参照してください。

SentenceTransformer を使ってベクトル埋め込みを生成し、意味検索のために Zilliz Cloud に挿入する。

from sentence_transformers import SentenceTransformer
from pymilvus import MilvusClient

model = SentenceTransformer("intfloat/multilingual-e5-large")

docs = [".
   "passage:人工知能は1956年に学問分野として設立されました。"、
   "passage:アラン・チューリングは、人工知能の分野で大規模な研究を行った最初の人物である。"、
   「一節:图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
# ドキュメントの埋め込みを生成する
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = ["クエリ:人工知能はいつ作られたのか?
           "query:アラン・チューリングはどこで生まれましたか?"]
# クエリの埋め込みを生成する
query_embeddings = model.encode(queries, normalize_embeddings=True)

# Public EndpointとAPI KeyでZilliz Cloudに接続する。
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT、
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION、
    dimension=1024、
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION、
    data=query_embeddings、
    consistency_level="Strong"、
    output_fields=["text"])

詳しくはSentenceTransformer documentationを参照してください。