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
Technische Zusammenfassung von jina-colbert-v2
Asymmetrisches Embedding in ColBERT
Mehrsprachige Unterstützung für über 89 Sprachen
Matryoshka Representation Learning
Erste Schritte mit Jina ColBERT v2
star
Hervorgehoben
Pressemitteilung
August 30, 2024

Jina ColBERT v2: Mehrsprachiger Late-Interaction-Retriever für Embedding und Reranking

Jina ColBERT v2 unterstützt 89 Sprachen mit überlegener Retrievalleistung, benutzerdefinierten Ausgabedimensionen und einer Token-Länge von 8192.
Dark-themed coding interface displaying English and Japanese characters with "JINA COLBERT V2" highlighted in the center.
Jina AI
Jina AI • 10 Minuten gelesen

Heute freuen wir uns, Jina ColBERT v2 (jina-colbert-v2) vorzustellen, ein fortschrittliches Late-Interaction-Retrieval-Modell, das auf der ColBERT-Architektur basiert. Dieses neue Sprachmodell verbessert die Leistung von jina-colbert-v1-en und fügt mehrsprachige Unterstützung sowie dynamische Ausgabedimensionen hinzu.

Diese neue Version zeichnet sich durch folgende Funktionen aus:

  • Überlegene Retrieval-Leistung im Vergleich zum ursprünglichen ColBERT-v2 (+6,5%) und unserer vorherigen Version jina-colbert-v1-en (+5,4%).
  • Mehrsprachige Unterstützung für 89 Sprachen mit starker Leistung in allen wichtigen Weltsprachen.
  • Benutzergesteuerte Ausgabe-Embedding-Größen durch Matryoshka Representation Learning, wodurch Benutzer flexibel zwischen Effizienz und Präzision abwägen können.

tagTechnische Zusammenfassung von jina-colbert-v2

Der vollständige technische Bericht ist auf arXiv verfügbar:

Jina-ColBERT-v2: A General-Purpose Multilingual Late Interaction Retriever
Multi-vector dense models, such as ColBERT, have proven highly effective in information retrieval. ColBERT's late interaction scoring approximates the joint query-document attention seen in cross-encoders while maintaining inference efficiency closer to traditional dense retrieval models, thanks to its bi-encoder architecture and recent optimizations in indexing and search. In this paper, we introduce several improvements to the ColBERT model architecture and training pipeline, leveraging techniques successful in the more established single-vector embedding model paradigm, particularly those suited for heterogeneous multilingual data. Our new model, Jina-ColBERT-v2, demonstrates strong performance across a range of English and multilingual retrieval tasks, while also cutting storage requirements by up to 50% compared to previous models.
arXiv.orgRohan Jha
jina-colbert-v2 jina-colbert-v1-en Original ColBERTv2
Durchschnitt von 14 englischen
BEIR-Aufgaben
0.521 0.494 0.489
Mehrsprachig 89 Sprachen Nur Englisch Nur Englisch
Ausgabedimensionen 128, 96, oder 64 Fix 128 Fix 128
Max. Querylänge 32 Tokens 32 Tokens 32 Tokens
Max. Dokumentenlänge 8192 Tokens 8192 Tokens 512 Tokens
Parameter 560M 137M 110M
Modellgröße 1,1GB 550MB 438MB

tagAsymmetrisches Embedding in ColBERT

ColBERT baut auf der BERT-Architektur auf und fügt Late Interaction und asymmetrische Query-Dokument-Kodierung hinzu.

What is ColBERT and Late Interaction and Why They Matter in Search?
Jina AI's ColBERT on Hugging Face has set Twitter abuzz, bringing a fresh perspective to search with its 8192-token capability. This article unpacks the nuances of ColBERT and ColBERTv2, showcasing their innovative designs and why their late interaction feature is a game-changer for search.

Die asymmetrische Natur von ColBERT bedeutet, dass bei der Verwendung von Modellen wie jina-colbert-v2 oder jina-colbert-v1-en angegeben werden muss, ob eine Query, ein Dokument oder beides (für Reranking-Zwecke) eingebettet werden soll. Diese zusätzliche Flexibilität verbessert die Leistung gegenüber homogenen Embedding-Modellen bei Retrieval-Aufgaben.

tagMehrsprachige Unterstützung für über 89 Sprachen

Jina ColBERT v2 verfügt über umfangreiche mehrsprachige Fähigkeiten, die für die Anforderungen moderner, globalisierter Informationssuche und KI-Anwendungen entwickelt wurden. Das Trainingskorpus für jina-colbert-v2 umfasst 89 Sprachen, mit zusätzlichen Trainingsphasen für wichtige internationale Sprachen wie Arabisch, Chinesisch, Englisch, Französisch, Deutsch, Japanisch, Russisch und Spanisch sowie Programmiersprachen. Das Training umfasste auch ein Korpus ausgerichteter zweisprachiger Texte, um crosslinguale Potenziale zu erschließen, wodurch Queries und Dokumente in verschiedenen Sprachen bei Reranking/Retrieval-Aufgaben abgeglichen werden können.

Chart of language distribution in training data, highlighting dominance of English and Chinese.
Verteilung der Vortrainingsdaten nach Sprachen (spezifiziert durch ISO-639 Code) in logarithmischer Skala.

Heute sticht Jina ColBERT v2 als einziges mehrsprachiges ColBERT-ähnliches Modell hervor, das kompakte Embeddings generiert und die BM25-basierte Suche in allen getesteten Sprachen auf MIRACL-Benchmarks deutlich übertrifft.

Bar chart comparing jina-colbert-v2 and BM25 performance across 20 languages on multilingual tasks.
Jina ColBERT v2 Leistung über 16 Sprachen, verglichen mit BM25, auf MIRACL-Benchmarks.

Darüber hinaus übertrifft Jina ColBERT v2 bei englischsprachigen Retrieval-Aufgaben die Leistung seines Vorgängers jina-colbert-v1-en und des ursprünglichen ColBERT v2 Modells, mit vergleichbarer Leistung zum hochspezialisierten, rein englischsprachigen AnswerAI-ColBERT-small Modell.

Modellname Durchschnittliche Punktzahl
(14 BEIR Englisch-only Benchmarks)
Mehrsprachige Unterstützung
jina-colbert-v2 0.521 Mehrsprachig
jina-colbert-v1-en 0.494 Nur Englisch
ColBERT v2.0 0.489 Nur Englisch
AnswerAI-ColBERT-small 0.549 Nur Englisch
Bar chart showing model evaluations on English BEIR datasets, with several models like 'jina-colbert' and 'BM25'.
Evaluierung von jina-colbert-v2 auf einer Auswahl englischsprachiger Datensätze aus dem BEIR-Benchmark.

tagMatryoshka Representation Learning

Matryoshka Representation Learning ist eine Technik zum Training von Modellen, die verschiedene Ausgabevektorgrößen unterstützt und dabei Genauigkeitsverluste minimiert. Wir trainieren die verborgenen Schichten des Netzwerks mit mehreren verschiedenen linearen Projektionsköpfen — den finalen Schichten eines neuronalen Netzwerks — die jeweils eine andere Ausgabegröße unterstützen. Jina ColBERT v2 unterstützt Ausgabevektoren von 128, 96 und 64 Dimensionen.

Jina ColBERT v2 produziert standardmäßig 128-dimensionale Ausgabe-Embeddings, kann aber auch 96- und 64-dimensionale Vektoren erzeugen, die eine nahezu identische Leistung aufweisen, aber 25% bzw. 50% kürzer sind.

Die folgende Tabelle zeigt die nDGC-Leistung vonjina-colbert-v2 für die Top-Ten-Ergebnisse (nDGC@10) über sechs Datensätze aus dem BEIR-Benchmark. Hier sehen Sie, dass der Leistungsunterschied zwischen 128 und 96 Dimensionen kaum 1% beträgt und unter 1,5% zwischen 128 und 64 Dimensionen.

Output DimensionsDurchschnittlicher Score
(nDGC@10 für 6 Benchmarks)
1280.565
960.558
640.556
Bar chart of BEIR benchmarks, highlighting scores of datasets like nfcorpus to msmarco, with jina-colbert-v2.64 excelling.
Jina ColBERT v2 Leistung bei verschiedenen Output-Dimensionen.

Die Reduzierung der Größe der Ausgabevektoren spart Speicherplatz und beschleunigt Anwendungen wie vektorbasierte Informationssuche, bei denen verschiedene Vektoren verglichen oder der Abstand zwischen ihnen gemessen werden muss.

Dies hat erhebliche Kostenauswirkungen, allein schon in Bezug auf reduzierten Speicherplatz. Zum Beispiel kostet die Speicherung von 100 Millionen Dokumenten auf AWS mit 128-dimensionalen Vektoren für jedes Dokument laut Qdrants Cloud-Kostenrechner schätzungsweise US$1.319,24 pro Monat. Bei 64 Dimensionen sinkt dies auf US$659,62.

tagErste Schritte mit Jina ColBERT v2

Jina ColBERT v2 ist über die Jina Search Foundation API, den AWS Marketplace und auf Azure verfügbar. Es ist auch für nicht-kommerzielle Nutzung (CC BY-NC-4.0) über Hugging Face verfügbar.

tagÜber die Jina Search Foundation API

Für Embedding

Der folgende curl-Befehl zeigt, wie man Input und Optionen spezifiziert, um Dokument-Embeddings von jina-colbert-v2 über die Jina Embeddings API zu erhalten. Um Vektoren Ihrer bevorzugten Größe zu erhalten, geben Sie 128 oder 64 für den Parameter dimensions an. Dieser Parameter ist optional und der Standardwert ist 128.

Eingabedokumente werden abgeschnitten, wenn sie länger als 8192 Token sind.

Geben Sie Ihren Jina API-Schlüssel im Autorisierungs-Header an Authorization: Bearer <YOUR JINA API KEY>:

curl https://api.jina.ai/v1/multi-vector \\
	 -H "Content-Type: application/json" \\
	 -H "Authorization: Bearer <YOUR JINA API KEY>" \\
	 -d '{
	"model": "jina-colbert-v2",
	"dimensions": 128, # Or 64 for half-size vectors
	"input_type": "document", # For query embeddings see below
	"embedding_type": "float",
	"input": [
		"Your document text string goes here", 
		"You can send multiple texts", 
		"Each text can be up to 8192 tokens long"
    ]}'

Um Query-Embeddings zu erhalten, setzen Sie den Parameter input_type auf query statt document. Beachten Sie, dass Queries viel strengere Größenbeschränkungen haben als Dokumente. Sie werden bei 32 Token abgeschnitten. Die Query-Kodierung wird immer 32 Token zurückgeben, einschließlich Embeddings für das Padding, wenn weniger als 32 Token lang.

curl https://api.jina.ai/v1/multi-vector \\
	 -H "Content-Type: application/json" \\
	 -H "Authorization: Bearer <YOUR JINA API KEY>" \\
	 -d '{
	"model": "jina-colbert-v2",
	"dimensions": 128, # Or 64 for half-size vectors	
	"input_type": "query", # This must be specified for query embeddings
	"embedding_type": "float",
	"input": [
		"Your query text string goes here", 
		"You can send multiple texts", 
		"Each query text can be up to 32 tokens long"
    ]}'
Embedding API
Multimodal, bilingual long-context embeddings for your search and RAG.

Für Reranking

Um jina-colbert-v2 über die Jina Reranker API zu verwenden, übergeben Sie eine Query und mehrere Dokumente und erhalten rankingfähige Match-Scores zurück. Konstruieren Sie Ihre Anfrage wie folgt:

curl https://api.jina.ai/v1/rerank \\
	 -H "Content-Type: application/json" \\
	 -H "Authorization: Bearer <YOUR JINA API KEY>" \\
	 -d '{
      "model": "jina-colbert-v2",
      "query": "What is the population of Berlin?",
      "top_n": 3,
      "documents": [
        "Berlin's population grew by 0.7 percent in 2023 compared with the previous year. Accordingly, around 27,300 more residents lived in Berlin at the end of the last year than in 2022. Those of 30 to under 40 years old form the numerically largest age group. With roughly 881,000 foreign residents from around 170 nations and an average age of the population of 42.5 years old.",
        "Mount Berlin is a glacier-covered volcano in Marie Byrd Land, Antarctica, 100 kilometres (62 mi) from the Amundsen Sea. It is a roughly 20-kilometre-wide (12 mi) mountain with parasitic vents that consists of two coalesced volcanoes: Berlin proper with the 2-kilometre-wide (1.2 mi) Berlin Crater and Merrem Peak with a 2.5-by-1-kilometre-wide (1.55 mi × 0.62 mi) crater, 3.5 kilometres (2.2 mi) away from Berlin.",
        "Population as of 31.12.2023 by nationality and federal states Land\\tTotal\\tGermans\\tForeigners\\tincluding EU-states number\\t%\\tnumber\\t%",
        "The urban area of Berlin has a population of over 4.5 million and is therefore the most populous urban area in Germany. The Berlin-Brandenburg capital region has around 6.2 million inhabitants and is Germany's second-largest metropolitan region after the Rhine-Ruhr region, and the sixth-biggest metropolitan region by GDP in the European Union.",
        "Irving Berlin (born Israel Beilin) was an American composer and songwriter. His music forms a large part of the Great American Songbook. Berlin received numerous honors including an Academy Award, a Grammy Award, and a Tony Award.",
        "Berlin is a town in the Capitol Planning Region, Connecticut, United States. The population was 20,175 at the 2020 census.",
        "Berlin is the capital and largest city of Germany, both by area and by population. Its more than 3.85 million inhabitants make it the European Union's most populous city, as measured by population within city limits.",
        "Berlin, Berlin ist eine für die ARD produzierte Fernsehserie, die von 2002 bis 2005 im Vorabendprogramm des Ersten ausgestrahlt wurde. Regie führten unter anderem Franziska Meyer Price, Christoph Schnee, Sven Unterwaldt Jr. und Titus Selge."
        ]
    }'

Beachten Sie das Argument top_n, das die Anzahl der Dokumente angibt, die Sie abrufen möchten. Wenn Ihre Anwendung beispielsweise nur den besten Treffer verwendet, setzen Sie top_n auf 1.

Code-Snippets in Python und anderen Programmiersprachen und Frameworks finden Sie auf der Jina AI Embeddings API-Seite oder wählen Sie jina-colbert-v2 aus dem Dropdown-Menü auf der Jina Reranker API-Seite.

Reranker API
Maximize the search relevancy and RAG accuracy at ease.

tagÜber Stanford ColBERT

Sie können Jina ColBERT v2 auch als Drop-in-Ersatz für ColBERT v2 in der Stanford ColBERT Bibliothek verwenden. Geben Sie einfach jinaai/jina-colbert-v2 als Modellquelle an:

from colbert.infra import ColBERTConfig
from colbert.modeling.checkpoint import Checkpoint

ckpt = Checkpoint("jinaai/jina-colbert-v2", colbert_config=ColBERTConfig())
docs = ["Your list of texts"] 
query_vectors = ckpt.queryFromText(docs)
⚠️
Sie müssen einops und flash_attn installieren, um den obigen Code zu verwenden.

tagÜber RAGatouille

Jina ColBERT v2 ist auch in RAGatouille integriert. Sie können es über die Methode RAGPretrainedModel.from_pretrained() herunterladen und verwenden:

from ragatouille import RAGPretrainedModel

RAG = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v2")
docs = ["Your list of texts"]
RAG.index(docs, index_name="your_index_name")
query = "Your query"
results = RAG.search(query)
⚠️
Sie müssen einops und flash_attn installieren, um den obigen Code zu verwenden.

tagÜber Qdrant

Seit Version 1.10 hat Qdrant Unterstützung für Multi-Vektoren und Late-Interaction-Modelle hinzugefügt. Bestehende Nutzer von Qdrant-Engines, ob lokale oder verwaltete Cloud-Versionen, können direkt von der Integration von jina-colbert-v2 über den Qdrant-Client profitieren.

Erstellen einer neuen Collection mit der MAX_SIM Operation

from qdrant_client import QdrantClient, models

qdrant_client = QdrantClient(
    url="<YOUR_ENDPOINT>",
    api_key="<YOUR_API_KEY>",
)

qdrant_client.create_collection(
    collection_name="{collection_name}",
    vectors_config={
        "colbert": models.VectorParams(
            size=128,
            distance=models.Distance.COSINE,
            multivector_config=models.MultiVectorConfig(
                comparator=models.MultiVectorComparator.MAX_SIM
            ),
        )
    }
)
⚠️
Die korrekte Einstellung des multivector_config Parameters ist essenziell für die Verwendung von ColBERT-Style Modellen in Qdrant.

Dokumente in Multi-Vektor-Collections einfügen

import requests
from qdrant_client import QdrantClient, models

url = 'https://api.jina.ai/v1/multi-vector'

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <YOUR BEARER>'
}

data = {
    'model': 'jina-colbert-v2',
    'input_type': 'query',
    'embedding_type': 'float',
    'input': [
        'Your text string goes here',
        'You can send multiple texts',
        'Each text can be up to 8192 tokens long'
    ]
}

response = requests.post(url, headers=headers, json=data)
rows = response.json()["data"]

qdrant_client = QdrantClient(
    url="<YOUR_ENDPOINT>",
    api_key="<YOUR_API_KEY>",
)

for i, row in enumerate(rows):
    qdrant_client.upsert(
        collection_name="{collection_name}",
        points=[
            models.PointStruct(
                id=i,  
                vector=row["embeddings"],  
                payload={"text": data["input"][i]} 
            )
        ],
    )

Collections abfragen

from qdrant_client import QdrantClient, models
import requests

url = 'https://api.jina.ai/v1/multi-vector'

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <YOUR BEARER>'
}


data = {
    'model': 'jina-colbert-v2',
    "input_type": "query",
    "embedding_type": "float",
    "input": [
        "how many tokens in an input do Jina AI's embedding models support?"
    ]
}

response = requests.post(url, headers=headers, json=data)
vector = response.json()["data"][0]["embeddings"]


qdrant_client = QdrantClient(
    url="<YOUR_ENDPOINT>",
    api_key="<YOUR_API_KEY>",
)

results = qdrant_client.query_points(
    collection_name="{collection_name}",
    query=vector,
)

print(results)

tagZusammenfassung

Jina ColBERT v2 (jina-colbert-v2) baut auf der hohen Leistung von jina-colbert-v1-en auf und erweitert seine Fähigkeiten auf eine Vielzahl globaler Sprachen. Mit Unterstützung für mehrere Embedding-Größen ermöglicht jina-colbert-v2 den Nutzern, das Verhältnis zwischen Präzision und Effizienz an ihre spezifischen Anwendungsfälle anzupassen, was potenziell erhebliche Zeit- und Rechenkosten einsparen kann.

Dieses Modell vereint all diese Funktionen in einem einzigen, preislich wettbewerbsfähigen Paket, das über eine intuitive Web-API zugänglich und mit jedem Computing-Framework kompatibel ist, das HTTP-Anfragen unterstützt. Testen Sie es selbst mit 1 Million kostenlosen Tokens, um zu sehen, wie es Ihre Anwendungen und Prozesse verbessern kann.

Kategorien:
star
Hervorgehoben
Pressemitteilung
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.