Pressemitteilungen
Modelle
Produkte
keyboard_arrow_down
DeepSearch
Suchen, lesen und überlegen, bis die beste Antwort gefunden ist.
Leser
Lesen Sie URLs und suchen Sie im Internet nach fundierteren LLMs.
Einbettungen
Multimodale und mehrsprachige Einbettungen von Weltklasse.
Reranker
Neural Retriever der Weltklasse zur Maximierung der Suchrelevanz.
Mehr
keyboard_arrow_down
Klassifikator
Zero-Shot- und Few-Shot-Klassifizierung für Bild und Text.
Segmentierer
Schneiden Sie langen Text in Abschnitte und führen Sie eine Tokenisierung durch.

API-Dokumente
Automatische Codegenerierung für Ihre Copilot-IDE oder LLM
open_in_new


Unternehmen
keyboard_arrow_down
Über uns
Kontaktieren Sie unseren Vertrieb
Praktikantenprogramm
Begleiten Sie uns
open_in_new
Logo herunterladen
open_in_new
Terms & amp; Bedingungen


Einloggen
login
Late Chunking für Kontextverlust
Late Chunking ist widerstandsfähig gegen schlechte Grenzhinweise
Late Chunking ist bidirektional
Late Chunking kann trainiert werden
Late Chunking vs. Contextual Retrieval
Welche Embedding-Modelle unterstützen Late Chunking?
Fazit
Tech-Blog
Oktober 03, 2024

Was Late Chunking wirklich ist & was nicht: Teil II

Teil 2 unserer Untersuchung zum Late Chunking - ein tiefer Einblick, warum es die beste Methode für Chunk-Embeddings und die Verbesserung der Such- und RAG-Performance ist.
Slide depicting the "Late Chunking" process, with flow charts and a model highlighting the transition from a "Long Document"
Han Xiao
Han Xiao • 9 Minuten gelesen
💡
Es wird dringend empfohlen, zuerst Teil I zu lesen, da dieser Artikel eine tiefergehende Sicht bietet und sich auf häufige Missverständnisse und Vergleiche konzentriert. Empfohlene Lesereihenfolge: Teil I, Teil II, Forschungspapier.
Late Chunking: Contextual Chunk Embeddings Using Long-Context Embedding Models
Many use cases require retrieving smaller portions of text, and dense vector-based retrieval systems often perform better with shorter text segments, as the semantics are less likely to be over-compressed in the embeddings. Consequently, practitioners often split text documents into smaller chunks and encode them separately. However, chunk embeddings created in this way can lose contextual information from surrounding chunks, resulting in sub-optimal representations. In this paper, we introduce a novel method called late chunking, which leverages long context embedding models to first embed all tokens of the long text, with chunking applied after the transformer model and just before mean pooling - hence the term late in its naming. The resulting chunk embeddings capture the full contextual information, leading to superior results across various retrieval tasks. The method is generic enough to be applied to a wide range of long-context embedding models and works without additional training. To further increase the effectiveness of late chunking, we propose a dedicated fine-tuning approach for embedding models.
arXiv.orgMichael Günther

Das Chunking eines langen Dokuments hat zwei Probleme: Erstens die Bestimmung der Trennpunkte – d. h. wie das Dokument segmentiert werden soll. Man könnte feste Token-Längen, eine feste Anzahl von Sätzen oder fortgeschrittenere Techniken wie Regex oder semantische Segmentierungsmodelle in Betracht ziehen. Präzise Chunk-Grenzen verbessern nicht nur die Lesbarkeit der Suchergebnisse, sondern stellen auch sicher, dass die Chunks, die einem LLM in einem RAG-System zugeführt werden, präzise und ausreichend sind – nicht mehr und nicht weniger.

Das zweite Problem ist der Kontextverlust innerhalb jedes Chunks. Sobald das Dokument segmentiert ist, besteht der nächste logische Schritt für die meisten darin, jeden Chunk separat in einem Batch-Prozess einzubetten. Dies führt jedoch zu einem Verlust des globalen Kontexts aus dem ursprünglichen Dokument. Viele frühere Arbeiten haben sich zuerst mit dem ersten Problem befasst und argumentiert, dass eine bessere Grenzerkennung die semantische Repräsentation verbessert. Zum Beispiel gruppiert "semantisches Chunking" Sätze mit hoher Cosinus-Ähnlichkeit im Embedding-Space, um die Störung semantischer Einheiten zu minimieren.

Aus unserer Sicht sind diese beiden Probleme fast orthogonal und können separat angegangen werden. Wenn wir priorisieren müssten, würden wir sagen, dass das zweite Problem kritischer ist.

Problem 2: Kontextuelle Information
Erhalten Verloren
Problem 1: Trennpunkte Gut Ideales Szenario Schlechte Suchergebnisse
Schlecht Gute Suchergebnisse, aber Ergebnisse könnten für Menschen schwer lesbar oder für LLM-Reasoning ungeeignet sein Schlimmstes Szenario

tagLate Chunking für Kontextverlust

Late Chunking beginnt damit, das zweite Problem anzugehen: den Verlust des Kontexts. Es geht nicht darum, die idealen Trennpunkte oder semantischen Grenzen zu finden. Man muss immer noch Regex, Heuristiken oder andere Techniken verwenden, um ein langes Dokument in kleine Chunks zu unterteilen. Aber anstatt jeden Chunk sofort nach der Segmentierung einzubetten, codiert Late Chunking zunächst das gesamte Dokument in einem Kontextfenster (für jina-embeddings-v3 sind es 8192 Token). Dann folgt es den Grenzhinweisen, um Mean Pooling für jeden Chunk anzuwenden – daher der Begriff "late" (spät) im Late Chunking.

Diagram comparing "Naive Chunking" and "Late Chunking" methods for processing long documents with labeled steps.
Late Chunking benötigt immer noch Grenzhinweise, aber der entscheidende Unterschied liegt darin, wann diese Hinweise verwendet werden. Beim Late Chunking werden die Hinweise erst angewendet, nachdem das gesamte Dokument eingebettet wurde, und sie werden verwendet, um die Pooling-Spanne zu bestimmen.

tagLate Chunking ist widerstandsfähig gegen schlechte Grenzhinweise

Was wirklich interessant ist: Experimente zeigen, dass Late Chunking die Notwendigkeit perfekter semantischer Grenzen eliminiert, was teilweise das erste oben erwähnte Problem löst. Tatsächlich übertrifft Late Chunking mit festen Token-Grenzen das naive Chunking mit semantischen Grenzhinweisen. Einfache Segmentierungsmodelle, wie solche mit festen Längengrenzen, schneiden in Verbindung mit Late Chunking genauso gut ab wie fortgeschrittene Grenzerkennungsalgorithmen. Wir haben drei verschiedene Größen von Embedding-Modellen getestet, und die Ergebnisse zeigen, dass alle von ihnen über alle Testdatensätze hinweg konsistent von Late Chunking profitieren. Allerdings bleibt das Embedding-Modell selbst der wichtigste Faktor für die Leistung – es gibt keinen einzigen Fall, in dem ein schwächeres Modell mit Late Chunking ein stärkeres Modell ohne Late Chunking übertrifft.

Scatter plot chart showing the percentage of relative improvements across various models against a baseline, with a vertical
Relative Verbesserung des Retrievals gegenüber der Baseline (d. h. jina-embeddings-v2-small mit festen Token-Längen-Grenzhinweisen und naivem Chunking). Als Teil einer Ablationsstudie testeten wir Late Chunking mit verschiedenen Grenzhinweisen (feste Token-Länge, Satzgrenzen und semantische Grenzen) und verschiedenen Modellen (jina-embeddings-v2-small, nomic-v1 und jina-embeddings-v3). Basierend auf ihrer Leistung bei MTEB ist die Rangfolge dieser drei Embedding-Modelle: jina-embeddings-v2-small < nomic-v1 < jina-embeddings-v3. Der Fokus dieses Experiments liegt jedoch nicht darauf, die Leistung der Embedding-Modelle selbst zu bewerten, sondern zu verstehen, wie ein besseres Embedding-Modell mit Late Chunking und Boundary Cues interagiert. Für Details zum Experiment verweisen wir auf unser Forschungspapier.
Combo SciFact NFCorpus FiQA TRECCOVID
Baseline 64.2 23.5 33.3 63.4
Late 66.1 30.0 33.8 64.7
Nomic 70.7 35.3 37.0 72.9
Jv3 71.8 35.6 46.3 73.0
Late + Nomic 70.6 35.3 38.3 75.0
Late + Jv3 73.2 36.7 47.6 77.2
SentBound 64.7 28.3 30.4 66.5
Late + SentBound 65.2 30.0 33.9 66.6
Nomic + SentBound 70.4 35.3 34.8 74.3
Jv3 + SentBound 71.4 35.8 43.7 72.4
Late + Nomic + SentBound 70.5 35.3 36.9 76.1
Late + Jv3 + SentBound 72.4 36.6 47.6 76.2
SemanticBound 64.3 27.4 30.3 66.2
Late + SemanticBound 65.0 29.3 33.7 66.3
Nomic + SemanticBound 70.4 35.3 34.8 74.3
Jv3 + SemanticBound 71.2 36.1 44.0 74.7
Late + Nomic + SemanticBound 70.5 36.9 36.9 76.1
Late + Jv3 + SemanticBound 72.4 36.6 47.6 76.2

Beachten Sie, dass Widerstandsfähigkeit gegenüber schlechten Grenzen nicht bedeutet, dass wir sie ignorieren können – sie sind immer noch wichtig für die Lesbarkeit sowohl für Menschen als auch LLMs. Unsere Sichtweise ist: Bei der Optimierung der Segmentierung, also dem zuvor genannten 1. Problem, können wir uns vollständig auf die Lesbarkeit konzentrieren, ohne uns Sorgen um semantischen/kontextuellen Verlust zu machen. Late Chunking kommt mit guten oder schlechten Breakpoints zurecht, sodass Sie sich nur um die Lesbarkeit kümmern müssen.

tagLate Chunking ist bidirektional

Ein weiteres häufiges Missverständnis über Late Chunking ist, dass seine bedingten Chunk-Embeddings nur von vorherigen Chunks abhängen, ohne "nach vorne zu schauen". Dies ist falsch. Die bedingte Abhängigkeit in Late Chunking ist tatsächlich bi-direktional, nicht uni-direktional. Der Grund dafür ist, dass die Aufmerksamkeitsmatrix im Embedding-Modell – einem reinen Encoder-Transformer – vollständig verbunden ist, anders als die maskierte Dreiecksmatrix in auto-regressiven Modellen. Formal ausgedrückt: Das Embedding von Chunk kkk, vk∼Q(ck∣D)v_k \sim Q(c_k|D)vk​∼Q(ck​∣D), statt vk∼Q(ck∣c1,c2,⋯ ,ck−1)v_k \sim Q(c_k | c_1, c_2, \cdots, c_{k-1})vk​∼Q(ck​∣c1​,c2​,⋯,ck−1​), wobei QQQ eine Faktorisierung des Sprachmodells bezeichnet. Dies erklärt auch, warum Late Chunking nicht von der genauen Platzierung der Grenzen abhängt.

Diagramme eines Transformer-Modells mit detailliertem Encoder links und Decoder rechts, beschriftet mit Tokens, Embeddings,
Anders als Decoder-only Modelle mit maskierter Selbstaufmerksamkeit sind Embedding-Modelle typischerweise Encoder-only mit einer vollständigen Aufmerksamkeitsmatrix. Das bedeutet, dass jedes Token-Embedding von allen anderen Tokens innerhalb desselben Kontextfensters abhängig ist, was im Fall von jina-embeddings-v3, bis zu 8191 andere Tokens einschließt. Folglich trägt das Chunk-Embedding globale Kontextinformationen in beide Richtungen.

tagLate Chunking kann trainiert werden

Late Chunking erfordert kein zusätzliches Training für Embedding-Modelle. Es kann auf jedes Embedding-Modell mit langem Kontext angewendet werden, das Mean Pooling verwendet, was es für Praktiker sehr attraktiv macht. Wenn Sie allerdings an Aufgaben wie Frage-Antwort oder Query-Dokument-Retrieval arbeiten, kann die Leistung durch Fine-tuning noch weiter verbessert werden. Konkret besteht das Trainingsdatum aus Tupeln, die Folgendes enthalten:

  • Eine Query (z.B. eine Frage oder ein Suchbegriff)
  • Ein Dokument, das relevante Informationen zur Beantwortung der Query enthält
  • Eine relevante Textpassage innerhalb des Dokuments, die den spezifischen Textabschnitt darstellt, der die Query direkt beantwortet

Das Modell wird trainiert, indem Queries mit ihren relevanten Textpassagen gepaart werden, unter Verwendung einer kontrastiven Verlustfunktion wie InfoNCE. Dies stellt sicher, dass relevante Textpassagen im Embedding-Raum eng mit der Query ausgerichtet sind, während nicht verwandte Passagen weiter entfernt werden. Dadurch lernt das Modell, sich bei der Generierung von Chunk-Embeddings auf die relevantesten Teile des Dokuments zu konzentrieren. Weitere Details finden Sie in unserem Forschungspapier.

tagLate Chunking vs. Contextual Retrieval

Einführung in Contextual Retrieval
Anthropic ist ein KI-Sicherheits- und Forschungsunternehmen, das daran arbeitet, zuverlässige, interpretierbare und steuerbare KI-Systeme zu entwickeln.

Kurz nach der Einführung von Late Chunking stellte Anthropic eine separate Strategie namens Contextual Retrieval vor. Anthropics Methode ist ein Brute-Force-Ansatz zur Lösung des Problems des verlorenen Kontexts und funktioniert wie folgt:

  1. Jeder Chunk wird zusammen mit dem vollständigen Dokument an das LLM gesendet
  2. Das LLM fügt jedem Chunk relevanten Kontext hinzu
  3. Dies führt zu reichhaltigeren und informativeren Embeddings

Unserer Ansicht nach ist dies im Wesentlichen Kontextanreicherung, bei der globaler Kontext explizit mittels eines LLM in jeden Chunk eincodiert wird, was in Bezug auf Kosten, Zeit und Speicherplatz teuer ist. Außerdem ist unklar, ob dieser Ansatz widerstandsfähig gegenüber Chunk-Grenzen ist, da das LLM auf genaue und lesbare Chunks angewiesen ist, um den Kontext effektiv anzureichern. Im Gegensatz dazu ist Late Chunking, wie oben gezeigt, hochgradig widerstandsfähig gegenüber Boundary Cues. Es erfordert keinen zusätzlichen Speicherplatz, da die Embedding-Größe gleich bleibt. Obwohl es die volle Kontextlänge des Embedding-Modells nutzt, ist es immer noch deutlich schneller als die Verwendung eines LLM zur Generierung von Anreicherungen. In der qualitativen Studie unseres Forschungspapiers zeigen wir, dass Anthropics Context Retrieval ähnlich wie Late Chunking funktioniert. Late Chunking bietet jedoch eine grundlegendere, generischere und natürlichere Lösung, indem es die inhärenten Mechanismen des Encoder-only Transformers nutzt.

tagWelche Embedding-Modelle unterstützen Late Chunking?

Late Chunking ist nicht exklusiv für jina-embeddings-v3 oder v2. Es ist ein ziemlich generischer Ansatz, der auf jedes Embedding-Modell mit langem Kontext angewendet werden kann, das Mean Pooling verwendet. Zum Beispiel zeigen wir in diesem Beitrag, dass auch nomic-v1 es unterstützt. Wir begrüßen alle Embedding-Anbieter herzlich, die Unterstützung für Late Chunking in ihren Lösungen zu implementieren.

Als Modellanwender können Sie diese Schritte befolgen, um zu prüfen, ob ein neues Embedding-Modell oder eine API Late Chunking unterstützen könnte:

  1. Single Output: Liefert das Modell/die API nur ein finales Embedding pro Satz anstelle von Token-Level-Embeddings? Falls ja, dann kann es wahrscheinlich kein Late Chunking unterstützen (besonders bei Web-APIs).
  2. Long-Context Support: Kann das Modell/die API Kontexte von mindestens 8192 Tokens verarbeiten? Falls nein, ist Late Chunking nicht anwendbar – oder genauer gesagt, es macht keinen Sinn, Late Chunking für ein Modell mit kurzem Kontext zu adaptieren. Falls ja, stellen Sie sicher, dass es tatsächlich gut mit langen Kontexten funktioniert und nicht nur behauptet, diese zu unterstützen. Diese Informationen finden Sie normalerweise im technischen Bericht des Modells, wie etwa in Evaluierungen auf LongMTEB oder anderen Long-Context-Benchmarks.
  3. Mean Pooling: Prüfen Sie bei selbst gehosteten Modellen oder APIs, die Token-Level-Embeddings vor dem Pooling bereitstellen, ob die Standard-Pooling-Methode Mean Pooling ist. Modelle, die CLS oder Max Pooling verwenden, sind nicht kompatibel mit Late Chunking.

Zusammenfassend lässt sich sagen, wenn ein Embedding-Modell Long-Context unterstützt und standardmäßig Mean Pooling verwendet, kann es problemlos Late Chunking unterstützen. Schauen Sie sich unser GitHub-Repository für Implementierungsdetails und weitere Diskussionen an.

tagFazit

Was ist also Late Chunking? Late Chunking ist eine unkomplizierte Methode zur Generierung von Chunk-Embeddings unter Verwendung von Long-Context-Embedding-Modellen. Es ist schnell, unempfindlich gegenüber Boundary-Cues und hocheffektiv. Es ist keine Heuristik oder Over-Engineering – es ist ein durchdachtes Design, das auf einem tiefen Verständnis des Transformer-Mechanismus basiert.

Der Hype um LLMs ist heute unbestreitbar. In vielen Fällen werden Probleme, die effizient von kleineren Modellen wie BERT gelöst werden könnten, stattdessen an LLMs weitergegeben, getrieben von der Anziehungskraft größerer, komplexerer Lösungen. Es ist keine Überraschung, dass große LLM-Anbieter für eine stärkere Nutzung ihrer Modelle werben, während Embedding-Anbieter für Embeddings eintreten – beide spielen ihre kommerziellen Stärken aus. Aber letztendlich geht es nicht um den Hype, sondern um das Handeln, darum, was wirklich funktioniert. Lassen Sie die Community, die Industrie und vor allem die Zeit zeigen, welcher Ansatz wirklich schlanker, effizienter und nachhaltiger ist.

Lesen Sie unbedingt unser Forschungspapier, und wir ermutigen Sie, Late Chunking in verschiedenen Szenarien zu testen und uns Ihr Feedback mitzuteilen.

Kategorien:
Tech-Blog
rss_feed
Büros
location_on
Sunnyvale, Kalifornien
710 Lakeway Dr, Ste 200, Sunnyvale, CA 94085, USA
location_on
Berlin, Deutschland (Hauptsitz)
Prinzessinnenstraße 19-20, 10969 Berlin, Deutschland
location_on
Peking, China
Ebene 5, Gebäude 6, Nr. 48 Haidian West St. Peking, China
location_on
Shenzhen, China
402 Etage 4, Fu'an Technology Building, Shenzhen, China
Stiftung durchsuchen
DeepSearch
Leser
Einbettungen
Reranker
Klassifikator
Segmentierer
API-Dokumentation
Jina API-Schlüssel abrufen
Ratenbegrenzung
API-Status
Unternehmen
Über uns
Kontaktieren Sie unseren Vertrieb
Pressemitteilungen
Praktikantenprogramm
Begleiten Sie uns
open_in_new
Logo herunterladen
open_in_new
Bedingungen
Sicherheit
Terms & amp; Bedingungen
Privatsphäre
Cookie-Einstellungen
email
Jina AI © 2020-2025.