paint-brush
Ein Konzept der kollektiven KI auf Ethereum und Ethereum Swarmvon@thebojda
609 Lesungen
609 Lesungen

Ein Konzept der kollektiven KI auf Ethereum und Ethereum Swarm

von Laszlo Fazekas11m2024/07/15
Read on Terminal Reader

Zu lang; Lesen

Ich glaube, dass künstliche Intelligenz in Zukunft ein viel integralerer Teil unseres täglichen Lebens sein wird als heute. KI wird ein Teil von uns! Statt Mobiltelefonen werden wir intelligente Brillen mit Kameras tragen, die alles aufzeichnen, und Mikrofonen, die alles hören. Wir werden ständig mit unseren lokal laufenden Sprachmodellen und anderen Agenten im Dialog stehen, die sich im Laufe der Zeit durch Feinabstimmung an unsere Bedürfnisse anpassen. Aber diese Agenten werden nicht nur mit uns, sondern auch untereinander kommunizieren und dabei ständig das kollektive Wissen nutzen, das von der gesamten Gemeinschaft produziert wird. Dieses System wird die Menschheit in einer Form kollektiver Intelligenz organisieren, was eine sehr bedeutsame Sache ist. Es ist nicht akzeptabel, dass diese kollektive Intelligenz Eigentum eines einzelnen Unternehmens oder einer einzelnen Entität wird. Deshalb brauchen wir die oben beschriebenen oder ähnliche Systeme!
featured image - Ein Konzept der kollektiven KI auf Ethereum und Ethereum Swarm
Laszlo Fazekas HackerNoon profile picture

Derzeit können die wichtigsten Akteure im Bereich der KI in zwei große Gruppen unterteilt werden: Befürworter der Open-Source-KI und Befürworter der geschlossenen KI.


Interessanterweise ist einer der größten Befürworter von Closed AI OpenAI selbst, das den Quellcode seiner Modelle nicht freigibt, sondern nur Zugriff darauf gewährt. Normalerweise wird argumentiert, dass es zu gefährlich wäre, diese Modelle zu veröffentlichen, daher sei eine zentrale Kontrolle notwendig, genau wie bei der Kernenergie. Natürlich gibt es eine Grundlage für dieses Argument, aber es ist nicht schwer, die Geschäftsinteressen hinter der Entscheidung zu erkennen. Wenn der Quellcode von ChatGPT für alle verfügbar wäre, wer würde dann für den Dienst bezahlen?!


Im Gegensatz dazu glauben Befürworter von Open-Source-KI, wie etwa Meta (Facebook), dass geschlossene KI den Fortschritt behindert und Open-Source-KI die richtige Richtung ist. Natürlich lohnt es sich auch, hier die geschäftlichen Aspekte zu betrachten. Für Meta ist das KI-Modell nicht das Hauptprodukt. Für sie ist KI nur ein Werkzeug und das Teilen des Modells stellt keinen geschäftlichen Nachteil dar. Im Gegenteil, es bietet einen geschäftlichen Vorteil, da Meta später die Entwicklungen der Community nutzen kann. Allerdings gibt es auch bei diesem Modell ein kleines Problem. Es ist nicht wirklich Open Source.


Ein KI-Modell ist im Wesentlichen eine riesige mathematische Gleichung mit anpassbaren Parametern. Diese Parameter werden während des Trainingsprozesses festgelegt. Wenn ein Unternehmen von Open-Source-KI spricht, bedeutet dies, dass diese Parameter frei zugänglich gemacht werden, sodass jeder das Modell auf seinem Computer ausführen kann. Aber es ist nicht vollständig Open Source!


Im Fall von KI ist das Training analog zum Erstellen traditioneller Programme. Darauf basierend stellen die Modellparameter die Binärdatei dar. Wenn Meta, X (Twitter) oder andere Unternehmen ihre Modellquelle offen legen, geben sie eigentlich nur das Ergebnis preis.


Was wir also erhalten, ist die Parametrisierung einer festen Architektur. Wenn wir etwas an der Architektur ändern oder verbessern möchten, beispielsweise eine Mamba-Architektur anstelle einer Transformer-Architektur verwenden möchten, müssten wir das Modell neu trainieren, was wir ohne den Trainingssatz nicht tun können. Daher können diese Modelle nur feinabgestimmt, aber nicht weiterentwickelt werden.


Die sogenannten Open-Source-Modelle sind nicht wirklich Open-Source, da die Architektur festgelegt ist. Diese Modelle können nur feinabgestimmt, aber nicht weiterentwickelt werden, da dazu auch das Trainingsset benötigt würde. Echte Open-Source-KI besteht sowohl aus dem Modell als auch aus dem Trainingsset!


„Open-Source“-KI-Modelle sind in der Regel Produkte großer Unternehmen. Das ist verständlich, denn das Training eines großen Modells erfordert enorme Rechenkapazitäten und damit viel Geld. Nur große Unternehmen verfügen über solche Ressourcen, weshalb die KI-Entwicklung zentralisiert erfolgt.


So wie die Blockchain-Technologie in Form von Bitcoin die Möglichkeit dezentralen Geldes geschaffen hat, ermöglicht sie uns auch, echte Open-Source-KI zu schaffen, die der Community und nicht einem Unternehmen gehört.


Dieser Artikel ist ein Konzept, wie eine solche wirklich Open-Source-KI auf Community-Basis mithilfe der Blockchain-Technologie entwickelt werden könnte.


Wie ich bereits erwähnt habe, ist die Grundlage einer wirklich Open-Source-KI ein offener Datensatz. Der Datensatz ist tatsächlich die wertvollste Ressource. Im Fall von ChatGPT wurde das Sprachmodell beispielsweise anhand öffentlich verfügbarer Datenbanken (z. B. Common Crawl) trainiert und dann in einer nachfolgenden Phase mit menschlicher Unterstützung (RLHF) feinabgestimmt. Diese Feinabstimmung ist aufgrund der damit verbundenen menschlichen Arbeit extrem kostspielig, verleiht ChatGPT jedoch seine Stärke. Die Architektur selbst ist (vermutlich) ein allgemeiner Transformator oder eine modifizierte Version davon, die Mixture of Experts, was mehrere parallele Transformatoren bedeutet. Der entscheidende Punkt ist, dass die Architektur nichts Besonderes ist. Was ChatGPT (und jedes andere Modell) einzigartig macht, ist der gute Datensatz. Dies verleiht dem Modell seine Stärke.


Ein KI-Trainingsdatensatz ist typischerweise mehrere Terabyte groß, und was in einen solchen Datensatz aufgenommen werden kann und was nicht, kann je nach Gruppe und Kultur unterschiedlich sein. Die Auswahl der Daten ist sehr wichtig, da sie beispielsweise die „Persönlichkeit“ eines großen Sprachmodells bestimmt. Es kam zu mehreren großen Skandalen, weil sich KI-Modelle großer Unternehmen (Google, Microsoft usw.) rassistisch verhielten. Dies ist auf die falsche Auswahl des Datensatzes zurückzuführen. Da die Anforderungen an den Datensatz je nach Kultur unterschiedlich sein können, können mehrere Forks erforderlich sein. Dezentrale, inhaltsadressierte Speicherlösungen wie IPFS oder Ethereum Swarm sind ideal zum Speichern solcher versionierter, mehrteiliger großer Datensätze. Diese Speicherlösungen funktionieren ähnlich wie das Versionskontrollsystem GIT, bei dem einzelne Dateien mit einem aus dem Inhalt generierten Hash adressiert werden können. In solchen Systemen können Forks kostengünstig erstellt werden, da nur die Änderungen gespeichert werden müssen und der gemeinsame Teil der beiden Datensätze in einer einzigen Instanz gespeichert wird.


Sobald wir über die entsprechenden Datensätze verfügen, können wir mit dem Trainieren des Modells fortfahren.


Wie in der Einleitung erwähnt, ist ein KI-Modell im Wesentlichen eine riesige mathematische Gleichung mit zahlreichen freien Parametern. Generell gilt: Je mehr freie Parameter ein Modell hat, desto „intelligenter“ ist es, daher wird die Anzahl der Parameter oft im Namen des Modells angegeben. Das Modell llma-2-7b bedeutet beispielsweise, dass die Modellarchitektur llma-2 ist und 7 Milliarden Parameter hat. Während des Trainings werden diese Parameter anhand des Datensatzes festgelegt, sodass das Modell für die gegebene Eingabe die angegebene Ausgabe liefert. Zum Training wird Backpropagation verwendet, die mit Hilfe partieller Ableitungen die am besten passenden Parameter findet.


Während des Trainings wird der Datensatz in Batches aufgeteilt. In jedem Schritt liefert ein bestimmter Batch die Eingabe- und Ausgabeparameter, und mithilfe der Backpropagation wird berechnet, wie die Parameter des Modells geändert werden müssen, um die gegebene Ausgabe aus der gegebenen Eingabe genau zu berechnen. Dieser Vorgang muss für den gegebenen Datensatz mehrmals wiederholt werden, bis das Modell die gewünschte Genauigkeit erreicht. Die Genauigkeit kann mit dem Testdatensatz überprüft werden.


Große Unternehmen führen das Training auf riesigen GPU-Clustern durch, da das Training enorme Rechenkapazitäten erfordert. In einem dezentralen System besteht eine zusätzliche Herausforderung darin, dass einzelne Knoten unzuverlässig sind und Unzuverlässigkeit immer mit Kosten verbunden ist! Diese Unzuverlässigkeit ist der Grund, warum Bitcoin den Energieverbrauch eines kleinen Landes hat. Bitcoin verwendet den Proof of Work-Konsens, bei dem die Rechenkapazität die Zuverlässigkeit ersetzt. Anstatt einzelnen Knoten zu vertrauen, vertrauen wir darauf, dass gut gemeinte Knoten über mehr Rechenkapazität verfügen als böswillige Knoten im Netzwerk. Glücklicherweise gibt es andere Konsensmechanismen, wie z. B. Proof of Stake, das von Ethereum verwendet wird, wo eingesetztes Geld unsere Zuverlässigkeit anstelle der Rechenkapazität garantiert. In diesem Fall ist keine große Rechenkapazität erforderlich, was zu einem deutlich geringeren Energiebedarf und einer geringeren Umweltbelastung führt.


Beim dezentralen Training ist ein Mechanismus erforderlich, um das Vertrauen zwischen dem Trainingsknoten und dem Anforderer zu ersetzen. Eine mögliche Lösung besteht darin, dass der Trainingsknoten ein Protokoll des gesamten Trainingsvorgangs erstellt und ein Dritter, ein Validierungsknoten, das Protokoll an bestimmten Punkten stichprobenartig überprüft. Wenn der Validierungsknoten das Training als zufriedenstellend erachtet, erhält der Trainingsknoten die angebotene Zahlung. Der Validierer kann nicht das gesamte Protokoll überprüfen, da dies bedeuten würde, alle Berechnungen erneut durchzuführen, und die Rechenanforderungen der Validierung denen des Trainings entsprechen würden.


Eine weitere Option ist die optimistische Lösung, bei der wir davon ausgehen, dass der Knoten die Berechnung korrekt durchgeführt hat, und eine Einspruchsfrist einräumen, während der jeder das Gegenteil beweisen kann. In diesem Fall setzt der Knoten, der die Berechnung durchführt, einen größeren Betrag (Strafe) ein, und der Knoten, der die Berechnung anfordert, setzt ebenfalls einen Betrag (Belohnung) ein. Der Knoten führt die Berechnung durch und veröffentlicht dann das Ergebnis. Darauf folgt die Einspruchsfrist (z. B. 1 Tag). Wenn jemand während dieser Frist durch Zufallsprüfungen einen Fehler in der Berechnung findet und diesen veröffentlicht, erhält er die vom Rechenknoten eingesetzte Strafe und der Anforderer seine Belohnung zurück. Wenn während der Einspruchsfrist niemand beweisen kann, dass die Berechnung falsch ist, erhält der Rechenknoten die Belohnung.


Es gibt eine Variante von Zero-Knowledge-Beweisen namens zkSNARK, die sich ebenfalls dazu eignet, zu überprüfen, ob jemand eine Berechnung durchgeführt hat. Der Hauptvorteil dieser Methode besteht darin, dass die Überprüfung kostengünstig durchgeführt werden kann, das Erstellen des Beweises jedoch eine rechenintensive Aufgabe ist. Da diese Methode selbst für einfachere Berechnungen sehr kostspielig ist, würde sie für das KI-Training deutlich mehr Rechenressourcen erfordern als das Training selbst, sodass wir sie derzeit wahrscheinlich nicht für diesen Zweck verwenden können. Dennoch ist zkML ein aktives Forschungsgebiet, und es ist denkbar, dass die dritte Partei in Zukunft durch einen Smart Contract ersetzt werden könnte, der den SNARK überprüft.


Aus dem oben Gesagten geht klar hervor, dass es mehrere Lösungen zur Überprüfung von Berechnungen gibt. Sehen wir uns auf dieser Grundlage an, wie unser Blockchain-basiertes dezentrales Trainingsunterstützungssystem aufgebaut werden könnte.


In diesem System sind Datensätze über DAOs Eigentum der Community. Die DAO entscheidet, welche Daten in den Datensatz aufgenommen werden können. Wenn eine Gruppe von Mitgliedern mit der Entscheidung nicht einverstanden ist, kann sie sich von der DAO abspalten und eine neue DAO gründen, wo sie den vorhandenen Datensatz aufspaltet und unabhängig weiter ausbaut. Somit wird die DAO zusammen mit dem Datensatz aufgespalten. Da der Datensatz in einem inhaltsadressierten dezentralen Speicher (z. B. Ethereum Swarm) gespeichert ist, ist das Aufspalten nicht teuer. Die Speicherung des Datensatzes wird von der Community finanziert.


Auch der Trainingsprozess wird von einer DAO gesteuert. Über die DAO können sich Trainingsknoten registrieren, die ihre ungenutzte Rechenkapazität verkaufen möchten. Um sich zu bewerben, müssen sie einen Anteil an einem Smart Contract hinterlegen. Versucht ein Knoten während der Berechnung zu betrügen, verliert er diesen Anteil.


Der Anforderer wählt den Datensatz und das Modell aus, das er trainieren möchte, und bietet dann eine Belohnung an. Das Angebot ist öffentlich, sodass sich jeder Trainingsknoten für die Ausführung der Aufgabe bewerben kann. Der Trainingsknoten erstellt ein vollständiges Protokoll des Trainingsprozesses, wobei jeder Eintrag dem Training eines Batches entspricht. Der Eintrag umfasst die Eingabe, die Ausgabe, die Gewichtsmatrix und alle relevanten Parameter (z. B. den Zufallsstartwert, der von der Dropout-Schicht verwendet wird, um die zu löschenden Daten auszuwählen). Somit kann die gesamte Berechnung anhand des Protokolls reproduziert werden.


Wie bereits erwähnt, können verschiedene Methoden zur Überprüfung der Berechnung verwendet werden. Die einfachste ist der optimistische Ansatz. In diesem Fall platziert der Anforderer die Belohnung in einem Smart Contract und der Trainingsknoten veröffentlicht das Trainingsprotokoll. Nach der Veröffentlichung steht ein festgelegter Zeitrahmen (z. B. 1 Tag) zur Überprüfung der Berechnung zur Verfügung. Wenn der Anforderer oder jemand anderes während dieser Zeit einen Beweis vorlegt, dass ein bestimmter Schritt falsch ist, verliert der Trainingsknoten seinen Einsatz und der Anforderer erhält die Belohnung zurück. In diesem Fall erhält der Knoten, der den richtigen Beweis vorlegt, den Einsatz, was alle dazu anregt, die Berechnungen zu validieren. Wenn niemand einen solchen Beweis vorlegt, erhält der Trainingsknoten nach Ablauf der Zeit die Belohnung.


Kurz gesagt funktioniert das System folgendermaßen. Natürlich ergeben sich einige Fragen.

Wer trägt die Kosten für das Training und die Speicherung der Datensätze?

Das Geschäftsmodell des Systems ist das gleiche wie bei den meisten kostenlosen und Open-Source-Lösungen, wie zum Beispiel dem Linux-Geschäftsmodell. Wenn ein Unternehmen ein Modell benötigt und kein Problem damit hat, dass es kostenlos und Open Source ist, ist es viel kostengünstiger, darin zu investieren, als ein eigenes Modell zu trainieren. Stellen Sie sich vor, 10 Unternehmen benötigen dasselbe Sprachmodell. Wenn es ihnen nichts ausmacht, dass das Modell offen ist, ist es für jedes Unternehmen viel wirtschaftlicher, 1/10 der Trainingskosten zu zahlen, als den vollen Betrag. Dasselbe gilt für die Datensätze, die die Grundlage für das Training bilden. Für Trainingsmodelle können sogar Crowdfunding-Kampagnen erstellt werden, bei denen zukünftige Benutzer des Modells zu seiner Entwicklung beitragen können.


Ist es nicht günstiger, Modelle in der Cloud zu trainieren?

Da die Preise in einem solchen System vom Markt reguliert werden, ist es schwierig, eine definitive Antwort darauf zu geben. Es hängt davon ab, wie viel freie Rechenkapazität den Nutzern zur Verfügung steht. Die Macht der Community haben wir bereits bei Bitcoin gesehen. Die Rechenkapazität des Bitcoin-Netzwerks übertrifft die jedes Supercomputers. Cloud-Anbieter müssen Gewinne erwirtschaften, während in einem dezentralen System wie diesem die Nutzer ihre ungenutzte Rechenkapazität anbieten. Beispielsweise kann jemand mit einem leistungsstarken Gaming-PC seine ungenutzte Kapazität anbieten, wenn er nicht spielt. In diesem Fall lohnt es sich für den Nutzer bereits, wenn der Dienst etwas mehr generiert als die verbrauchte Energie. Darüber hinaus gibt es auf der Welt viel Abfallenergie, die nicht auf herkömmliche Weise genutzt werden kann. Ein Beispiel dafür ist die thermische Energie, die von Vulkanen erzeugt wird. Diese Standorte verfügen normalerweise nicht über ein etabliertes Stromnetz und sind daher für die Erzeugung nutzbarer Elektrizität ungeeignet. Es gibt bereits Startups, die diese Energie für das Bitcoin-Mining verwenden. Warum sie nicht für „Intelligence Mining“ verwenden? Da die Energie in diesem Fall praktisch kostenlos ist, müssen nur die Kosten für die Hardware gedeckt werden. Es liegt also auf der Hand, dass es viele Faktoren gibt, die das Training in einem solchen dezentralen System deutlich günstiger machen könnten als in der Cloud.


Was ist mit der Schlussfolgerung?

Beim Ausführen von KI-Modellen ist der Datenschutz ein sehr wichtiges Thema. Große Dienstanbieter garantieren natürlich, dass sie unsere Daten vertraulich behandeln, aber können wir sicher sein, dass niemand unsere Gespräche mit ChatGPT belauscht? Es gibt Methoden (z. B. homomorphe Verschlüsselung), mit denen Server Berechnungen mit verschlüsselten Daten durchführen können, aber diese haben einen hohen Overhead. Die sicherste Lösung besteht darin, die Modelle lokal auszuführen. Glücklicherweise wird die Hardware immer leistungsfähiger und es gibt bereits spezialisierte Hardwarelösungen zum Ausführen von KI. Auch die Modelle selbst verbessern sich erheblich. Untersuchungen zeigen, dass die Leistung in vielen Fällen auch nach der Quantisierung nicht stark nachlässt, selbst in Extremfällen, in denen nur 1,5 Bit zur Darstellung von Gewichten verwendet werden. Diese letztere Lösung ist besonders vielversprechend, da sie die Multiplikation eliminiert, die die teuerste Operation ist. Daher werden wir in Zukunft dank der Entwicklung von Modellen und Hardware wahrscheinlich Modelle ausführen, die das menschliche Niveau lokal übertreffen. Darüber hinaus können wir diese Modelle mit Lösungen wie LoRA nach unseren Wünschen anpassen.


Verteiltes Wissen

Eine weitere sehr vielversprechende Richtung ist die Retrieval-Augmented Generation (RAG). Dies bedeutet, dass „lexikalisches Wissen“ in einer Vektordatenbank gespeichert wird und unser Sprachmodell den entsprechenden Kontext aus dieser Datenbank für die gegebene Frage sammelt. Dies ist unserer Funktionsweise sehr ähnlich. Natürlich kann niemand ein ganzes Lexikon auswendig lernen. Wenn uns eine Frage gestellt wird, reicht es aus, zu wissen, wo das erforderliche Wissen zu finden ist. Indem wir die relevanten Einträge lesen und interpretieren, können wir eine zusammenhängende Antwort geben. Diese Lösung hat zahlreiche Vorteile. Einerseits reicht ein kleineres Modell aus, das lokal einfacher ausgeführt werden kann, und andererseits kann Halluzination, ein großes Problem bei Sprachmodellen, minimiert werden. Darüber hinaus kann das Wissen des Modells ohne erneutes Training einfach erweitert werden, indem der Vektordatenbank einfach neues Wissen hinzugefügt wird. Ethereum Swarm ist eine ideale Lösung zum Erstellen einer solchen Vektordatenbank, da es nicht nur eine dezentrale Speichermaschine, sondern auch eine Kommunikationslösung ist. Beispielsweise kann Gruppennachrichten über Swarm implementiert werden, wodurch die Erstellung einer einfachen verteilten Vektordatenbank ermöglicht wird. Der Knoten veröffentlicht die Suchanfrage und die anderen Knoten antworten, indem sie das zugehörige Wissen zurückgeben.


Zusammenfassung: Implementierung von LLM OS über Ethereum und Swarm

Die Idee von LLM OS stammt von Andrej Karpathy, der sie auf Twitter veröffentlichte. LLM OS ist ein hypothetisches Betriebssystem, das auf einem großen Sprachmodell basiert. In unserem Blockchain-basierten verteilten System können wir dies als einen Agenten betrachten, der auf dem Knoten eines Benutzers ausgeführt wird. Dieser Agent kann mit anderen Agenten und herkömmlichen Software 1.0-Tools kommunizieren. Dazu können ein Taschenrechner, ein Python-Interpreter oder sogar die Steuerung eines physischen Roboters, Autos oder Smart Homes gehören. In unserem System wird das Dateisystem durch Swarm und die über Swarm erstellte Vektordatenbank dargestellt, in der gemeinsames Wissen zugänglich ist. Das gesamte System (das Kollektiv der Agenten) kann als eine Form kollektiver Intelligenz betrachtet werden.

Ich glaube, dass künstliche Intelligenz in Zukunft ein viel integralerer Teil unseres täglichen Lebens sein wird als heute. KI wird ein Teil von uns! Statt Mobiltelefonen werden wir intelligente Brillen mit Kameras tragen, die alles aufzeichnen, und Mikrofonen, die alles hören. Wir werden ständig mit unseren lokal laufenden Sprachmodellen und anderen Agenten im Dialog stehen, die sich im Laufe der Zeit durch Feinabstimmung an unsere Bedürfnisse anpassen. Aber diese Agenten werden nicht nur mit uns, sondern auch untereinander kommunizieren und dabei ständig das kollektive Wissen nutzen, das von der gesamten Gemeinschaft produziert wird. Dieses System wird die Menschheit in einer Form kollektiver Intelligenz organisieren, was eine sehr bedeutsame Sache ist. Es ist nicht akzeptabel, dass diese kollektive Intelligenz Eigentum eines einzelnen Unternehmens oder einer einzelnen Entität wird. Deshalb brauchen wir die oben beschriebenen oder ähnliche Systeme!