[Konfetti]

ColPali: Effiziente Dokumentensuche mit Vision-Sprachmodellen 👀

Verwendung von Vision LLMs + Late Interaction zur Verbesserung der Dokumentenabfrage (RAG, Suchmaschinen usw.), ausschließlich unter Verwendung der Bilddarstellung von Dokumentenseiten (Papier)!

 

Kontext

Um die Fähigkeiten von LLMs zur Beantwortung von Fragen zu verbessern, ist es oft am besten, zunächst online oder in externen Dokumentensätzen (PDFs) nach Informationen zu suchen, bevor ein LLM eine fundierte Antwort synthetisiert (RAG). In der Praxis haben diese Abruf-Pipelines für PDF-Dokumente einen enormen Einfluss auf die Leistung, sind jedoch nicht trivial...

  1. Optische Zeichenerkennung (OCR) für gescannte PDF-Dateien ausführen
  2. Führen Sie Modelle zur Erkennung des Dokumentlayouts aus, um Seiten in Absätze, Abbildungen und Überschriften zu segmentieren.
  3. Struktur und Lesereihenfolge der Seite wiederherstellen
  4. Optional können Sie ressourcenintensive Spezialmodelle verwenden, um Abbildungen, Bilder und Tabellen in natürlicher Sprache zu beschriften.
  5. Verwenden Sie eine Chunking-Strategie, um Textpassagen auf kohärente Weise zu teilen oder zusammenzufügen.
  6. Verwenden Sie ein starkes neuronales Einbettungsmodell (BGE M3), um Textabschnitte einem semantisch aussagekräftigen Vektorraum zuzuordnen.
  7. Speichern Sie den Vektorindex für den späteren Abruf.

Obwohl es Tools gibt, die diesen Prozess erleichtern (Unstructured,Surya), kann der gesamte Indizierungsprozess langsam sein, Fehler verbreiten und Schwierigkeiten haben, die eher visuellen Elemente einer Seite (Tabellen, Abbildungen, Bilder, aber auch Schriftarten usw.) zu berücksichtigen.

Unser Konzept? Einfach das Seitenbild direkt einbetten!

In der Praxis ist es nicht so einfach, wie es gerade klingt! Unsere Methode ColPali basiert auf den neuesten Fortschritten im Bereich der Vision Language Models, insbesondere dem PaliGemma-Modell des Google-Teams in Zürich, und nutzt Multi-Vektor-Retrieval durch Late-Interaction-Mechanismen, wie sie in ColBERT von Omar Khattab vorgeschlagen werden. Schauen wir uns das Ganze einmal mit weiteren technischen Details genauer an!

Modellarchitektur

Viele Abrufsysteme lassen sich in zwei Teile untergliedern.

  • In der Indizierungsphase werden alle Dokumente aus dem Korpus offline indiziert.
  • In der Abfragephase wird eine Benutzerabfrage mit geringer Latenz mit dem vorab berechneten Dokumentindex abgeglichen.

Wichtige Anforderungen an effiziente Abrufsysteme sind daher (R1) eine gute Abrufleistung, (R2) angemessene Indizierungsgeschwindigkeiten und (R3) eine geringe Latenzzeit bei der Abfrage.

Bei der Indizierung analysieren standardmäßige neuronale Abrufsysteme mit „Bi-Encoder“ zunächst Dokumente, um semantisch kohärente Textpassagen zu extrahieren, ordnen diese dann einem dichten Vektorraum zu, der die semantische Bedeutung des Textes darstellen soll, und speichern die resultierenden „Einbettungen“. Bei der Abfrage wird die Abfrage in ihre dichte Vektordarstellung umgewandelt, und die Dokumentpassagenvektoren mit der größten Kosinusähnlichkeit können mit geringer Latenz abgerufen werden.

Unsere Methode ColPali ist etwas anders!

Bei der Indizierung versuchen wir, einen Großteil der Komplexität zu reduzieren, indem wir direkt Bilder („Screenshots“) der Dokumentenseiten verwenden. Ein Vision LLM (PaliGemma-3B) codiert das Bild, indem es es in eine Reihe von Patches aufteilt, die an einen Vision Transformer (SigLIP-So400m) weitergeleitet werden. Diese Patch-Einbettungen werden linear projiziert und als „weiche” Token in ein Sprachmodell (Gemma 2B) eingegeben, um hochwertige kontextualisierte Patch-Einbettungen im Sprachmodellraum zu erhalten, die wir dann für eine effizientere Speicherung in eine niedrigere Dimension (D=128) projizieren. Auf diese Weise erstellen und speichern wir für jedes Seitenbild eine Multi-Vektor-Dokumentdarstellung. Während der Laufzeitabfrage wird eine Benutzerabfrage vom Sprachmodell eingebettet, um Token-Einbettungen zu erhalten. Wir sind in der Lage, eine ColBERT-artige„Late Interaction”(LI)-Operation durchzuführen, um Abfragetoken effizient mit Dokument-Patches abzugleichen. Um einen LI(Abfrage, Dokument)-Score zu berechnen, suchen wir für jeden Begriff in der Abfrage nach dem Dokument-Patch, der die ähnlichste ColPali-Darstellung aufweist. Anschließend summieren wir die Werte der ähnlichsten Patches für alle Begriffe der Abfrage, um den endgültigen Abfrage-Dokument-Wert zu erhalten. Intuitiv ermöglicht dieser Late-Interaction-Vorgang eine reichhaltige Interaktion zwischen allen Begriffen der Abfrage und den Dokument-Patches, während gleichzeitig die Vorteile der schnellen Zuordnung und der Offline-Berechnungsauslagerung genutzt werden, die standardmäßigere (Bi-Encoder-)Einbettungsmodelle bieten.

Mit ColPali profitieren wir somit von schnellen Indizierungsgeschwindigkeiten (R2), ohne die Abfragelatenzen (R3) wesentlich zu beeinträchtigen! Aber wie sieht es mit der Leistung (R1) aus?

 

ViDoRe

Obwohl großartig Benchmarks Es gibt zwar Modelle zur Bewertung von Text-Embedding-Modellen, doch wir haben festgestellt, dass in vielen praktischen Anwendungsfällen die vorherige Dokumentenaufnahmepipeline viel wichtiger ist als das Embedding-Modell selbst! Während Dokumente oft auf visuelle Elemente zurückgreifen, um Informationen effizienter an menschliche Leser zu vermitteln, nutzen reine Textsysteme diese visuellen Hinweise kaum. Unseres Wissens gibt es keinen Benchmark, der Methoden zur Dokumentensuche bewertet, indem er sowohl textuelle als auch visuelle Dokumentmerkmale berücksichtigt, wie es ein Mensch tun würde. Zu diesem Zweck stellen wir ViDoRe vor, den Visual Document Retrieval Benchmark, um Suchmaschinen hinsichtlich ihrer Fähigkeit zu bewerten, visuell reichhaltige Informationen in Dokumenten abzurufen, mit Aufgaben, die verschiedene Themen, Modalitäten (Abbildungen, Tabellen, Text) und Sprachen umfassen! ViDoRe ist mit einer HF-Rangliste verknüpft. https://huggingface.co/spaces/vidore/vidore-leaderboard und wir hoffen, dass viele Modelle dieses neue Paradigma „Retrieving in Vision Space” ausprobieren werden!

Ergebnisse

Trainingsdetails

Wir initialisieren das Backbone des Vision Language Model unter Verwendung vortrainierter Gewichte aus PaliGemma und initialisieren die letzte Projektionsschicht zufällig. Um das Training zu erleichtern, fügen wir den Aufmerksamkeitsgewichten des Sprachmodells sowie den linearen Projektionsschichten Low-Rank-Adapter hinzu. Unser Trainingsdatensatz besteht aus (Abfrage, Dokumentbild)-Paaren, die wir aus zwei Hauptquellen bezogen haben. Einerseits haben wir Visual Question Answering-Datensätze wiederverwendet und die ursprüngliche Frage als unsere Abfrage und das zugehörige Bild als Gold-Label verwendet. Um die Abdeckung und Vielfalt des Trainingssatzes zu erhöhen, haben wir außerdem Zehntausende von PDF-Dokumenten mit freizügigen Lizenzen zu einer Vielzahl von Themen gesammelt und mit dem leistungsstarken Claude Sonnet Vision-Modell synthetisch relevante Abfragen erstellt. Insgesamt haben wir rund 100.000 Paare gesammelt und unser Modell mit einem In-Batch-Kontrastverlust feinabgestimmt, indem wir versucht haben, den Unterschied zwischen der Übereinstimmungsbewertung des richtigen (Seite, Abfrage)-Paares und der Bewertung der falschen Paare zu maximieren.

ColPali-Ergebnisse

Bei ViDoRe übertrifft ColPali alle anderen bewerteten Systeme, einschließlich der Baselines, bei denen ein sehr leistungsfähiges proprietäres Vision-Modell (Claude Sonnet) zur Beschriftung aller visuellen Elemente verwendet wird!   Der Unterschied ist besonders deutlich bei den visuell komplexeren Benchmark-Aufgaben wie InfographicVQA, ArxivQA und TabFQuAD, die jeweils Infografiken, Abbildungen und Tabellen darstellen. Aber auch textzentrierte Dokumente werden vom ColPali-Modell in allen bewerteten Domänen und Sprachen besser abgerufen, was unseren Ansatz zum insgesamt leistungsstärksten Dokumentenabrufmodell auf ViDoRe macht!

Interpretierbarkeit

Neben Geschwindigkeit und Leistung ist ein weiteres interessantes Merkmal von ColPali, dass es ermöglicht, zu visualisieren, welche Stellen eines Dokuments in Bezug auf eine bestimmte Suchanfrage hervorstechen. Hier wird der Begriff  Passt zu Patches, die Wörter wie „stündlich“ enthalten, aber auch zur x-Achse, die die Zeit darstellt, und zeigt damit ein gutes Verständnis des Diagramms!

Fazit

Dieser Blogbeitrag ist schon lang genug, aber es gibt gute Nachrichten: Es gibt noch viel mehr Ressourcen, Informationen und Ablationen, und es werden immer mehr werden! 📝 Der Artikel:https://arxiv.org/abs/2407.01449 🗃️ Der Benchmark:https://huggingface.co/vidore 👀 Das Modell:https://huggingface.co/vidore/colpali 💻 Der Benchmark-Code:https://github.com/illuin-tech/vidore-benchmark 💻 Der Trainingscode:https://github.com/ManuelFay/colpali ✖️ X der Erstautoren: @ManuelFaysse, @sibille_hugues, @tonywu_71

Zitat

@misc{faysse2024colpaliefficientdocumentretrieval,
      title={ColPali: Efficient Document Retrieval with Vision Language Models}, 
      author={Manuel Faysse and Hugues Sibille and Tony Wu and Bilel Omrani and Gautier Viaud and Céline Hudelot and Pierre Colombo},
      year={2024},
      eprint={2407.01449},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2407.01449}, 
}

 

Danksagungen

Diese Arbeit ist in erster Linie das Ergebnis einer Partnerschaft zwischen der Hochschule CentraleSupélec und dem Unternehmen Illuin Technology, an der auch Akteure von Equall.ai und der ETH Zürich beteiligt waren. Sie wurde durch einen Rechenzuschuss von CINES ADASTRA (Zuschuss 2024-AD011015443) gefördert. Gemeinsame Arbeit vonManuel Faysse,Hugues Sibille,Tony Wu,Bilel Omrani,Gautier Viaud,Céline Hudelot undPierre Colombo.

Ähnliche Artikel

Erfahren Sie mehr über ILLUIN Technology und unsere Angebote!