![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Ich schrieb zuvor über die
Der moderne Data Lake, manchmal auch Data Lakehouse genannt, ist zur Hälfte ein Data Lake und zur Hälfte ein auf der Open Table Format Specification (OTF) basierendes Data Warehouse. Beide basieren auf modernem Objektspeicher.
Gleichzeitig haben wir uns intensiv Gedanken darüber gemacht, wie Unternehmen eine KI-Dateninfrastruktur aufbauen können, die alle ihre KI-/ML-Anforderungen erfüllen kann – nicht nur die Rohspeicherung ihrer Trainings-, Validierungs- und Test-Sets. Mit anderen Worten: Sie sollte die Rechenleistung enthalten, die zum Trainieren großer Sprachmodelle, MLOps-Tools, verteiltes Training und mehr erforderlich ist. Als Ergebnis dieser Überlegungen haben wir ein weiteres Dokument zur Verwendung des modernen Data Lake zusammengestellt.
Quelle:
In beiden Dokumenten werden keine spezifischen Anbieter oder Tools erwähnt. Ich möchte nun die Anbieter und Tools besprechen, die zum Aufbau des modernen Data Lake erforderlich sind. In dieser Top-10-Liste ist jeder Eintrag eine Funktion, die zur Unterstützung generativer KI erforderlich ist.
Enterprise Data Lakes basieren auf Objektspeichern. Nicht auf den altmodischen, gerätebasierten Objektspeichern, die für kostengünstige und tiefgehende Archivierungsanwendungen verwendet wurden, sondern auf modernen, leistungsstarken, softwaredefinierten und Kubernetes-nativen Objektspeichern, den Eckpfeilern des modernen GenAI-Stacks. Sie sind als Service (AWS, GCP, Azure) oder vor Ort oder als Hybrid/beides verfügbar, wie beispielsweise MinIO. Diese Data Lakes müssen Streaming-Workloads unterstützen, über hocheffiziente Verschlüsselung und Erasure Coding verfügen, Metadaten atomar mit dem Objekt speichern und Technologien wie Lambda Compute unterstützen. Da diese modernen Alternativen Cloud-nativ sind, lassen sie sich sofort in den gesamten Stack anderer Cloud-nativer Technologien integrieren – von Firewalls über Observability bis hin zu Benutzer- und Zugriffsverwaltung.
Objektspeicher ist auch die zugrunde liegende Speicherlösung für ein OTP-basiertes Data Warehouse. Die Verwendung von Objektspeicher für ein Data Warehouse mag seltsam klingen, aber ein auf diese Weise erstelltes Data Warehouse stellt die nächste Generation von Data Warehouses dar. Möglich wird dies durch die von Netflix, Uber und Databricks verfassten OTF-Spezifikationen, die den nahtlosen Einsatz von Objektspeicher in einem Data Warehouse ermöglichen.
Die OTFs – Apache Iceberg, Apache Hudi und Delta Lake – wurden geschrieben, weil es auf dem Markt keine Produkte gab, die den Datenbedarf der Entwickler decken konnten. Im Wesentlichen definieren sie alle (auf unterschiedliche Weise) ein Data Warehouse, das auf Object Storage aufgebaut werden kann. Object Storage bietet die Kombination aus skalierbarer Kapazität und hoher Leistung, die andere Speicherlösungen nicht bieten können. Da es sich um moderne Spezifikationen handelt, verfügen sie über erweiterte Funktionen, die altmodische Data Warehouses nicht haben, wie Partitionsentwicklung, Schemaentwicklung und Zero-Copy-Branching.
Zwei MinIO-Partner, die ihr OTF-basiertes Data Warehouse auf MinIO ausführen können, sind Dremio und Starburst.
MLOps ist für maschinelles Lernen das, was DevOps für die traditionelle Softwareentwicklung ist. Beide sind eine Reihe von Praktiken und Prinzipien, die darauf abzielen, die Zusammenarbeit zwischen Entwicklungsteams (Dev oder ML) und IT-Betriebsteams (Ops) zu verbessern. Das Ziel besteht darin, den Entwicklungslebenszyklus durch Automatisierung zu optimieren, von der Planung und Entwicklung bis hin zur Bereitstellung und zum Betrieb. Einer der Hauptvorteile dieser Ansätze ist die kontinuierliche Verbesserung.
MLOps-Techniken und -Funktionen entwickeln sich ständig weiter. Sie möchten ein Tool, das von einem großen Player unterstützt wird, der sicherstellt, dass das Tool ständig weiterentwickelt und verbessert wird und langfristigen Support bietet. Jedes dieser Tools verwendet MinIO im Hintergrund, um Artefakte zu speichern, die während des Lebenszyklus eines Modells verwendet werden.
Ihr Machine-Learning-Framework ist die Bibliothek (normalerweise für Python), die Sie zum Erstellen Ihrer Modelle und zum Schreiben des Codes zum Trainieren dieser Modelle verwenden. Diese Bibliotheken sind reich an Funktionen, da sie eine Sammlung verschiedener Verlustfunktionen, Optimierer, Datentransformationstools und vorgefertigter Ebenen für neuronale Netzwerke bieten. Die wichtigste Funktion dieser beiden Bibliotheken ist ein Tensor. Tensoren sind mehrdimensionale Arrays, die auf die GPU verschoben werden können. Sie verfügen außerdem über eine automatische Differenzierung, die beim Modelltraining verwendet wird.
Die beiden derzeit beliebtesten Frameworks für maschinelles Lernen sind PyTorch (von Facebook) und Tensorflow (von Google).
Beim verteilten Modelltraining werden Machine-Learning-Modelle gleichzeitig auf mehreren Computergeräten oder Knoten trainiert. Dieser Ansatz beschleunigt den Trainingsprozess, insbesondere wenn zum Trainieren komplexer Modelle große Datensätze erforderlich sind.
Beim verteilten Modelltraining wird der Datensatz in kleinere Teilmengen aufgeteilt und jede Teilmenge wird parallel von verschiedenen Knoten verarbeitet. Diese Knoten können einzelne Maschinen innerhalb eines Clusters, einzelne Prozesse oder einzelne Pods innerhalb eines Kubernetes-Clusters sein. Sie können Zugriff auf GPUs haben. Jeder Knoten verarbeitet unabhängig seine Teilmenge an Daten und aktualisiert die Modellparameter entsprechend. Die fünf folgenden Bibliotheken entlasten Entwickler von den meisten Komplexitäten des verteilten Trainings. Sie können sie lokal ausführen, wenn Sie keinen Cluster haben, aber Sie benötigen einen Cluster, um eine spürbare Verkürzung der Trainingszeit zu erreichen.
Ein Modell-Hub ist eigentlich kein Teil der modernen Data-Lake-Referenzarchitektur, aber ich füge ihn trotzdem hinzu, weil er wichtig ist, um schnell mit generativer KI zu beginnen. Hugging Face ist die Anlaufstelle für große Sprachmodelle geworden. Hugging Face hostet einen Modell-Hub, wo Ingenieure vorab trainierte Modelle herunterladen und selbst erstellte Modelle teilen können. Hugging Face ist auch der Autor der Transformers- und Datasets-Bibliotheken, die mit großen Sprachmodellen (LLMs) und den Daten arbeiten, die zum Trainieren und Optimieren dieser Modelle verwendet werden.
Es gibt noch andere Modell-Hubs. Alle großen Cloud-Anbieter bieten eine Möglichkeit, Modelle hochzuladen und freizugeben, aber Hugging Face ist mit seiner Sammlung von Modellen und Bibliotheken in diesem Bereich zum Marktführer geworden.
Ein Anwendungsframework hilft dabei, ein LLM in eine Anwendung zu integrieren. Die Verwendung eines LLM unterscheidet sich von der Verwendung einer Standard-API. Es muss viel Arbeit geleistet werden, um eine Benutzeranforderung in etwas umzuwandeln, das das LLM verstehen und verarbeiten kann. Wenn Sie beispielsweise eine Chat-Anwendung erstellen und Retrieval Augmented Generation (RAG) verwenden möchten, müssen Sie die Anforderung tokenisieren, die Token in einen Vektor umwandeln, in eine Vektordatenbank (siehe unten) integrieren, eine Eingabeaufforderung erstellen und dann Ihr LLM aufrufen. Ein Anwendungsframework für generative KI ermöglicht es Ihnen, diese Aktionen miteinander zu verketten. Das heute am weitesten verbreitete Anwendungsframework ist LangChain. Es verfügt über Integrationen mit anderen Technologien, beispielsweise der Hugging Face Transformer-Bibliothek und der Bibliothek von Unstructured zur Dokumentenverarbeitung. Es ist reich an Funktionen und kann etwas kompliziert in der Verwendung sein. Nachfolgend sind daher einige Alternativen für diejenigen aufgeführt, die keine komplexen Anforderungen haben und etwas Einfacheres als LangChain möchten.
Die meisten Organisationen verfügen nicht über ein einziges Repository mit sauberen und genauen Dokumenten. Vielmehr sind die Dokumente in verschiedenen Teamportalen in vielen Formaten über die gesamte Organisation verteilt. Der erste Schritt bei der Vorbereitung auf generative KI besteht darin, eine Pipeline aufzubauen, die nur Dokumente, die für die Verwendung mit generativer KI freigegeben wurden, in Ihre Vektordatenbank einfügt. Dies könnte möglicherweise die schwierigste Aufgabe einer generativen KI-Lösung für große globale Organisationen sein.
Eine Dokumentpipeline sollte die Dokumente in Text umwandeln, das Dokument in Blöcke aufteilen und den aufgeteilten Text durch ein Einbettungsmodell laufen lassen, damit seine Vektordarstellung in einer Vektordatenbank gespeichert werden kann. Glücklicherweise können einige Open-Source-Bibliotheken dies für viele der gängigen Dokumentformate tun. Einige Bibliotheken sind unten aufgeführt. Diese Bibliotheken könnten mit LangChain verwendet werden, um eine vollständige Dokumentverarbeitungspipeline aufzubauen.
Vektordatenbanken ermöglichen die semantische Suche. Um zu verstehen, wie dies funktioniert, sind umfangreiche mathematische Kenntnisse erforderlich und es ist kompliziert. Konzeptionell ist die semantische Suche jedoch leicht zu verstehen. Angenommen, Sie möchten alle Dokumente finden, die sich mit dem Thema „künstliche Intelligenz“ befassen. Um dies in einer herkömmlichen Datenbank zu tun, müssten Sie nach jeder möglichen Abkürzung, jedem Synonym und jedem verwandten Begriff für „künstliche Intelligenz“ suchen. Ihre Abfrage würde ungefähr so aussehen:
SELECT snippet FROM MyCorpusTable WHERE (text like '%artificial intelligence%' OR text like '%ai%' OR text like '%machine learning%' OR text like '%ml%' OR ... and on and on ...
Diese manuelle Ähnlichkeitssuche ist nicht nur mühsam und fehleranfällig, sondern die Suche selbst ist auch sehr langsam. Eine Vektordatenbank kann eine Anfrage wie die folgende annehmen und die Abfrage schneller und mit größerer Genauigkeit ausführen. Die Fähigkeit, semantische Abfragen schnell und genau auszuführen, ist wichtig, wenn Sie Retrieval Augmented Generation verwenden möchten.
{ Get { MyCorpusTable(nearText: {concepts: ["artificial intelligence"]}) {snippet} } }
Nachfolgend sind vier beliebte Vektordatenbanken aufgeführt.
Es ist immer eine gute Idee, Tools zu haben, mit denen Sie Ihre Daten bearbeiten und auf verschiedene Weise visualisieren können. Die unten aufgeführten Python-Bibliotheken bieten Funktionen zur Datenmanipulation und -visualisierung. Dies scheinen Tools zu sein, die Sie nur für traditionelle KI benötigen, aber sie sind auch bei generativer KI nützlich. Wenn Sie beispielsweise Stimmungsanalysen oder Emotionserkennung durchführen, sollten Sie Ihre Trainings-, Validierungs- und Testsätze überprüfen, um sicherzustellen, dass Sie eine angemessene Verteilung auf alle Ihre Klassen haben.
Da haben Sie es: 10 Funktionen, die in der modernen Data Lake-Referenzarchitektur zu finden sind, zusammen mit konkreten Anbieterprodukten und Bibliotheken für jede Funktion. Unten finden Sie eine Tabelle mit einer Zusammenfassung dieser Tools.