46.4kデモを予約するログイン無料で始める
香港大学NLP

香港大学NLP / instructor-xl

インストラクター・ベースとインストラクター・ラージと比較して最高のパフォーマンスを発揮する、テキスト埋め込み用に調整されたインストラクション・モデル。

インストラクター・モデル・ファミリーの紹介

NKU NLPのInstructorモデルは、指示によって微調整されたテキスト埋め込みモデルです。タスクの指示を与えるだけで、様々なドメイン(科学や金融など)のタスクに特化した埋め込み(分類、検索、クラスタリング、テキスト評価など)を作成します。70の埋め込みタスクで最先端の結果を出しています!

図 インストラクターモデルの仕組み](https://assets.zilliz.com/Figure_How_the_Instructor_Model_works_2b174dc8aa.png)

図:インストラクターモデルの仕組み(画像:NKU NLP)

インストラクターモデルには3つのバリエーションがあります:インストラクター・ベース](instructor-base)、 インストラクター-xl、 インストラクター-ラージです。 それぞれのバージョンは、様々なエンベッディングのニーズに合わせて、異なるレベルのパフォーマンスとスケーラビリティを提供します。

instructor-xl の紹介

instructor-xlはInstructorモデルファミリーの最大のバリエーションで、大規模な自然言語処理(NLP)アプリケーションのパフォーマンスと精度と効率のバランスを取るために最適化されています。

タスクに特化した、ドメインに合わせたテキスト埋め込みを生成することができます。あらゆるタスク(分類、検索、クラスタリング、テキスト評価など)やドメイン(科学、金融など)に最適です。

instructor-base、instructor-xl、instructor-largeの比較:

| 特徴|instructor-base|instructor-large|instructor-xl|。 | ------------------- | --------------- | ---------------- | ------------- | | パラメータ・サイズ|8600万|3億3500万|15億

| 平均MTEBスコアMTEBスコア

instructor-xlモデルでベクトル埋め込みを作成する方法

ベクトル埋め込みを作成するには InstructorEmbedding ライブラリを使用することをお勧めします。

一旦ベクトル埋め込みが生成されると、Zilliz Cloud (Milvusが提供するフルマネージドベクトルデータベースサービス)に保存され、意味的類似度検索に利用することができます。以下は、4つの重要なステップである:

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

InstructorEmbeddingライブラリを介してベクトル埋め込みを生成し、意味検索のためにZilliz Cloudに挿入します。

from InstructorEmbedding import INSTRUCTOR
from pymilvus import MilvusClient

モデル = INSTRUCTOR('hkunlp/instructor-XL')

docs = [["検索のためにウィキペディアの文書を表す:", "人工知能は1956年に学問分野として設立されました。"]、
        [ウィキペディアの検索用文書を表現する:", "アラン・チューリングはAIの実質的な研究を行った最初の人物である"]]、
        [ウィキペディアの文書を検索する:", "チューリングはロンドンのマイダベールで生まれ、イングランド南部で育った。"]]。
# ドキュメントの埋め込みを生成する
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = [["ウィキペディアの質問を表現する:", "人工知能が創設されたのはいつか"]、
           ["ウィキペディアの質問を表現する:", "アラン・チューリングはどこで生まれたか?"]].
# クエリの埋め込みを生成する
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=768、
    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"])