Pressemitteilungen
Modelle
Produkte
keyboard_arrow_down
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.
DeepSearch
Suchen, lesen und überlegen, bis die beste Antwort gefunden ist.
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
Was ist ColBERT?
ColBERTs Design verstehen
Query- und Dokument-Encoder in ColBERT
Finden der Top-K-Dokumente mit ColBERT
Die Indexierungsstrategie von ColBERT
Effektivität und Effizienz von ColBERT
Verwendung von jina-colbert-v1-en: ein ColBERTv2-Modell mit 8192 Token Länge
Fazit
star
Hervorgehoben
Tech-Blog
Februar 20, 2024

Was ist ColBERT und Late Interaction und warum sind sie wichtig für die Suche?

Jina AIs ColBERT auf Hugging Face sorgt auf Twitter für Aufsehen und bringt mit seiner 8192-Token-Fähigkeit eine neue Perspektive in die Suche. Dieser Artikel erklärt die Feinheiten von ColBERT und ColBERTv2, zeigt ihre innovativen Designs und erläutert, warum ihre Late-Interaction-Funktion die Suche revolutioniert.
Neon theater or concert hall marquee letters lit up at night with city lights and faint "Adobe Sto" visible.
Han Xiao
Han Xiao • 16 Minuten gelesen
Jina ColBERT v2: Mehrsprachiger Late Interaction Retriever für Embedding und Reranking
Jina ColBERT v2 unterstützt 89 Sprachen mit überlegener Retrieval-Leistung, benutzergesteuerten Ausgabedimensionen und 8192 Token-Länge.

Update: Am 31. August 2024 haben wir die zweite Version von Jina-ColBERT veröffentlicht, mit verbesserter Leistung, mehrsprachiger Unterstützung für 89 Sprachen und flexiblen Ausgabedimensionen. Weitere Details finden Sie im Release-Post.

Letzten Freitag sorgte die Veröffentlichung des ColBERT-Modells von Jina AI auf Hugging Face für große Begeisterung in der KI-Community, besonders auf Twitter/X. Während viele mit dem bahnbrechenden BERT-Modell vertraut sind, fragen sich einige angesichts der Aufregung um ColBERT: Was macht ColBERT im überfüllten Bereich der Informationsabruf-Technologien so besonders? Warum ist die KI-Community so begeistert von ColBERT mit 8192 Token Länge? Dieser Artikel geht auf die Feinheiten von ColBERT und ColBERTv2 ein und beleuchtet deren Design, Verbesserungen und die überraschende Effektivität von ColBERTs Late Interaction.

Reranker API
Maximieren Sie die Suchrelevanz und RAG-Genauigkeit mit Leichtigkeit

tagWas ist ColBERT?

Der Name "ColBERT" steht für Contextualized Late Interaction over BERT, ein Modell der Stanford University, das das tiefe Sprachverständnis von BERT nutzt und einen neuartigen Interaktionsmechanismus einführt. Dieser Mechanismus, bekannt als Late Interaction, ermöglicht einen effizienten und präzisen Abruf, indem Anfragen und Dokumente bis zu den letzten Stufen des Abrufprozesses separat verarbeitet werden. Es gibt konkret zwei Versionen des Modells:

  • ColBERT: Das ursprüngliche Modell war die Erfindung von Omar Khattab und Matei Zaharia, die einen neuartigen Ansatz für den Informationsabruf durch das Paper "ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT" vorstellten. Ihre Arbeit wurde auf der SIGIR 2020 veröffentlicht.
ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT
Recent progress in Natural Language Understanding (NLU) is driving fast-paced advances in Information Retrieval (IR), largely owed to fine-tuning deep language models (LMs) for document ranking. While remarkably effective, the ranking models based on these LMs increase computational cost by orders of magnitude over prior approaches, particularly as they must feed each query-document pair through a massive neural network to compute a single relevance score. To tackle this, we present ColBERT, a novel ranking model that adapts deep LMs (in particular, BERT) for efficient retrieval. ColBERT introduces a late interaction architecture that independently encodes the query and the document using BERT and then employs a cheap yet powerful interaction step that models their fine-grained similarity. By delaying and yet retaining this fine-granular interaction, ColBERT can leverage the expressiveness of deep LMs while simultaneously gaining the ability to pre-compute document representations offline, considerably speeding up query processing. Beyond reducing the cost of re-ranking the documents retrieved by a traditional model, ColBERT's pruning-friendly interaction mechanism enables leveraging vector-similarity indexes for end-to-end retrieval directly from a large document collection. We extensively evaluate ColBERT using two recent passage search datasets. Results show that ColBERT's effectiveness is competitive with existing BERT-based models (and outperforms every non-BERT baseline), while executing two orders-of-magnitude faster and requiring four orders-of-magnitude fewer FLOPs per query.
arXiv.orgOmar Khattab

Das ursprüngliche ColBERT-Paper, das die "Late Interaction" einführt.

  • ColBERTv2: Aufbauend auf der Grundlagenarbeit setzte Omar Khattab seine Forschung fort und führte in Zusammenarbeit mit Barlas Oguz, Matei Zaharia und Michael S. Bernstein "ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction" ein, das auf der SIGIR 2021 vorgestellt wurde. Diese nächste Iteration von ColBERT adressierte frühere Einschränkungen und führte wichtige Verbesserungen ein, wie denoised supervision und residual compression, die sowohl die Abrufeffektivität als auch die Speichereffizienz des Modells verbesserten.
ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction
Neural information retrieval (IR) has greatly advanced search and other knowledge-intensive language tasks. While many neural IR methods encode queries and documents into single-vector representations, late interaction models produce multi-vector representations at the granularity of each token and decompose relevance modeling into scalable token-level computations. This decomposition has been shown to make late interaction more effective, but it inflates the space footprint of these models by an order of magnitude. In this work, we introduce ColBERTv2, a retriever that couples an aggressive residual compression mechanism with a denoised supervision strategy to simultaneously improve the quality and space footprint of late interaction. We evaluate ColBERTv2 across a wide range of benchmarks, establishing state-of-the-art quality within and outside the training domain while reducing the space footprint of late interaction models by 6--10×\times×.
arXiv.orgKeshav Santhanam

ColBERTv2 fügt denoised supervision und residual compression hinzu, um die Qualität der Trainingsdaten zu verbessern und den Speicherbedarf zu reduzieren.

tagColBERTs Design verstehen

Da ColBERTv2s Architektur der des ursprünglichen ColBERT sehr ähnlich bleibt und seine wichtigsten Innovationen sich um Trainingstechniken und Kompressionsmechanismen drehen, werden wir zunächst die grundlegenden Aspekte des ursprünglichen ColBERT betrachten.

tagWas ist Late Interaction in ColBERT?

"Interaction" bezieht sich auf den Prozess der Bewertung der Relevanz zwischen einer Anfrage und einem Dokument durch den Vergleich ihrer Repräsentationen.

"Late Interaction" ist der Kern von ColBERT. Der Begriff leitet sich von der Architektur und Verarbeitungsstrategie des Modells ab, bei der die Interaktion zwischen den Repräsentationen von Anfrage und Dokument erst spät im Prozess stattfindet, nachdem beide unabhängig voneinander codiert wurden. Dies steht im Gegensatz zu "Early Interaction"-Modellen, bei denen Query- und Dokument-Embeddings in früheren Stadien interagieren, typischerweise vor oder während ihrer Codierung durch das Modell.

Interaction Type Models
Early Interaction BERT, ANCE, DPR, Sentence-BERT, DRMM, KNRM, Conv-KNRM, etc.
Late Interaction ColBERT, ColBERTv2

Early Interaction kann die Berechnungskomplexität erhöhen, da alle möglichen Query-Dokument-Paare berücksichtigt werden müssen, was es weniger effizient für großangelegte Anwendungen macht.

Late Interaction-Modelle wie ColBERT optimieren die Effizienz und Skalierbarkeit, indem sie die Vorberechnung von Dokumentrepräsentationen ermöglichen und einen leichtgewichtigeren Interaktionsschritt am Ende einsetzen, der sich auf die bereits codierten Repräsentationen konzentriert. Diese Designentscheidung ermöglicht schnellere Abrufzeiten und reduzierte Rechenanforderungen, was es besser geeignet für die Verarbeitung großer Dokumentensammlungen macht.

Diagram illustrating query-document similarity with models for no, partial, and late interaction, including language mode rep
Schematische Diagramme zur Veranschaulichung von Query-Dokument-Interaktionsparadigmen im neuronalen IR, mit ColBERTs später Interaktion ganz links.

tagKeine Interaktion: Kosinus-Ähnlichkeit von Dokument- und Query-Embeddings

Viele praktische Vektordatenbanken und neuronale Suchlösungen basieren auf schneller Kosinus-Ähnlichkeitsberechnung zwischen Dokument- und Query-Embeddings. Während diese Methode aufgrund ihrer Einfachheit und Recheneffizienz attraktiv ist, hat sich gezeigt, dass dieser als "keine Interaktion" oder "nicht interaktionsbasiert" bezeichnete Ansatz im Vergleich zu Modellen, die eine Form der Interaktion zwischen Queries und Dokumenten beinhalten, schlechter abschneidet.

Die zentrale Einschränkung des "keine Interaktion"-Ansatzes liegt in seiner Unfähigkeit, die komplexen Nuancen und Beziehungen zwischen Query- und Dokumentbegriffen zu erfassen. Information Retrieval dreht sich im Kern darum, die Absicht hinter einer Query mit dem Inhalt eines Dokuments abzugleichen und zu verstehen. Dieser Prozess erfordert oft ein tiefes, kontextbezogenes Verständnis der beteiligten Begriffe - etwas, das einzelne, aggregierte Embeddings für Dokumente und Queries nur schwer leisten können.

tagQuery- und Dokument-Encoder in ColBERT

ColBERTs Encoding-Strategie basiert auf dem BERT-Modell, das für sein tiefes kontextuelles Sprachverständnis bekannt ist. Das Modell generiert dichte Vektordarstellungen für jeden Token in einer Query oder einem Dokument und erstellt dabei jeweils einen Bag of Contextualized Embeddings für eine Query und einen für ein Dokument. Dies ermöglicht einen nuancierten Vergleich ihrer Embeddings während der späten Interaktionsphase.

tagQuery-Encoder von ColBERT

Für eine Query QQQ mit Tokens q1,q2,...,ql{q_1, q_2, ..., q_l}q1​,q2​,...,ql​ beginnt der Prozess mit der Tokenisierung von QQQ in BERT-basierte WordPiece-Tokens und dem Voranstellen eines speziellen [Q]-Tokens. Dieser [Q]-Token, der direkt nach BERTs [CLS]-Token positioniert wird, signalisiert den Beginn einer Query.

Wenn die Query kürzer als eine vordefinierte Anzahl von Tokens NqN_qNq​ ist, wird sie mit [mask]-Tokens bis zu NqN_qNq​ aufgefüllt; andernfalls wird sie auf die ersten NqN_qNq​ Tokens gekürzt. Die aufgefüllte Sequenz wird dann durch BERT geleitet, gefolgt von einem CNN (Convolutional Neural Network) und Normalisierung. Das Ergebnis ist ein Set von Embedding-Vektoren, unten als Eq\mathbf{E}_qEq​ bezeichnet:
Eq:=Normalize(BERT([Q],q0,q1,…,ql[mask],[mask],…,[mask]))\mathbf{E}_q := \mathrm{Normalize}\left(\mathrm{BERT}\left(\mathtt{[Q]},q_0,q_1,\ldots,q_l\mathtt{[mask]},\mathtt{[mask]},\ldots,\mathtt{[mask]}\right)\right)Eq​:=Normalize(BERT([Q],q0​,q1​,…,ql​[mask],[mask],…,[mask]))

tagDokument-Encoder von ColBERT

Ähnlich wird für ein Dokument DDD mit Tokens d1,d2,...,dn{d_1, d_2, ..., d_n}d1​,d2​,...,dn​ ein [D]-Token vorangestellt, um den Beginn eines Dokuments anzuzeigen. Diese Sequenz durchläuft, ohne Auffüllung zu benötigen, den gleichen Prozess und ergibt ein Set von Embedding-Vektoren, unten als Ed\mathbf{E}_dEd​ bezeichnet:
Ed:=Filter(Normalize(BERT([D],d0,d1,...,dn)))\mathbf{E}_d := \mathrm{Filter}\left(\mathrm{Normalize}\left(\mathrm{BERT}\left(\mathtt{[D]},d_0,d_1,...,d_n\right)\right)\right)Ed​:=Filter(Normalize(BERT([D],d0​,d1​,...,dn​)))

Die Verwendung von [mask]-Tokens zum Auffüllen von Queries (im Paper als Query-Augmentation bezeichnet) gewährleistet eine einheitliche Länge über alle Queries hinweg und erleichtert die Batch-Verarbeitung. Die [Q]- und [D]-Tokens markieren explizit den Beginn von Queries bzw. Dokumenten und helfen dem Modell dabei, zwischen den beiden Eingabetypen zu unterscheiden.

tagVergleich von ColBERT mit Cross-Encodern

Cross-Encoder verarbeiten Paare von Queries und Dokumenten gemeinsam, was sie sehr genau, aber aufgrund der Rechenkosten für die Auswertung jedes möglichen Paars weniger effizient für großangelegte Aufgaben macht. Sie eignen sich besonders für spezifische Szenarien, in denen die präzise Bewertung von Satzpaaren erforderlich ist, wie bei Aufgaben zur semantischen Ähnlichkeit oder detaillierten Inhaltsvergleichen. Dieses Design beschränkt jedoch ihre Anwendbarkeit in Situationen, die eine schnelle Abfrage aus großen Datensätzen erfordern, wo vorberechnete Embeddings und effiziente Ähnlichkeitsberechnungen von entscheidender Bedeutung sind.

Diagrams comparing "Cross Encoder: Early all-to-all interaction" and "ColBERT: Late interaction" with labeled Query and Docum

Im Gegensatz dazu ermöglicht ColBERTs spätes Interaktionsmodell die Vorberechnung von Dokument-Embeddings, was den Abrufprozess deutlich beschleunigt, ohne die Tiefe der semantischen Analyse zu beeinträchtigen. Diese Methode, obwohl im Vergleich zum direkten Ansatz der Cross-Encoder scheinbar kontraintuitiv, bietet eine skalierbare Lösung für Echtzeit- und großangelegte Information-Retrieval-Aufgaben. Sie stellt einen strategischen Kompromiss zwischen Recheneffizienz und Qualität der Interaktionsmodellierung dar.

tagFinden der Top-K-Dokumente mit ColBERT

Sobald wir Embeddings für die Query und Dokumente haben, wird das Finden der relevantesten Top-K-Dokumente überschaubar (aber nicht so einfach wie die Berechnung des Kosinus zweier Vektoren).

Die Hauptoperationen umfassen ein Batch-Skalarprodukt zur Berechnung der termweisen Ähnlichkeiten, Max-Pooling über Dokumentterme zur Ermittlung der höchsten Ähnlichkeit pro Query-Term und Summierung über Query-Terme zur Ableitung des Gesamtdokumentscores, gefolgt von der Sortierung der Dokumente basierend auf diesen Scores. Der Pseudo-PyTorch-Code wird unten beschrieben:

import torch

def compute_relevance_scores(query_embeddings, document_embeddings, k):
    """
    Compute relevance scores for top-k documents given a query.
    
    :param query_embeddings: Tensor representing the query embeddings, shape: [num_query_terms, embedding_dim]
    :param document_embeddings: Tensor representing embeddings for k documents, shape: [k, max_doc_length, embedding_dim]
    :param k: Number of top documents to re-rank
    :return: Sorted document indices based on their relevance scores
    """
    
    # Ensure document_embeddings is a 3D tensor: [k, max_doc_length, embedding_dim]
    # Pad the k documents to their maximum length for batch operations
    # Note: Assuming document_embeddings is already padded and moved to GPU
    
    # Compute batch dot-product of Eq (query embeddings) and D (document embeddings)
    # Resulting shape: [k, num_query_terms, max_doc_length]
    scores = torch.matmul(query_embeddings.unsqueeze(0), document_embeddings.transpose(1, 2))
    
    # Apply max-pooling across document terms (dim=2) to find the max similarity per query term
    # Shape after max-pool: [k, num_query_terms]
    max_scores_per_query_term = scores.max(dim=2).values
    
    # Sum the scores across query terms to get the total score for each document
    # Shape after sum: [k]
    total_scores = max_scores_per_query_term.sum(dim=1)
    
    # Sort the documents based on their total scores
    sorted_indices = total_scores.argsort(descending=True)
    
    return sorted_indices

Beachten Sie, dass dieses Verfahren sowohl beim Training als auch beim Re-Ranking während der Inferenz verwendet wird. Das ColBERT-Modell wird mit einem paarweisen Ranking-Loss trainiert, wobei die Trainingsdaten aus Tripeln (q,d+,d−)(q, d^+, d^-)(q,d+,d−) bestehen, wobei qqq eine Query repräsentiert, d+d^+d+ ein relevantes (positives) Dokument für die Query ist und d−d^-d− ein nicht relevantes (negatives) Dokument. Das Modell zielt darauf ab, Repräsentationen zu lernen, bei denen der Ähnlichkeitsscore zwischen qqq und d+d^+d+ höher ist als der Score zwischen q und d−d^-d−.

Das Trainingsziel kann mathematisch als Minimierung der folgenden Verlustfunktion dargestellt werden: Loss=max⁡(0,1−S(q,d+)+S(q,d−))\mathrm{Loss} = \max(0, 1 - S(q, d^+) + S(q, d^-))Loss=max(0,1−S(q,d+)+S(q,d−))

, wobei S(q,d)S(q, d)S(q,d) den von ColBERT berechneten Ähnlichkeitsscore zwischen einer Query qqq und einem Dokument ddd bezeichnet. Dieser Score wird durch Aggregation der Max-Ähnlichkeitsscores der am besten übereinstimmenden Embeddings zwischen Query und Dokument ermittelt, dem in der Modellarchitektur beschriebenen späten Interaktionsmuster folgend. Dieser Ansatz stellt sicher, dass das Modell darauf trainiert wird, zwischen relevanten und irrelevanten Dokumenten für eine gegebene Query zu unterscheiden, indem ein größerer Abstand in den Ähnlichkeitsscores für positive und negative Dokumentpaare gefördert wird.

tagEntrauschte Supervision in ColBERTv2

Die entrauschte Supervision in ColBERTv2 verfeinert den ursprünglichen Trainingsprozess durch die Auswahl anspruchsvoller Negative und die Nutzung eines Cross-Encoders für die Destillation. Diese ausgefeilte Methode zur Verbesserung der Trainingsdatenqualität umfasst mehrere Schritte:

  1. Initiales Training: Verwendung der offiziellen Tripel aus dem MS MARCO-Datensatz, bestehend aus einer Query, einem relevanten Dokument und einem nicht relevanten Dokument.
  2. Indexierung und Abruf: Einsatz von ColBERTv2's Kompression zur Indexierung von Trainingspassagen, gefolgt vom Abruf der Top-k-Passagen für jede Query.
  3. Cross-Encoder Reranking: Verbesserung der Passagenauswahl durch Reranking mittels eines MiniLM Cross-Encoders, dessen Scores in ColBERTv2 destilliert werden.
  4. Bildung von Trainingstupeln: Generierung von w-way Tupeln für das Training, die sowohl hoch als auch niedriger bewertete Passagen einbeziehen, um anspruchsvolle Beispiele zu erstellen.
  5. Iterative Verfeinerung: Wiederholung des Prozesses zur kontinuierlichen Verbesserung der Auswahl harter Negative, wodurch die Modellleistung gesteigert wird.

Beachten Sie, dass dieser Prozess eine ausgefeilte Verbesserung des ColBERT-Trainingsregimes darstellt und keine grundlegende Änderung seiner Architektur.

tagHyperparameter von ColBERT

Die Hyperparameter von ColBERT sind nachfolgend zusammengefasst:

Hyperparameter Beste Wahl Begründung
Learning Rate 3 x 10^{-6} Ausgewählt für Fine-Tuning, um stabile und effektive Modellupdates zu gewährleisten.
Batch Size 32 Balanciert Recheneffizienz und die Fähigkeit, ausreichend Informationen pro Update zu erfassen.
Number of Embeddings per Query (Nq) 32 Festgelegt, um eine konsistente Repräsentationsgröße über alle Anfragen hinweg zu gewährleisten, was die effiziente Verarbeitung unterstützt.
Embedding Dimension (m) 128 Erwies sich als gute Balance zwischen Darstellungskraft und Recheneffizienz.
Training Iterations 200k (MS MARCO), 125k (TREC CAR) Gewählt, um gründliches Lernen sicherzustellen und Overfitting zu vermeiden, mit Anpassungen basierend auf Dataseteigenschaften.
Bytes per Dimension in Embeddings 4 (Re-Ranking), 2 (End-to-End Ranking) Kompromiss zwischen Präzision und Speichereffizienz, unter Berücksichtigung des Anwendungskontexts (Re-Ranking vs. End-to-End).
Vector-Similarity Function Cosine (Re-Ranking), (Squared) L2 (End-to-End) Ausgewählt basierend auf Leistung und Effizienz in den jeweiligen Retrieval-Kontexten.
FAISS Index Partitions (P) 2000 Bestimmt die Granularität der Suchraum-Partitionierung, beeinflusst die Sucheffizienz.
Nearest Partitions Searched (p) 10 Balanciert die Suchbreite gegen Recheneffizienz.
Sub-vectors per Embedding (s) 16 Beeinflusst die Granularität der Quantisierung, wirkt sich auf Suchgeschwindigkeit und Speichernutzung aus.
Index Representation per Dimension 16-bit values Gewählt für die zweite Phase des End-to-End Retrievals, um den Kompromiss zwischen Genauigkeit und Speicher zu managen.
Number of Layers in Encoders 12-layer BERT Optimale Balance zwischen Tiefe des kontextuellen Verständnisses und Recheneffizienz.
Max Query Length 128 Die maximale Anzahl an Tokens, die vom Query-Encoder verarbeitet werden. Dies wird im Jina-ColBERT Modell erweitert.
Max Document Length 512 Die maximale Anzahl an Tokens, die vom Dokument-Encoder verarbeitet werden. Dies wird im Jina-ColBERT Modell auf 8192 erweitert.

tagDie Indexierungsstrategie von ColBERT

Im Gegensatz zu repräsentationsbasierten Ansätzen, die jedes Dokument in einen Embedding-Vektor kodieren, kodiert ColBERT Dokumente (und Anfragen) in Embedding-Bags, wobei jedes Token in einem Dokument sein eigenes Embedding hat. Dieser Ansatz bedeutet naturgemäß, dass für längere Dokumente mehr Embeddings gespeichert werden müssen, was ein Schwachpunkt des ursprünglichen ColBERT ist und später durch ColBERTv2 adressiert wurde.

Der Schlüssel zum effizienten Management liegt in ColBERTs Verwendung einer Vektordatenbank (z.B. FAISS) für Indexierung und Retrieval, sowie seinem detaillierten Indexierungsprozess, der für die effiziente Verarbeitung großer Datenmengen konzipiert ist. Das ursprüngliche ColBERT-Paper erwähnt mehrere Strategien zur Verbesserung der Effizienz von Indexierung und Retrieval, darunter:

  • Offline Indexierung: Dokumentrepräsentationen werden offline berechnet, was die Vorberechnung und Speicherung von Dokument-Embeddings ermöglicht. Dieser Prozess nutzt Batch-Verarbeitung und GPU-Beschleunigung, um große Dokumentensammlungen effizient zu verarbeiten.
  • Embedding-Speicherung: Dokument-Embeddings können mit 32-Bit- oder 16-Bit-Werten für jede Dimension gespeichert werden, was einen Kompromiss zwischen Präzision und Speicheranforderungen bietet. Diese Flexibilität ermöglicht es ColBERT, eine Balance zwischen Effektivität (in Bezug auf Retrieval-Leistung) und Effizienz (in Bezug auf Speicher- und Rechenkosten) zu halten.

Die Einführung der Residual-Kompression in ColBERTv2, eine neuartige Technik, die im ursprünglichen ColBERT nicht vorhanden war, spielt eine Schlüsselrolle bei der Reduzierung des Speicherbedarfs des Modells um das 6-10-fache bei gleichzeitiger Qualitätserhaltung. Diese Technik komprimiert die Embeddings weiter, indem sie effektiv nur die Unterschiede zu einer Menge fester Referenz-Zentroide erfasst und speichert.

tagEffektivität und Effizienz von ColBERT

Man könnte zunächst annehmen, dass die Integration von BERTs tiefem kontextuellem Verständnis in die Suche inhärent erhebliche Rechenressourcen erfordert, was einen solchen Ansatz aufgrund hoher Latenz und Rechenkosten für Echtzeit-Anwendungen weniger praktikabel macht. ColBERT widerlegt jedoch diese Annahme durch seine innovative Nutzung des Late-Interaction-Mechanismus. Hier sind einige bemerkenswerte Punkte:

  1. Signifikante Effizienzgewinne: ColBERT erreicht eine um Größenordnungen reduzierte Rechenleistung (FLOPs) und Latenz im Vergleich zu traditionellen BERT-basierten Ranking-Modellen. Speziell für eine gegebene Modellgröße (z.B. 12-Layer "Base" Transformer Encoder) erreicht ColBERT nicht nur die gleiche, sondern in einigen Fällen sogar eine bessere Effektivität als BERT-basierte Modelle mit dramatisch geringerem Rechenaufwand. Zum Beispiel benötigt BERT bei einer Re-Ranking-Tiefe von k=10 fast 180-mal mehr FLOPs als ColBERT; diese Lücke vergrößert sich mit steigendem k auf das 13900-fache bei k=1000 und sogar auf das 23000-fache bei k=2000.
  2. Verbesserte Recall und MRR@10 im End-to-End Retrieval: Entgegen der anfänglichen Intuition, dass eine tiefere Interaktion zwischen Query- und Dokument-Repräsentationen (wie bei frühen Interaktionsmodellen) für eine hohe Retrieval-Leistung notwendig wäre, zeigt ColBERTs End-to-End-Retrieval-Setup überlegene Effektivität. Zum Beispiel übertrifft sein Recall@50 den Recall@1000 des offiziellen BM25 und fast aller anderen Modelle Recall@200, was die bemerkenswerte Fähigkeit des Modells unterstreicht, relevante Dokumente aus einer großen Sammlung ohne direkten Vergleich jedes Query-Dokument-Paars zu finden.
  3. Praktikabilität für reale Anwendungen: Die experimentellen Ergebnisse unterstreichen ColBERTs praktische Anwendbarkeit für reale Szenarien. Sein Indexierungsdurchsatz und seine Speichereffizienz machen es geeignet für die Indexierung großer Dokumentensammlungen wie MS MARCO innerhalb weniger Stunden, wobei eine hohe Effektivität bei überschaubarem Speicherbedarf erhalten bleibt. Diese Eigenschaften unterstreichen ColBERTs Eignung für den Einsatz in Produktionsumgebungen, wo sowohl Leistung als auch Recheneffizienz von größter Bedeutung sind.
  4. Skalierbarkeit mit der Dokumentensammlungsgröße: Vielleicht die überraschendste Schlussfolgerung ist ColBERTs Skalierbarkeit und Effizienz im Umgang mit großen Dokumentensammlungen. Die Architektur ermöglicht die Vorberechnung von Dokument-Embeddings und nutzt effiziente Batch-Verarbeitung für die Query-Dokument-Interaktion, wodurch das System effektiv mit der Größe der Dokumentensammlung skaliert. Diese Skalierbarkeit ist kontraintuitiv, wenn man die Komplexität und Tiefe des Verständnisses berücksichtigt, die für ein effektives Dokument-Retrieval erforderlich sind, und zeigt ColBERTs innovativen Ansatz zur Ausbalancierung von Recheneffizienz und Retrieval-Effektivität.

tagVerwendung von jina-colbert-v1-en: ein ColBERTv2-Modell mit 8192 Token Länge

Jina-ColBERT ist sowohl für schnelles als auch genaues Retrieval konzipiert und unterstützt längere Kontextlängen bis zu 8192, wobei es die Fortschritte von JinaBERT nutzt, das aufgrund seiner verbesserten Architektur längere Sequenzverarbeitung ermöglicht.

💡
Streng genommen unterstützt Jina-ColBERT eine Länge von 8190 Token. Zur Erinnerung: Im ColBERT-Dokumenten-Encoder wird jedes Dokument am Anfang mit [D],[CLS] gepadded.
jinaai/jina-colbert-v1-en · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

tagJinas Verbesserungen gegenüber dem ursprünglichen ColBERT

Jina-ColBERTs wichtigste Weiterentwicklung ist sein Backbone, jina-bert-v2-base-en, der die Verarbeitung von deutlich längeren Kontexten (bis zu 8192 Token) im Vergleich zum ursprünglichen ColBERT ermöglicht, der bert-base-uncased verwendet. Diese Fähigkeit ist entscheidend für die Verarbeitung von Dokumenten mit umfangreichem Inhalt und liefert detailliertere und kontextbezogenere Suchergebnisse.

tagjina-colbert-v1-en Leistungsvergleich vs. ColBERTv2

Wir haben jina-colbert-v1-en auf BEIR-Datensätzen und dem neuen LoCo-Benchmark evaluiert, der lange Kontexte bevorzugt, und es gegen die ursprüngliche ColBERTv2-Implementierung und nicht-interaktionsbasierte

jina-embeddings-v2-base-en Modell.

Dataset ColBERTv2 jina-colbert-v1-en jina-embeddings-v2-base-en
Arguana 46.5 49.4 44.0
Climate-Fever 18.1 19.6 23.5
DBPedia 45.2 41.3 35.1
FEVER 78.8 79.5 72.3
FiQA 35.4 36.8 41.6
HotpotQA 67.5 65.9 61.4
NFCorpus 33.7 33.8 32.5
NQ 56.1 54.9 60.4
Quora 85.5 82.3 88.2
SCIDOCS 15.4 16.9 19.9
SciFact 68.9 70.1 66.7
TREC-COVID 72.6 75.0 65.9
Webis-touch2020 26.0 27.0 26.2
LoCo 74.3 83.7 85.4
Average 51.7 52.6 51.6

Diese Tabelle zeigt die überlegene Leistung von jina-colbert-v1-en, besonders in Szenarien, die längere Kontextlängen erfordern, im Vergleich zum ursprünglichen ColBERTv2. Beachten Sie, dass jina-embeddings-v2-base-en mehr Trainingsdaten verwendet, während jina-colbert-v1-en nur MSMARCO nutzt, was die gute Leistung von jina-embeddings-v2-base-en bei einigen Aufgaben erklären könnte.

tagBeispielverwendung von jina-colbert-v1-en

Dieser Codeausschnitt beschreibt den Indizierungsprozess mit Jina-ColBERT und zeigt dessen Unterstützung für lange Dokumente.

from colbert import Indexer
from colbert.infra import Run, RunConfig, ColBERTConfig

n_gpu: int = 1  # Set your number of available GPUs
experiment: str = ""  # Name of the folder where the logs and created indices will be stored
index_name: str = ""  # The name of your index, i.e. the name of your vector database

if __name__ == "__main__":
    with Run().context(RunConfig(nranks=n_gpu, experiment=experiment)):
        config = ColBERTConfig(
          doc_maxlen=8192  # Our model supports 8k context length for indexing long documents
        )
        indexer = Indexer(
          checkpoint="jinaai/jina-colbert-v1-en",
          config=config,
        )
        documents = [
          "ColBERT is an efficient and effective passage retrieval model.",
          "Jina-ColBERT is a ColBERT-style model but based on JinaBERT so it can support both 8k context length.",
          "JinaBERT is a BERT architecture that supports the symmetric bidirectional variant of ALiBi to allow longer sequence length.",
          "Jina-ColBERT model is trained on MSMARCO passage ranking dataset, following a very similar training procedure with ColBERTv2.",
          "Jina-ColBERT achieves the competitive retrieval performance with ColBERTv2.",
          "Jina is an easier way to build neural search systems.",
          "You can use Jina-ColBERT to build neural search systems with ease.",
          # Add more documents here to ensure the clustering work correctly
        ]
        indexer.index(name=index_name, collection=documents)

tagVerwendung von jina-colbert-v1-en in RAGatouille

RAGatouille ist eine neue Python-Bibliothek, die die Verwendung fortschrittlicher Abrufmethoden in RAG-Pipelines erleichtert. Sie ist auf Modularität und einfache Integration ausgelegt und ermöglicht Benutzern, modernste Forschung nahtlos zu nutzen. Das Hauptziel von RAGatouille ist es, die Anwendung komplexer Modelle wie ColBERT in RAG-Pipelines zu vereinfachen und es Entwicklern zu ermöglichen, diese Methoden ohne tiefgehendes Fachwissen in der zugrundeliegenden Forschung zu nutzen. Dank Benjamin Clavié können Sie jina-colbert-v1-en jetzt einfach verwenden:

from ragatouille import RAGPretrainedModel

# Get your model & collection of big documents ready
RAG = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v1-en")
my_documents = [
    "very long document1",
    "very long document2",
    # ... more documents
]

# And create an index with them at full length!
RAG.index(collection=my_documents,
          index_name="the_biggest_index",
          max_document_length=8190,)

# or encode them in-memory with no truncation, up to your model's max length
RAG.encode(my_documents)

Für detailliertere Informationen und weitere Erkundung von Jina-ColBERT können Sie die Hugging Face Seite besuchen.

tagFazit

ColBERT stellt einen bedeutenden Fortschritt im Bereich des Information Retrieval dar. Durch die Ermöglichung längerer Kontextlängen mit Jina-ColBERT und die Beibehaltung der Kompatibilität mit dem ColBERT-Ansatz zur späten Interaktion bietet es eine leistungsstarke Alternative für Entwickler, die modernste Suchfunktionalität implementieren möchten.

In Verbindung mit der RAGatouille-Bibliothek, die die Integration komplexer Abrufmodelle in RAG-Pipelines vereinfacht, können Entwickler nun die Leistungsfähigkeit fortschrittlicher Abrufmethoden problemlos nutzen, ihre Arbeitsabläufe optimieren und ihre Anwendungen verbessern. Die Synergie zwischen Jina-ColBERT und RAGatouille zeigt einen bemerkenswerten Fortschritt bei der Zugänglichkeit und Effizienz fortschrittlicher KI-Suchmodelle für den praktischen Einsatz.

Kategorien:
star
Hervorgehoben
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
Leser
Einbettungen
Reranker
DeepSearch
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.