AI Personal Learning
und praktische Anleitung

Der erste mehrsprachige ColBERT der Welt: Jina ColBERT V2 und seine "russische Schachtelpuppen"-Technologie

-1

existieren RAG Domäne wird das Multivektormodell ColBERT verwendet, um das Dokument zu modellieren, indem ein einziger Vektor für jede der Dokumentenelemente Token Die Erzeugung unabhängiger Vektoren führt zu einer Verbesserung der Abrufgenauigkeit. Sie führt jedoch auch zu einem drastischen Anstieg des Speicherbedarfs und unterstützt nur die englische Sprache, was ihren Anwendungsbereich einschränkt.

Um diese Probleme anzugehen, haben wir die Architektur und den Trainingsprozess von ColBERT verbessert und insbesondere einen Durchbruch bei der mehrsprachigen Verarbeitung erzielt. Das neueste Jina-ColBERT-v2 unterstützt 89 Sprachen und führt eine Option für benutzerdefinierte Ausgabedimensionen ein, die den Speicherbedarf erheblich reduziert und die Effizienz und Genauigkeit der mehrsprachigen Abfrage verbessert.

Die wichtigsten Highlights der neuen Version

  1. Leistungsverbesserung6,51 TP3T Verbesserung der englischen Suchleistung im Vergleich zum ursprünglichen ColBERT-v2 und 5,41 TP3T im Vergleich zu seinem Vorgänger jina-colbert-v1-de.
  2. Mehrsprachige UnterstützungDie neue Version unterstützt bis zu 89 Sprachen, darunter Arabisch, Chinesisch, Englisch, Japanisch, Russisch und andere Sprachen, sowie Programmiersprachen.
  3. Abmessungen der Ausgabe können individuell angepasst werdenDie neue Version verwendet Matryoshka Representation Learning (MRL) und bietet 128, 96 und 64 dimensionale Ausgangsvektoren, so dass der Benutzer die geeignete Dimensionalität entsprechend seinen Bedürfnissen wählen kann.

Der vollständige technische Bericht ist auf arXiv zu finden: https://arxiv.org/abs/2408.16672


jina-colbert-v2 leistung auf einen blick

In Bezug auf die Retrievalleistung zeigt jina-colbert-v2 einen deutlichen Vorteil gegenüber der Vorgängerversion, sowohl in Bezug auf englische Retrievalaufgaben als auch auf die Unterstützung mehrerer Sprachen. Die Vorteile dieses Multi-Vektor-Modells können auch mit der von Jina AI übernommenen Eingabelänge von 8192 Token voll ausgeschöpft werden. Unten finden Sie einen Vergleich mit anderen Versionen, bei dem die wichtigsten Verbesserungen deutlich zu erkennen sind:

jina-colbert-v2 jina-colbert-v1-de Original ColBERTv2
Durchschnitt der englischen BEIR-Aufgaben 0.521 0.494 0.489
Mehrsprachige Unterstützung 89 Sprachen Nur Englisch Nur Englisch
Ausgangsmaß 128, 96 oder 64 Festgelegt 128 Festgelegt 128
Maximale Abfragelänge 32 Spielsteine 32 Spielsteine 32 Spielsteine
Maximale Dokumentlänge 8192 Wertmarken 8192 Wertmarken 512 Spielsteine
Anzahl der Parameter 560 Millionen 137 Millionen 110 Millionen
Modellgröße 1,1 GB 550MB 438MB

1. die Verbesserung der Leistung

In der englischen Retrievalaufgabe übertrifft jina-colbert-v2 die vorherige Generation von jina-colbert-v1-de und das ursprüngliche ColBERT v2 und nähert sich dem Niveau des AnswerAI-ColBERT-small Modells, das speziell für Englisch entwickelt wurde.

Name des Modells Durchschnittliche Punktzahl im BEIR-Benchmark-Test für Englisch Mehrsprachige Unterstützung
jina-colbert-v2 0.521 Unterstützung mehrerer Sprachen
jina-colbert-v1-de 0.494 Nur Englisch
ColBERT v2.0 0.489 Nur Englisch
AntwortAI-ColBERT-klein 0.549 Nur Englisch
-1Leistung von Jina ColBERT v2 auf dem englischsprachigen BEIR-Datensatz

2. mehrsprachige Unterstützung

Jina-ColBERT-v2 ist das einzige ColBERT-Modell, das mehrere Sprachen unterstützt.Darüber hinaus ist es möglich, sehr kompakte Einbettungsvektoren zu erzeugen, die deutlich besser sind als herkömmliche BM25 Retrieval-Methoden (in allen von MIRACL bewerteten Sprachen).

jina-colbert-v2 Der Trainingskorpus deckt 89 Sprachen ab und umfasst 450 Millionen schwach überwachte semantisch verwandte Satzpaare, Frage-Antwort-Paare und Anfrage-Dokument-Paare. Die Hälfte davon ist in englischer Sprache, und der verbleibende Teil umfasst 29 verschiedene nicht-englische Sprachen, zusätzlich zu 3,0% an Programmiersprachdaten und 4,3% an sprachübergreifenden Daten.

Wir haben uns auch spezialisiert auf Arabisch, Chinesisch, Französisch, Deutsch, Japanisch, Russisch, Spanisch und andere gängige Sprachen im Gesang antworten Programmiersprache Es wurde ein zusätzliches Training durchgeführt, das das Modell in die Lage versetzte, sprachübergreifende Aufgaben gut zu bewältigen, indem ein zweisprachiger Textkorpus eingeführt wurde.

-1Sprachverteilung des Pre-Training-Datensatzes

Die folgende Abbildung zeigt die Ergebnisse des Leistungsvergleichs zwischen Jina-ColBERT-v2 und BM25 für 16 Sprachen im MIRACL-Benchmark.

-1

3. russische Schachtelpuppen-Darstellung lernen

Matrjoschka-Repräsentationslernen (MRL) ist eine flexible und effiziente Trainingsmethode, die den Genauigkeitsverlust minimiert und gleichzeitig verschiedene Dimensionen des Ausgabevektors unterstützt. Sie wird durch die Einführung mehrerer linearer Schichten in der verborgenen Schicht des Modells implementiert, wobei jede Schicht eine andere Dimension verarbeitet. Weitere Einzelheiten zu dieser Technik finden Sie unter: https://arxiv.org/abs/2205.13147

Standardmäßig wird dieJina-ColBERT-v2 generiert 128-dimensionale Einbettungen, aber Sie können auch kürzere Vektoren wählen, z. B. 96 oder 64 Dimensionen.. Selbst wenn der Vektor um 25% oder 50% gekürzt wird, ist die Auswirkung auf die Leistung fast vernachlässigbar (der Rückgang beträgt weniger als 1,5%). Mit anderen Worten: Egal, wie lang die Vektoren sein müssen, das Modell behält seine effiziente und genaue Leistung bei.

Die folgende Tabelle zeigt die Leistung von Jina-ColBERT-v2 bei den zehn besten Ergebnissen (nDGC@10) dieser sechs BEIR-Benchmarks. Es ist zu erkennen, dass dieDer Leistungsunterschied zwischen 128 und 96 Dimensionen beträgt weniger als 11 TP3T, während der Unterschied zwischen 128 und 64 Dimensionen weniger als 1,51 TP3T beträgt.

Ausgangsmaß Durchschnittliche Punktzahl (nDGC@10 für 6 Benchmarks)
128 0.565
96 0.558
64 0.556

Die folgende Abbildung veranschaulicht die Leistung von Jina-ColBERT-v2 bei unterschiedlichen Ausgangsgrößen.

-1Die Wahl kleinerer Ausgangsvektoren spart nicht nur Speicherplatz, sondern verbessert auch die Rechengeschwindigkeit, insbesondere in Szenarien, in denen Vektoren verglichen oder Abstände berechnet werden müssen, wie z. B. bei Vektorabfragesystemen.

Laut dem Cloud Cost Estimator von Qdrant belaufen sich die Kosten für die Speicherung von 100 Millionen Dokumenten auf AWS unter Verwendung von 128-dimensionalen Vektoren auf 1.319,24 US-Dollar pro Monat, während sich die Kosten mit 64-dimensionalen Vektoren auf 659,62 US-Dollar pro Monat halbieren lassen. Das ist nicht nur ein Geschwindigkeitsschub, sondern auch eine erhebliche Kostenreduzierung.

Wie man mit Jina ColBERT v2 anfängt

Jina ColBERT v2 ist jetzt auf der Jina Search Foundation API, dem AWS Marketplace und den Azure-Plattformen verfügbar. Es ist auch unter der CC BY-NC-4.0-Lizenz auf der Gesicht umarmen Auf der offenen Quelle für nicht-kommerzielle Nutzung.

  • AWS-Marktplatz: https://aws.amazon.com/marketplace/seller-profile?id=seller-stch2ludm6vgy
  • Azurblau: https://azuremarketplace.microsoft.com/en-gb/marketplace/apps?search=Jina
  • Gesicht umarmen: https://huggingface.co/jinaai/jina-colbert-v2

 

über Jina Search Foundation API

zum Einbetten

Die Verwendung der Jina Embedding API für die Einbettung von jina-colbert-v2 ist der einfachste und direkteste Weg.

Zwei Schlüsselparameter:

AbmessungenGibt die Ausgabedimension der Einbettung an. Die Standardeinstellung ist 128, Sie können auch 64 wählen.

eingabe_art: bestimmt die Art der Eingabe.Abfrage ist auf 32 Token begrenzt, die automatisch abgeschnitten werden, und die Dokument Die Dokumentenkodierung kann offline verarbeitet werden, so dass zum Zeitpunkt der Abfrage nur der Abfrageteil der Abfrage kodiert werden muss, was die Verarbeitungsgeschwindigkeit erheblich verbessern kann.

Der Jina API Key ist unter jina.ai/embeddings verfügbar.

curl https://api.jina.ai/v1/multi-vector \\\
     -H "Content-Type: application/json" \\\\\\
     -H "Authorization: Bearer " \\\\\
     -d '{
     "model": "jina-colbert-v2", "dimensions": 128, 1.0, 1.0, 1.0
     "Abmessungen": 128, # oder 64
     "input_type": "document", # Beachten Sie, ob der input_type document oder query ist.
     "embedding_type": "float", "input": [ "float", #
     "input": [
         "Geben Sie hier den Text Ihres Dokuments ein.", "input_type": "float", "input": [
         "Sie können mehr als einen Text senden.", "text_type": "float", "input": [ "Geben Sie hier den Text Ihres Dokuments ein.
         "Jeder Text kann bis zu 8192 Token lang sein."
    ]}'

Für Reranker

So verwenden Sie die Jina Reranker API über die jina-colbert-v2Um dies zu tun, eine Abfrage und mehrere Dokumente zu übergeben und einen Rerankable Match Score zurückzugeben, konstruieren Sie die folgende Anfrage:

curl https://api.jina.ai/v1/rerank \\\
     -H "Content-Type: application/json" \\\\\\
     -H "Authorization: Bearer " \\\\\
     -d '{
      "model": "jina-colbert-v2",
      "query": "Wie hoch ist die Einwohnerzahl von Berlin?" ,
      "top_n": 3,
      "documents": [
        "Die Bevölkerung Berlins ist im Jahr 2023 im Vergleich zum Vorjahr um 0,71 TP3T gestiegen, so dass Berlin am Ende des letzten Jahres rund 27.300 Einwohner mehr hatte als 2022.Die Altersgruppe mit den meisten Einwohnern ist die der 30- bis 40-Jährigen. In Berlin leben rund 881.000 ausländische Einwohner aus rund 170 Ländern mit einem Durchschnittsalter von 42,5 Jahren." ,
        "Der Mount Berlin ist ein gletscherbedeckter Vulkan im Marie-Byrd-Land in der Antarktis, etwa 100 Kilometer von der Amundsen-See entfernt. Er ist ein etwa 20 Kilometer breiter Gipfel mit parasitären Kratern und besteht aus zwei miteinander verschmolzenen Vulkanen: dem Vulkan Berlin, dessen Krater 2 Kilometer breit ist, und dem etwa 3,5 Kilometer entfernten Merrem Peak, dessen Krater 2,5 x 1 Kilometer breit ist." ,
        "Bevölkerungsdaten nach Nationalität und Kanton für die Bundesländer am 31. Dezember 2023",
        "Der Großraum Berlin ist mit über 4,5 Millionen Einwohnern der bevölkerungsreichste Ballungsraum in Deutschland. Die Metropolregion Berlin-Brandenburg ist mit rund 6,2 Millionen Einwohnern nach der Rhein-Ruhr-Region der zweitgrößte Ballungsraum in Deutschland und der sechstgrößte Ballungsraum in der Europäischen Union (gemessen am BIP)." ,
        "Irving Berlin (früher bekannt als Israel Behring) war ein amerikanischer Komponist und Songwriter. Seine Musik ist Teil des Great American Songbook. Berlin erhielt viele Auszeichnungen, darunter einen Academy Award, einen Grammy Award und einen Tony Award." ,
        "Berlin ist eine Stadt im Capital Planning District des US-Bundesstaates Connecticut mit 20.175 Einwohnern (Volkszählung 2020).", .
        "Berlin ist die Hauptstadt und die größte Stadt Deutschlands, sowohl von der Größe als auch von der Einwohnerzahl her. Mit mehr als 3,85 Millionen Einwohnern ist sie die bevölkerungsreichste Stadt in der Europäischen Union (gemessen an der Bevölkerung innerhalb der Stadtgrenzen)." ,
        "Berlin, Berlin" war eine für die ARD produzierte Fernsehserie, die von 2002 bis 2005 im Abendprogramm von TV 1 ausgestrahlt wurde. Zu den Regisseuren gehören Franziska Meyer-Price, Christoph Schnee, Sven Winterwalt und Titus Selger."
        ]
    }'

Beachten Sie auch. oben_n der die Anzahl der Dokumente angibt, die bei der Suche zurückgegeben werden sollen. Wenn Sie nur die optimalen Treffer benötigen, können Sie den Parameter oben_n Auf 1 setzen.

Weitere Codebeispiele in Python oder anderen Sprachen finden Sie auf der Seite https://jina.ai/embeddings, oder wählen Sie aus dem Dropdown-Menü unter https://jina.ai/reranker/ jina-colbert-v2.

Über Stanford ColBERT

Wenn Sie die Stanford-ColBERT-Bibliothek verwendet haben, können Sie sie jetzt nahtlos durch die Jina-ColBERT-v2-Version ersetzen. Geben Sie einfach die jinaai/jina-colbert-v2 als Modellquelle.

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

ckpt = Prüfpunkt("jinaai/jina-colbert-v2", colbert_config=ColBERTConfig())
docs = ["Ihre Textliste"]
query_vectors = ckpt.queryFromText(docs)

Über RAGatouille

Jina ColBERT v2 ist auch in das RAGatouille-System integriert, und zwar über die RAGPretrainedModel.from_pretrained() Die Methode ist einfach herunterzuladen und anzuwenden.

from ragatouille import RAGPretrainedModel

RAG = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v2")
docs = ["Liste Ihrer Texte"]
RAG.index(docs, index_name="ihr_index_name")
Abfrage = "Ihre Abfrage"
Ergebnisse = RAG.search(Abfrage)

über Qdrant

Ab Qdrant Version 1.10 unterstützt Qdrant Multivektoren und das Late-Interaction-Modell, das Sie direkt mit jina-colbert-v2 verwenden können. Unabhängig davon, ob Sie Qdrant lokal oder in der Cloud gehostet einsetzen, können Sie Dokumente in eine Multivektor-Sammlung einfügen, indem Sie den Parameter multivector_config im Client korrekt konfigurieren.

Erstellen einer neuen Sammlung mit der Operation MAX_SIM

from qdrant_client import QdrantClient, models

qdrant_client = QdrantClient(
    
    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(
                Komparator=models.MultiVectorComparator.MAX_SIM
            ),
        )
    }
)

⚠️ Richtige Einstellung multivektor_konfigurieren Die Parameter sind der Schlüssel zur Verwendung des ColBERT-Modells in Qdrant.

Einfügen eines Dokuments in einen Multivektorsatz

importiere Anfragen
from qdrant_client import QdrantClient, models

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

headers = {
    
    'Authorization': 'Bearer '
}

data = {
    
    
    
    'input': [
        'Geben Sie hier Ihren Text ein', 'input_type'.
        
        'Jeder Text kann bis zu 8192 Token lang sein'.
    ]
}

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

qdrant_client = QdrantClient(
    url="",
    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]}
            )
        ],
    )

(Berechnungs-)Abfragemenge

from qdrant_client import QdrantClient, models
importiere Anfragen

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

headers = {
    'Content-Type': 'application/json', 'Authorisation': 'Bearer '
    'Authorization': 'Bearer '
}

data = {
    'model': 'jina-colbert-v2', 'input_type'.
    'input_type': 'query', 'embedding_type': 'float', 'query', 'query'
    "embedding_type": "float",
    "input": [
        "Wie viele gelabelte Eingaben unterstützt Jina AI's Embedding-Modell?"
    ]
}

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

qdrant_client = QdrantClient(
    url="",
    api_key="",
)

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

print(ergebnisse)

Zusammenfassungen

Basierend auf seinem Vorgänger deckt jina-colbert-v2 89 globale Sprachen und eine große Auswahl an Einbettungsausgabedimensionen ab, die es dem Benutzer ermöglichen, die Anforderungen an Genauigkeit und Effizienz flexibel auszugleichen und Berechnungs- und Zeitkosten zu sparen. Klicken Sie auf https://jina.ai, um es jetzt auszuprobieren und 1 Million Token gratis zu erhalten.

AI Leichtes Lernen

Der Leitfaden für Laien zum Einstieg in die KI

Hilft Ihnen, die Nutzung von KI-Tools kostengünstig und von Null an zu erlernen.KI ist, wie Bürosoftware, eine wesentliche Fähigkeit für jeden. Die Beherrschung von KI verschafft Ihnen einen Vorteil bei der Stellensuche und die Hälfte des Aufwands bei Ihrer zukünftigen Arbeit und Ihrem Studium.

Details ansehen>
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " Der erste mehrsprachige ColBERT der Welt: Jina ColBERT V2 und seine "russische Schachtelpuppen"-Technologie

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)