Jina AI

Jina AI / jina-embeddings-v2-base-zh

Ein zweisprachiges (Chinesisch/Englisch) Texteinbettungstool, das bis zu 8192 Token pro Sequenz verarbeiten kann.

Einführung in Jina Embedding v2 Modelle

Jina Embeddings v2-Modelle sind für lange Dokumente mit einer erweiterten maximalen Eingabegröße von 8.192 Token ausgelegt. Ab Oktober 2024 gibt es die folgenden Varianten von Jina AI Embedding V2, die jeweils auf unterschiedliche Einbettungsanforderungen zugeschnitten sind.

Was ist jina-embeddings-v2-base-zh

jina-embeddings-v2-base-zh ist ein zweisprachiges (Chinesisch/Englisch) Texteinbettungstool, das bis zu 8192 Token pro Sequenz verarbeiten kann. Es basiert auf einer speziellen BERT-Architektur (JinaBERT) für einsprachige und zweisprachige Anwendungen.

Vergleich von jina-embeddings-v2-base-zh mit anderen Jina-Einbettungsmodellen.

ModellParametergrößeEinbettungsdimensionText
jina-embeddings-v3570Mflexible Einbettungsgröße (Standard: 1024)mehrsprachige Texteinbettungen; unterstützt insgesamt 94 Sprachen
jina-embeddings-v2-small-de33M512englische einsprachige Einbettungen
jina-embeddings-v2-base-de137M768Englische einsprachige Einbettungen
jina-embeddings-v2-base-zh161M768Chinesisch-Englisch zweisprachige Einbettungen
jina-embeddings-v2-base-de161M768Deutsch-Englisch Zweisprachige Einbettungen
jina-embeddings-v2-base-code161M768Englisch und Programmiersprachen

Wie man Einbettungen mit jina-embeddings-v2-base-zh erstellt

Es gibt zwei primäre Möglichkeiten, Vektoreinbettungen zu erzeugen:

  1. **PyMilvus: das Python-SDK für Milvus, das das Modell "jina-embeddings-v2-base-zh" nahtlos integriert.
  2. SentenceTransformer-Bibliothek: die Python-Bibliothek sentence-transformer.

Sobald die Vektoreinbettungen erstellt sind, können sie in einer Vektordatenbank wie [Zilliz Cloud] (https://zilliz.com/cloud) (eine vollständig verwaltete Vektordatenbank von Milvus) gespeichert und für die [semantische Ähnlichkeitssuche] (https://zilliz.com/glossary/semantic-search) verwendet werden.

Dies sind die vier wichtigsten Schritte:

Einbettungen über PyMilvus erstellen und in die Zilliz Cloud für die semantische Suche einfügen

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

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

docs = [
   "人工智能于1956年作为一门学术学科成立。",
   "艾伦-图灵是第一位在人工智能领域进行实质性研究的人。",
   "图灵出生于伦敦的梅达韦尔,在英格兰南部长大。"
]
# Einbettungen für Dokumente generieren
docs_embeddings = ef(docs)

queries = ["人工智能是什么时候创立的?",
          "艾伦-图灵出生在哪里?"]
# Einbettungen für Abfragen generieren
abfrage_einbettungen = ef(abfragen)

# Verbindung zur Zilliz Cloud mit öffentlichem Endpunkt und API-Schlüssel
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "Dokumente"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=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"])

Einzelheiten finden Sie in unserer [PyMilvus Embedding Model Dokumentation](Weitere Informationen finden Sie in unserer PyMilvus Embedding Model Dokumentation.).

Erstellen Sie Einbettungen über die SentenceTransformer-Bibliothek und fügen Sie sie in Zilliz Cloud für die semantische Suche ein

from sentence_transformers import SentenceTransformer
von pymilvus importieren MilvusClient

model = SentenceTransformer("jinaai/jina-embeddings-v2-base-zh", trust_remote_code=True)

docs = [
   "人工智能于1956年作为一门学术学科成立。",
   "艾伦-图灵是第一位在人工智能领域进行实质性研究的人。",
   "图灵出生于伦敦的梅达韦尔,在英格兰南部长大。"
]
# Einbettungen für Dokumente generieren
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = ["人工智能是什么时候创立的?",
          "艾伦-图灵出生在哪里?"]
# Einbettungen für Abfragen generieren
query_embeddings = model.encode(queries, normalize_embeddings=True)

# Verbindung zur Zilliz Cloud mit öffentlichem Endpunkt und API-Schlüssel
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "Dokumente"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=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"])