Jina AI

Jina AI / jina-embeddings-v3

Ein mehrsprachiges Texteinbettungsmodell; unterstützt insgesamt 89 Sprachen; kann bis zu 8192 Token pro Sequenz verarbeiten.

jina-embeddings-v3 Übersicht

Das jina-embeddings-v3 Modell ist JinaAIs neu veröffentlichtes mehrsprachiges Texteinbettungstool mit 570 Millionen Parametern und einer maximalen Eingabelänge von 8192 Token. Es ist in der Lage, mehrsprachige Daten zu verarbeiten und lange Kontexte abzurufen, wobei es in 94 Sprachen die beste Leistung (SOTA) erzielt. Dieses Modell erstellt Einbettungen, die für eine Reihe von Aufgaben geeignet sind, darunter die Abfrage von Dokumenten, Clustering, [Klassifizierung] (https://zilliz.com/glossary/classification) und Textabgleich.

Jina-embeddings-v3 unterstützt auch Matryoshka-Embeddings, mit dem Sie die Größe der Ausgabeeinbettung an Ihre Bedürfnisse anpassen können. Während die Standard-Ausgabegröße 1024 beträgt, können Sie sie auf 32, 64, 128, 256, 512 oder 768 reduzieren, ohne zu viel Leistung zu verlieren, was es für verschiedene Anwendungen anpassbar macht.

Vergleichen Sie jina-embeddings-v3 mit Jina v2 Modellen:

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-v3 erstellt

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

  • PyMilvus: das Python-SDK für Milvus, das das Modell jina-embeddings-v3 nahtlos integriert.
  • SentenceTransformer-Bibliothek: die Python-Bibliothek sentence-transformer.

Sobald die Vektoreinbettungen generiert sind, können sie in der Zilliz Cloud (ein vollständig verwalteter Vektordatenbankdienst, der von Milvus betrieben wird) gespeichert und für die semantische Ähnlichkeitssuche 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-v3", trust_remote_code=True)

docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die substantielle Forschungen im Bereich der KI durchführte.",
   "Geboren in Maida Vale, London, wuchs Turing in Südengland auf."
]
# Einbettungen für Dokumente generieren
docs_embeddings = ef(docs)

queries = ["Wann wurde die künstliche Intelligenz erfunden",
          "Wo wurde Alan Turing geboren?"]
# 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"])

Weitere Details finden Sie auf dieser Jina AI Dokumentationsseite.

Erstellen Sie Einbettungen über Sentence Transformer und fügen Sie sie in die Zilliz Cloud für die semantische Suche ein.

from sentence_transformers import SentenceTransformer
von pymilvus importieren MilvusClient

model = SentenceTransformer("jinaai/jina-embeddings-v3", trust_remote_code=True)

docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die substantielle Forschungen im Bereich der KI durchführte.",
   "Geboren in Maida Vale, London, wuchs Turing in Südengland auf."
]
# Einbettungen für Dokumente generieren
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = ["query: Wann wurde die künstliche Intelligenz gegründet",
           "query: Wo wurde Alan Turing geboren?" ]
# Einbettungen für Abfragen generieren
abfrage_einbettungen = model.encode(abfragen, normalize_einbettungen=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"])

Weitere Lektüre