Jina AI

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

Ein mehrsprachiges Einbettungsmodell, das Englisch und 30 gängige Programmiersprachen versteht; kann bis zu 8192 Token pro Sequenz verarbeiten.

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-code

jina-embeddings-v2-base-code" ist ein mehrsprachiges Einbettungsmodell, das Englisch und 30 gängige Programmiersprachen versteht und Sequenzen mit einer Länge von bis zu 8192 Token unterstützt. Es nutzt eine BERT-basierte Architektur, insbesondere JinaBERT, die eine symmetrische bidirektionale Variante von ALiBi zur Verwaltung längerer Sequenzen enthält. Das Modell wurde zunächst mit dem Code-Datensatz von GitHub trainiert und dann mit der umfangreichen Sammlung von über 150 Millionen Frage-Antwort-Paaren und Docstring-Quellcode-Paaren aus verschiedenen Bereichen von Jina AI weiter verbessert.

Vergleich von jina-embeddings-v2-base-code 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-code 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-code" 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-code", trust_remote_code=True)

docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die umfangreiche 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"])

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-code", trust_remote_code=True)

docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die umfangreiche 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=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"])