Einführung des IBM Data Prep Kit für optimierte LLM-Workflows
Large Language Models (LLMs) wurden in der Gesundheitsbranche, im Einzelhandel und im E-Commerce weithin eingesetzt und generieren insgesamt Einnahmen in Milliardenhöhe. Ein entscheidender Bestandteil des Erfolgs dieser LLMs sind die Daten, mit denen sie trainiert werden. Die allgemeine Intelligenz dieser Modelle hängt von der Menge, Qualität und Vielfalt der verwendeten Daten ab; daher ist eine effiziente Vorverarbeitung von entscheidender Bedeutung.
Bei einem kürzlich von Zilliz veranstalteten NYC Unstructured Data Meetup sprach Santosh Borse, Senior Engineer bei IBM Research, über ein Open-Source Data Prep Kit (DPK), das sie entwickelt haben, um den Datenvorbereitungsprozess für LLM-Workflows zu optimieren. Er erörterte die Herausforderungen im Zusammenhang mit der Datenqualität, wie sie diese bewältigt haben, und die Pipeline zur Implementierung des Open-Source-DPK.
Dieser Blog fasst seine wichtigsten Punkte zusammen und untersucht, wie DPK weiter mit Milvus für Anwendungen wie semantische Suche und Retrieval Augmented Generation (RAG) integriert werden kann.
Daten sind das neue Öl!
„Daten sind das neue Öl“—diese Aussage lässt sich treffend auf das Wachstum von LLMs anwenden. So wie Öl die Wirtschaft antreibt, sind Daten die Quelle des Erfolgs von LLMs.
Hier ist eine Liste von Datenquellen, die viele LLMs, wie die GPT-Modelle von OpenAI, genutzt haben, um Daten für das LLM-Training zu extrahieren.
Common Crawl: Eine riesige Datenquelle, die Petabytes an Daten enthält, was nahezu 250 Milliarden Webseiten entspricht. Sie ist außerdem eine Obermenge vieler anderer verfügbarer Datensätze. Diese Daten dienen als grundlegende Quelle für allgemeine Sprachmodelle.
Processed Datasets: C4, The Pile, Red Pajama und Wikipedia bieten hochwertige, kuratierte Daten, die auf spezifische Aufgaben zugeschnitten sind.
Domain-Specific Data: Domänenspezifische Daten können genutzt werden, um gezieltere Anwendungsfälle zu adressieren. Einige Beispiele sind BookCorpus für literarische Analysen, MathQA für mathematisches Problemlösen und StarCoder für Coding-bezogene Aufgaben.
HuggingFace: Es verfügt über mehr als 210K Datensätze und ermöglicht die Anpassung für Fine-Tuning-Aufgaben.
Your Own Data: LLMs werden in der Regel mit einer Kombination aus Unternehmensdaten und Open-Source-Daten trainiert.
Datenqualität ist der Schlüssel!
Die Sicherstellung der Datenqualität ist der wichtigste Schritt, um eine optimale LLM-Leistung zu erzielen. Einige der wichtigsten Aspekte, die bei der Verarbeitung Ihrer Trainingsdaten berücksichtigt werden sollten, sind:
Variety—Daten sollten eine Vielzahl von Informationen enthalten und aus verschiedenen Quellen stammen, um sicherzustellen, dass genügend Informationen für die Modellgeneralisierung gelernt werden können.
Linguistic Pattern—Vielfältige sprachliche Muster sollten in den Daten vorhanden sein, damit die LLMs über Sprachen und Domänen hinweg besser generalisierbar sind.
Overfitting vs. Underfitting—Wenn eine Nachricht auf über 100 Seiten im Internet erscheint, wird das Modell auf all diesen Seiten trainiert, was dazu führt, dass es auf diese bestimmten Daten overfittet. Im Gegensatz dazu würde es bei anderen Nachrichten underfitten. Daher muss ein Gleichgewicht zwischen beiden gewahrt werden.
Bias—Biases in Trainingsdaten, wie Geschlechter- oder kulturelle Stereotype, können schädliche Ausgaben in LLMs propagieren. Daher ist Bias-Minderung ein entscheidender Vorverarbeitungsschritt.
Personal Information—Persönliche Informationen sollten codiert oder entfernt werden, um die Privatsphäre und Sicherheit der Person zu schützen.
Bad Data—Daten, die schädliche Inhalte enthalten (Missbrauch, Obszönitäten oder Hassrede), sollten entfernt werden, um die ethischen und professionellen Standards der Modellausgaben zu wahren.
| Schlechte Daten | Gute Daten |
|---|---|
| Dupliziert | Einzigartig & eindeutig |
| Tipp- & Rechtschreibfehler | Genau & fehlerfrei |
| Inkonsistent | Konsistent |
| Halluzinationen | Validiert |
| Toxisch | Sicher und geschützt |
| … | … |
Tabelle: Gute Daten vs. schlechte Daten
Wenn die Daten weiterhin von schlechter Qualität sind, erhöhen sich die Rechenkosten und die Zeit, die erforderlich sind, um LLMs effektiv zu trainieren.
Datenbereinigung
Die Datenbereinigung ist ein weiterer wesentlicher Schritt bei der Datenvorverarbeitung für LLMs. Sie stellt sicher, dass die Trainingsdaten frei von Inkonsistenzen, Ungenauigkeiten oder irrelevanten Informationen sind. Nachfolgend sind einige der wichtigsten Schritte zur Datenbereinigung aufgeführt.
Abbildung- Beispiele für Datenbereinigung .png
Abbildung: Beispiele für Datenbereinigung
Deduplizierung—Doppelte Datensatzeinträge können Trainingsergebnisse verzerren, was zu ineffizienter Ressourcennutzung und Overfitting führt.
Qualitätsfilter—Filter zum Entfernen inkonsistenter Daten (z. B. zwei Sprachen im selben Satz), zum Imputieren fehlender Werte, Normalisieren von Formaten, Entfernen unerwünschter Muster oder Texte und zur weiteren Bereinigung der Daten.
Inhaltsfilter—Toxische oder voreingenommene Daten werden gefiltert, indem bestimmte schädliche Wörter durch moderierte und ethische Wörter ersetzt werden, die für alle inklusiver sind.
Datenschutzreduktion—Personenbezogene Informationen (PII) werden mit bestimmten Schlüsselwörtern codiert, um die Privatsphäre der Daten von Einzelpersonen oder Organisationen zu schützen.
Regelbasierte Bereinigung—Bestimmte Regeln werden festgelegt, um Fehler im Zusammenhang mit Tippfehlern, unnötigen Satzzeichen, Formatierungsproblemen usw. zu entfernen.
Data Prep Kit und der Datenweg für das IBM Granite Model
Nachdem Santosh Borse über die wichtigsten Probleme mit der Datenqualität und deren Behandlung durch Datenbereinigung gesprochen hatte, erläuterte er den Datenverarbeitungsweg für ihr eigenes IBM Granite Model, das unten gezeigt wird. Er erwähnt außerdem einige interessante Statistiken zum Datenvolumen (letztendlich 2,5 Billionen Tokens für das Training) nach einigen Vorverarbeitungsschritten, wie unten beschrieben. Über 70 % der Rohdaten sind unbrauchbar, was verdeutlicht, dass Datenvorverarbeitung und -bereinigung entscheidende Schritte sind.
Das Data Prep Kit (DPK) ist ein Open-Source-Toolkit von IBM Research, das entwickelt wurde, um die Vorbereitung von unstrukturierten Daten für Entwickler zu vereinfachen, die LLM-gestützte Anwendungen erstellen. Es ist auf Anwendungsfälle wie Fine-Tuning, Instruction-Tuning und Retrieval Augmented Generation (RAG) zugeschnitten und bietet modulare und skalierbare Lösungen zur Bewältigung vielfältiger Herausforderungen bei der Datenverarbeitung. DPK war hilfreich und effektiv bei der Erstellung von Pre-Training-Datensätzen für die Open-Source-LLM-Modelle Granite.
DPK-Workflow
Das Data Prep Kit (DPK) vereinfacht die Datenvorbereitung mit wiederverwendbaren Transforms (Modulen), die für Code- und Sprachdaten entwickelt wurden. Es ist außerdem vorgesehen, die Unterstützung auf Bilder, Sprache und multimodale Daten auszuweiten. DPK bietet High-Level-APIs, mit denen Entwickler schnell mit der Verarbeitung ihrer Daten beginnen können, ohne tiefgehende Kenntnisse der zugrunde liegenden Frameworks oder Laufzeiten zu benötigen.
Abbildung- Data Prep Kit Workflow.png
Abbildung: Data Prep Kit Workflow
Der Workflow beginnt mit der Konvertierung von Eingabedateien (wie HTML, PDFs oder Code) in das standardisierte Parquet-Format, wodurch konsistente Datenschemata sichergestellt werden. Im Kern umfasst DPK eine robuste Datenverarbeitungsbibliothek, die es Benutzern ermöglicht, vordefinierte oder benutzerdefinierte Transformationen anzuwenden und mehrere Transformationen zu verketten, um Daten systematisch zu verarbeiten. Beispielsweise können Textdaten eine exakte Deduplizierung durchlaufen und anschließend mit Schritten wie Dokumentqualitätsanalyse und Tokenisierung oder Dokumentaufteilung und Embedding-Erzeugung fortfahren.
Die resultierenden Dokument-Embeddings können für fortgeschrittene Anwendungen wie das Fine-Tuning von Modellen, die Implementierung von RAG-Pipelines oder Instruct-Tuning genutzt werden. Durch die Automatisierung und Standardisierung des Datenvorbereitungsprozesses ermöglicht DPK Entwicklern, sich auf den Aufbau und die Verfeinerung ihrer KI-Modelle zu konzentrieren und mühelos von Laptops bis hin zu clusterbasierten Umgebungen zu skalieren.
DPK ermöglicht Benutzern auch, eigene benutzerdefinierte Transformationen zu erstellen und hinzuzufügen, um spezifische Anforderungen zu erfüllen. So können Sie beginnen:
Schritt-für-Schritt-Tutorial, das Ihnen hilft, Ihre eigene Transformation hinzuzufügen.
Versuchen Sie, Ihre erste benutzerdefinierte Transformation zu implementieren
Umfassende Demo, um alle Schritte der Dokumentvorverarbeitung in einem einzigen Workflow zu implementieren.
Integration von DPK mit Milvus für RAG
Nachdem die Rohdaten DPK durchlaufen haben, sind das Ergebnis Text-Embeddings, die weiter mit Vektordatenbanken wie Milvus integriert werden können, um interessante LLM-Anwendungen zu erstellen. Betrachten wir ein Beispiel für eine RAG-Pipeline durch die Integration von DPK mit Milvus.
Retrieval Augmented Generation (RAG) ist eine fortgeschrittene Technik, die die Genauigkeit, Relevanz und faktische Fundierung von LLM-Ausgaben verbessert, indem sie Retrieval- und Generierungsmethoden kombiniert. Sie besteht aus zwei Schlüsselkomponenten: dem Retriever, der relevante Kontextinformationen aus einer mit externen Daten gefüllten Vektordatenbank wie Milvus abruft, und dem Generator, der diesen Kontext nutzt, um präzise und aussagekräftige Antworten zu erstellen.
Unten sehen Sie die RAG-Pipeline, die mit Milvus und DPK erstellt wurde. Milvus dient in dieser Pipeline als Retriever und verwaltet und durchsucht effizient groß angelegte externe Daten. DPK verarbeitet die Daten vor und stellt sicher, dass sie sauber, konsistent und hochwertig sind, bevor sie in Milvus gespeichert werden. Das LLM ist der Generator und erzeugt genaue und kontextbewusste Antworten, die auf die Bedürfnisse der Benutzer zugeschnitten sind.
Abbildung- Gesamtworkflow des Data Prep Kit mit Milvus für RAG.png
Abbildung: Gesamtworkflow des Data Prep Kit mit Milvus für RAG (Quelle)
Dokumente bereinigen - Dieser Schritt führt alle Datenvorverarbeitungsfunktionen aus, wie das Entfernen von Markups, die Durchführung exakter und unscharfer Deduplizierung usw.
In Chunks aufteilen - Teilt die Dokumente mithilfe verschiedener Chunking-Strategien in handhabbare Chunks oder Segmente auf. Dokumente können entweder in Seiten, Absätze oder Abschnitte aufgeteilt werden. Die richtige Chunking-Strategie hängt von den verarbeiteten Dokumenttypen ab.
Vektorisieren/Generieren Embeddings - Die erhaltenen Chunks werden anschließend mithilfe von Embedding-Modellen vektorisiert. Dieser Schritt dient dazu, den Text durchsuchbar zu machen.
Speichern von Daten in der Milvus Vektordatenbank - Milvus speichert alle codierten Embeddings und bereitet sie für den Ähnlichkeitsabruf vor.
Vektorisieren der Frage - Wenn ein Benutzer eine Frage stellt, wird sie mit demselben Embedding-Modell vektorisiert.
Vektorsuche - Die codierte Abfrage wird für eine Vektorähnlichkeitssuche an Milvus gesendet.
Relevante Dokumente abrufen - Milvus gibt die Top-K-Dokumente zurück, die für die Abfrage am relevantesten sind.
Einen neuen Prompt erstellen: Die abgerufenen Dokumente und die ursprüngliche Abfrage werden kombiniert, um einen neuen Prompt für das LLM zu erstellen.
LLM gibt Antwort aus— Schließlich generiert das LLM mithilfe seines Wissens und der aus der Milvus-Vektordatenbank abgerufenen Kontextinformationen eine genauere Antwort.
Um die vollständige Implementierung des oben beschriebenen Workflows anzusehen, sehen Sie sich dieses Tutorial an.
Fazit
IBMs Open-Source Data Prep Kit (DPK) vereinfacht die Datenvorverarbeitung für LLM-Workflows, indem es häufige Herausforderungen wie Toxizität, Overfitting und Verzerrungen in Daten angeht. Mit über 20 modularen Transformationen optimiert DPK wesentliche Aufgaben wie Deduplizierung, Filterung und Datenschutz. Die DPK-Pipeline beginnt mit der Vorverarbeitung von Rohdaten wie PDFs oder HTML und deren Umwandlung in strukturierte Formate wie Parquet. Qualitätsprüfungen, Datenbereinigung und Embedding-Generierung folgen auf diesen Schritt. Diese Embeddings können in Vektordatenbanken wie Milvus gespeichert werden, um Anwendungen wie Fine-Tuning und Retrieval-Augmented Generation (RAG) zu unterstützen.
Dieser Blog zeigte außerdem, wie die Integration von Milvus mit DPK den Abruf kontextuell relevanter Dokumente ermöglicht und LLM-Ausgaben durch zuverlässige und faktenbasierte Antworten verbessert.
Relevante Ressourcen
Weiterlesen

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.


