Training von Text-Embeddings mit Jina AI
Kürzlich hörten wir von Bo Wang beim Berlin Unstructured Data Meetup über das Training modernster allgemeiner Text-Embeddings. Text-Embeddings treiben bereits moderne Vektorsuche und Retrieval-Augmented-Generation-(RAG)-Systeme an. Wang hilft uns, die Feinheiten der Entwicklung modernster Text-Embeddings zu verstehen, mit dem Schwerpunkt auf Jina-Embeddings.
Sehen Sie sich die Aufzeichnung von Bo Wangs Vortrag auf Youtube an
Warum sollten Sie sich für Jina-Text-Embeddings interessieren?
Die Veröffentlichung von Jina-Embeddings-V2 sorgte in der KI-Community für Aufsehen und verzeichnete über 3 Millionen Downloads auf Hugging Face. Dieses Modell wurde in zahlreiche KI-Frameworks wie LangChain und LlamaIndex sowie in Vektordatenbanken wie Milvus und Zilliz Cloud integriert. Der Hype um Jina-Embeddings erreichte sogar die Spitze von Hacker News und löste umfangreiche Debatten und Diskussionen über Long-Context-Encoder aus. Jina-Embeddings konkurrieren eng mit OpenAI-Embeddings, einem der besten der Branche.
Vor diesem Hintergrund wollen wir uns mit Wangs Vortrag über die Feinheiten der Entwicklung von Jina-Text-Embeddings befassen.
Entwicklung vom Fine-Tuning zum Training von Embedding-Modellen in großem Maßstab
Jina AI begann nicht damit, sein eigenes Embedding-Modell zu trainieren. Stattdessen begann es damit, bereits existierende Modelle wie BERT feinzujustieren. Die feinjustierten Modelle schnitten besser ab als die bestehenden. Werfen wir einen Blick auf die Statistiken. Der Delta-Wert am Ende stellt dar, wie gut das feinjustierte Modell im Vergleich zum ursprünglichen vortrainierten Modell abschneidet.
Leistungsvergleich zwischen vortrainierten und feinjustierten Modellen
Wie Sie sehen können, verbesserten sich alle feinjustierten Modelle deutlich, was darauf hindeutet, dass der Algorithmus gut funktionierte. Aber wurde das Produkt von der Tech-Branche gut aufgenommen? Die einfache Antwort lautet: nein.
Zu diesem Zeitpunkt bewegte sich die Branche, sogar die Suchbranche, langsam in Richtung Vektoren und hatte gerade erst begonnen, vortrainierte Embedding-Modelle zu verwenden. Sie war jedoch noch nicht bereit für das Fine-Tuning von Embedding-Modellen. Embedding-Modelle waren auch in anderen Branchen nicht weit verbreitet, da es weder LLMs noch RAG-Systeme gab.
Während Fine-Tuning es Jina AI also ermöglichte, schrittweise Verbesserungen zu erzielen, erkannten sie bald, dass die Branche auf Fine-Tuning-Techniken nicht vorbereitet war. Diese Erkenntnis veranlasste sie, ein ehrgeiziges Unterfangen zu starten: ihr Embedding-Modell von Grund auf neu zu trainieren. Sie glaubten, dass die Entwicklung einer hauseigenen Lösung es ihnen ermöglichen würde, die Grenzen des Möglichen zu erweitern.
Erstellung von Jina-Embeddings-V1
Die Erstellung von Jina-Embeddings-V1 umfasste einen umfassenden Ansatz. Wang führt uns durch den verwendeten Ansatz:
Recherche zu modernsten Modellen: Der erste Schritt besteht darin, hochmoderne Embedding-Modelle zu untersuchen, darunter minilm, mpnet, sentence-t5, GTR und instructors von Technologieriesen wie Microsoft und Google. Dieser Ansatz hilft dabei, die Stärken und Grenzen bestehender Lösungen zu verstehen und die Bereiche zu identifizieren, die verbessert werden müssen.
Sammeln eines riesigen Trainingsdatensatzes: Der nächste Schritt besteht darin, einen riesigen Datensatz zusammenzustellen. Jina AI verwendete 2 Milliarden Datensätze englischer Trainingsdaten. Dieser massive Korpus ist entscheidend für das Training eines hochwertigen, allgemeinen Embedding-Modells, das in der Lage ist, ein breites Spektrum an Aufgaben und Domänen zu bewältigen.
Umfangreiche Datenbereinigung und -kuratierung: Um die Qualität der Trainingsdaten sicherzustellen, werden umfangreiche Prozesse zur Datenbereinigung und -kuratierung durchgeführt, darunter Deduplizierung, Spracherkennung und Qualitätsfilterung. Nach diesem strengen Prozess blieben Jina AI 400 Millionen hochwertige Pre-Training-Datensätze und 5 Millionen Zeilen von menschlich annotierten Fine-Tuning-Daten.
Refactoring für verteiltes Training: Jina AI refaktorisierte seine Finetuner-Codebasis, um effizientes großskaliges Modelltraining zu ermöglichen und verteiltes Training über mehrere Knoten und GPUs hinweg zu unterstützen. Diese skalierbare Infrastruktur ist entscheidend für das Training von Modellen auf einem derart riesigen Datensatz.
Das Modell war ein Erfolg, hob sich jedoch nicht von allen anderen Modellen in der Branche ab, da es eine begrenzte Kontextlänge hatte. Um diese Einschränkung zu beheben, trainierte Jina AI Jina-Embeddings-V2.
Einführung von Jina-Embeddings-V2: Kurz trainieren, lang inferieren
Um die 512-Token-Barriere zu überwinden und ihr Ziel zu erreichen, längere Sequenzen zu verarbeiten, stellt Jina AI Jina-Embeddings-V2 vor, ein Embedding-Modell, das während der Inferenz Sequenzen von bis zu 8.192 Tokens verarbeiten kann, während es auf kürzeren Sequenzen trainiert wird. Dies wird durch mehrere zentrale Modifikationen erreicht. Wang geht diese Modifikationen im Schnelldurchlauf durch. Lassen Sie uns tief eintauchen:
Entfernen von Positions-Embedding
Traditionelle Transformer-Modelle, einschließlich BERT, verlassen sich auf Positions-Embeddings, um die Reihenfolge der Tokens innerhalb einer Sequenz zu kodieren. Diese Positions-Embeddings sind feste Vektoren, die die Position jedes Tokens relativ zu anderen darstellen. Sie haben jedoch Einschränkungen:
- Kontextlänge: Positions-Embeddings beschränken das Kontextfenster auf eine feste Größe (z. B. 512 Tokens in BERT). Längere Dokumente oder Sequenzen überschreiten diese Grenze, was zu Informationsverlust führt. Sehen Sie, wie die Perplexität bei BERT-Modellen in die Höhe schnellt, wenn Sie 512 Tokens überschreiten, was bedeutet, dass es zu Informationsverlust kommt. Perplexität misst, wie gut das Modell die Semantik des Textes verstehen kann. Je niedriger die Perplexität, desto besser.
Inferenz-Sequenzlänge vs. Perplexität bei BERT
- Positionale Einschränkungen: Tokens an weit entfernten Positionen erhalten ähnliche Embeddings, wodurch ihr Kontext ignoriert wird.
Jina-Embeddings-V2 entfernt Positions-Embeddings vollständig, sodass es längere Sequenzen ohne positionale Einschränkungen verarbeiten kann. Das Modell erfasst Kontext über umfangreiche Dokumente hinweg und eignet sich damit für Dokumentzusammenfassung, juristische Analyse und das Verständnis von Langform-Inhalten.
Attention with Linear Biases (ALiBi)
ALiBi ist eine Technik, die für große Sprachmodelle entwickelt wurde. Anstatt sich auf feste Positions-Embeddings zu verlassen, erfasst ALiBi Informationen zur Wortreihenfolge dynamisch während der Attention-Berechnungen. Anschließend passt es sich an den Kontext jedes Tokens an, sodass es sowohl vorhergehende als auch nachfolgende Tokens ohne positionale Einschränkungen berücksichtigen kann.
Auswirkung auf Embeddings: ALiBi verbessert das Kontextverständnis, selbst in langen Texten. Es ermöglicht Jina-Embeddings-V2, reichhaltige semantische Beziehungen zwischen Tokens zu erfassen, unabhängig von ihrer Position.
Anpassung von ALiBi für bidirektionale Transformer
Bidirektionales Verständnis ist entscheidend für Aufgaben wie Fragenbeantwortung, Zusammenfassung und semantische Suche. So erreicht Jina-Embeddings-V2 dies:
Konzept: ALiBi wurde ursprünglich für Decoder-only-Modelle entwickelt. Jina AI erweitert es auf bidirektionale Architekturen wie BERT.
Bidirektionaler Kontext: Jina-Embeddings-V2 berücksichtigt sowohl linken als auch rechten Kontext und erfasst Abhängigkeiten über die gesamte Sequenz hinweg.
Auswirkung auf Embeddings: Das Modell glänzt bei Aufgaben, bei denen das Verständnis des Kontexts in beide Richtungen wichtig ist. Beispielsweise profitiert die semantische Suche von bidirektionalen Embeddings, da sie die gleichzeitige Analyse von Nutzeranfragen und Dokumentinhalten erfordert.
BERT von Grund auf neu trainieren
Jina AI hat BERT mit fortschrittlichen Techniken neu trainiert, was zu JinaBERT führte, das als Rückgrat für Jina-Embeddings-V2 dient:
Konzept: Jina AI wendet verschiedene Tricks an, darunter Whole Word Masking, RoBERTa-Rezept, GeGLU-Aktivierungen und aggressives Masking.
ALiBi-Unterstützung: JinaBERT wird mit ALiBi trainiert, was eine dynamische Kontextmodellierung gewährleistet.
Auswirkung auf Embeddings: Jina-Embeddings-V2 profitiert von einem robusten Rückgrat, das vielfältige Aufgaben bewältigen kann. Es fasst lange Artikel zusammen, extrahiert wesentliche Informationen und bewahrt die Kontextintegrität.
Die beibehaltene JinaBERT-Perplexität bleibt niedrig, selbst wenn das Limit von 512 Tokens überschritten wird. Dank der Entfernung von positional embeddings und der Anpassung von AliBi. Werfen Sie einen Blick auf das neue Diagramm, in dem BERT und JinaBERT verglichen werden:
Inferenzsequenzlänge vs. Perplexität bei JinaBERT und BERT
Sprachen überbrücken: Zweisprachige Embeddings
Da Jina AI die Einschränkungen bestehender multilingualer Embedding-Modelle erkannte, die sich oft stark auf englische Trainingsdaten stützen, begann das Unternehmen mit der Entwicklung zweisprachiger Embeddings. Ihr Ziel ist es, Modelle zu erstellen, die mehrere Sprachen und sprachübergreifende Beziehungen zwischen ihnen verarbeiten können.
Jina AIs Ansatz für zweisprachige Embeddings weicht von der Norm ab. Die meisten multilingualen Modelle, wie Multilingual BERT und Multilingual E5, leiden unter einer erheblichen Schieflage in der Verteilung ihrer Trainingsdaten. Zum Beispiel hat das beliebte Modell Multilingual E5 91,5 % seiner Trainingsdaten auf Englisch, nur 4,2 % auf Chinesisch und insgesamt 4,3 % in anderen Sprachen.
Multilingual E5 vs. Jina Embedding v2 bei vortrainierten multilingualen Daten
Im Gegensatz dazu weist Jina AIs Modell Jina-Embeddings-V2-Based-German eine ausgewogene Verteilung der Trainingsdaten von 50 % Englisch und 50 % Deutsch auf. Diese sprachübergreifenden Daten sind speziell darauf ausgelegt, das Verständnis des Modells für die Ähnlichkeiten und Beziehungen zwischen den beiden Sprachen zu verbessern.
Obwohl Jina-Embeddings-V2-Based-German kleiner ist als die multilingualen Modelle, übertrifft es seine Konkurrenten durchweg und erzielt höhere Punktzahlen bei Deutsch-zu-Deutsch-, Deutsch-zu-Englisch- und Englisch-zu-Deutsch-Suchaufgaben.
Vergleich der Suchleistung zwischen verschiedenen Embedding-Modellen
Die Ergebnisse zeigen die Überlegenheit der zweisprachigen Embeddings von Jina AI gegenüber beliebten multilingualen Modellen wie Multilingual E5 und Cohere Embed V3, sowohl bei monolingualen als auch bei sprachübergreifenden Suchaufgaben.
Was beim Erstellen von RAG-Anwendungen mit Jina-Embeddings-V2 zu beachten ist
Bei der Entwicklung von Retrieval-Augmented-Generation-(RAG)-Anwendungen mit Jina-Embeddings-V2 ist es wichtig zu verstehen, wie das Modell Dokumente unterschiedlicher Länge und die Positionierung relevanter Informationen innerhalb dieser Dokumente verarbeitet. Bo Wang hob mehrere wichtige Überlegungen hervor:
Kurze Dokumente: Wenn Ihre Dokumente immer kleiner als 512 Tokens sind, ist Jina-Embeddings-V2 vergleichbar leistungsfähig wie andere durchschnittliche Encoder wie E5 oder BGE.
Lange Dokumente (frühe Informationen): Wenn Ihre Dokumente länger als 512 Tokens sind, die relevanten Informationen sich aber am Anfang befinden, könnte Jina-Embeddings-V2 schlechter abschneiden.
Lange Dokumente (spätere Informationen): Wenn Ihre Dokumente länger als 512 Tokens sind und die relevanten Informationen sich in der Mitte oder am Ende befinden, steigert Jina-Embeddings-V2 die Suchleistung erheblich.
Jina-AI-Integration mit Milvus Vector Database
Sowohl Vektordatenbanken als auch Embedding-Modelle sind unverzichtbar für den Aufbau effizienter Information-Retrieval-Systeme und RAG-Anwendungen. Diese Komponenten werden häufig integriert, um Vektorähnlichkeitssuche und Retrieval-Aufgaben durchzuführen.
Milvus ist eine Open-Source-Vektordatenbank, die dafür entwickelt wurde, Vektor-Embeddings im Milliardenmaßstab effizient zu speichern und abzurufen. Kürzlich wurden Jina-Embeddings in die PyMilvus-Modellbibliothek integriert, wodurch die Entwicklung von RAG- oder anderen GenAI-Anwendungen vereinfacht wird, da keine zusätzlichen Embedding-Komponenten mehr erforderlich sind.
Die jüngste Einführung von Milvus Lite, einer leichtgewichtigen Version von Milvus, hat diesen Prozess weiter vereinfacht. Milvus Lite verfügt über dieselbe API wie die Vollversion von Milvus, die auf Docker oder Kubernetes bereitgestellt wird, kann jedoch einfach über einen einzeiligen pip-Befehl installiert werden, ohne einen Server einzurichten. Es eignet sich ideal für Prototyping und kann nahtlos auf verschiedene Milvus-Bereitstellungen umgestellt werden, wenn Ihre Anforderungen wachsen.
Weitere Informationen zu dieser Integration finden Sie in den folgenden Ressourcen:
Milvus-Dokumentation: Milvus mit Jina-Embeddings integrieren
Blog: Implementing a Chat History RAG with Jina AI and Milvus Lite
Ausblick: Jina-Embeddings-V3
Das Team von Jina AI arbeitet bereits an Jina-Embeddings-V3, das noch mehr Fortschritte verspricht:
Geschwindigkeit und Effizienz: Jina-Embeddings-V3 wird schneller und speichereffizienter sein, insbesondere bei längeren Sequenzen.
Mehrsprachige Unterstützung: Die neue Version wird eine optimierte Sprachverteilung und eine bessere Handhabung mehrsprachiger Daten bieten.
Lösung realer Probleme: Jina-Embeddings-V3 wird reale Probleme mit kompressiver Fehleranalyse bei V2 und anderen Embedding-Modellen angehen.
Aufgabenspezifische Verbesserungen: Es wird sorgfältig gestaltete Aufgabenanweisungen und Task Heads sowie intelligentes Routing enthalten, um verschiedene Aufgaben besser zu bewältigen.
Chunk- und Schema-Bewusstsein: Das Modell wird chunk-aware und schema-aware sein, wodurch sein Verständnis von halbstrukturierten Daten und hierarchischen Embeddings verbessert wird.
Zusammenfassung
Jina-Embedding-Modelle zeichnen sich durch hohe Leistung aus und verfügen über ein Eingabefenster mit 8192 Token Länge, das bei der umfassenden Datenrepräsentation überzeugt. Mit mehrsprachiger Unterstützung und nahtloser Integration in führende Plattformen wie OpenAI sind diese Embeddings ideal für sprachübergreifende Anwendungen.
Embedding-Modelle und Vektordatenbanken sind für effiziente Ähnlichkeitssuche und Informationsabruf unerlässlich. Durch die Integration von Jina-Embedding-Modellen mit PyMilvus, dem Python-SDK für Milvus, wird die Entwicklung von RAG und verschiedenen GenAI-Anwendungen effizienter und unkomplizierter.
In einem kürzlich gehaltenen Vortrag von Bo Wang besprach er die Erstellung von Jina-Text-Embeddings für moderne Vektorsuche und RAG-Systeme. Außerdem teilte er Methoden zum Trainieren von Embedding-Modellen, die umfangreiche Informationen effektiv codieren, sowie Hinweise zur Auswahl der am besten geeigneten Embedding-Modelle für verschiedene geschäftliche Anforderungen.
Weitere Details finden Sie, wenn Sie die Aufzeichnung von Bo Wangs Vortrag auf Youtube ansehen.
Weiterlesen

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.


