46.6kデモを予約するログイン無料で始める
ジーナAI

ジーナAI / jina-embeddings-v2-base-zh

1シーケンスあたり最大8192トークンを処理できるバイリンガル(中国語/英語)テキスト埋め込みツール。

Jina Embedding v2 モデルの紹介

Jina エンベッディング v2モデルは、最大入力サイズが8,192トークンに拡張され、長い文書を扱うように設計されています。2024年10月現在、Jina AIエンベッディングV2には以下のバリエーションがあり、それぞれ異なるエンベッディングのニーズに対応しています。

#jina-embeddings-v2-base-zhとは?

jina-embeddings-v2-base-zhは、1シーケンスあたり最大8192トークンを処理することができるバイリンガル(中国語/英語)テキスト埋め込みツールです。これは、モノリンガルおよびクロスリンガルアプリケーションに特化したBERTアーキテクチャ(JinaBERTと呼ばれる)上に構築されています。

jina-embeddings-v2-base-zh`と他のJina埋め込みモデルの比較。

| モデル|パラメータサイズ|埋め込み次元|テキスト | ---------------------------- | -------------- | --------------------------------------- | ----------------------------------------------------------- | | jina-embeddings-v3 | 570M | 柔軟な埋め込みサイズ (デフォルト: 1024) | 多言語テキスト埋め込み; 計94言語対応 | jina-embeddings-v2-small-en](https://zilliz.com/ai-models/jina-embeddings-v2-small-en)|33M|512|英語モノリンガル埋め込み|jina-embeddings-v2-small-en](https://zilliz.com/ai-models/jina-embeddings-v2-small-en)|512|英語モノリンガル埋め込み | jina-embeddings-v2-base-ja | 137M | 768 | 英語のモノリンガル埋め込み || jina-embeddings-v2-base-ja | 137M | 768 | 英語のモノリンガル埋め込み | jina-embeddings-v2-base-zh | 161M | 768 | 中英二ヶ国語エンベッディング |... | jina-embeddings-v2-base-de](https://zilliz.com/ai-models/jina-embeddings-v2-base-de)|161M|768|独英対訳エンベッディング|中国語-英語 | jina-embeddings-v2-base-code](https://zilliz.com/ai-models/jina-embeddings-v2-base-code) | 161M | 768|英語とプログラミング言語|の対訳エンベッディング。

jina-embeddings-v2-base-zhを使った埋め込み作成方法

ベクトル埋め込みを生成するには、主に2つの方法があります:

1.1.PyMilvus: MilvusのPython SDKで、jina-embeddings-v2-base-zhモデルをシームレスに統合しています。 2.SentenceTransformerライブラリ**: Pythonライブラリ sentence-transformer.

ベクトル埋め込みが作成されると、Zilliz Cloud (Milvusによるフルマネージドベクトルデータベース)のようなベクトルデータベースに保存され、意味的類似度検索に使用することができる。

以下は4つの重要なステップである:

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

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

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

ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v2-base-zh", trust_remote_code=True)

docs = [
   「人工智能于1956年作为一门学术科成立、
   「艾伦-图灵是第一在人工智能领域进行实質性研究的人、
   "图灵出生于伦敦的梅达韦尔,在英格兰南部长大。"
]
# ドキュメントの埋め込みを生成する
docs_embeddings = ef(docs)

queries = ["人工智能是什么时候创立的?"、
          "艾伦-图灵出生在哪里?"]。
# クエリの埋め込みを生成する
query_embeddings = ef(queries)

# パブリックエンドポイントとAPIキーで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("jinaai/jina-embeddings-v2-base-zh", trust_remote_code=True)

docs = [
   「人工智能于1956年作为一门学术科成立、
   「艾伦-图灵是第一在人工智能领域进行实質性研究的人、
   "图灵出生于伦敦的梅达韦尔,在英格兰南部长大。"
]
# ドキュメントの埋め込みを生成する
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = ["人工智能是什么时候创立的?"、
          "艾伦-图灵出生在哪里?"].
# クエリの埋め込みを生成する
query_embeddings=model.encode(クエリ、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、
    dimension=512、
    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"])