exo: Verteilte, lokale KI

KI-Cluster zu Hause? Open-Source-Projekt für lokalen KI-Betrieb großer Modelle

exo: Verteilte, lokale KI
Photo by Eric Krull / Unsplash

Der Aufbau eines eigenen, lokalen KI-Clusters zu Hause schien lange Zeit komplexen Rechenzentren vorbehalten. Mit dem Open-Source-Projekt Exo ändert sich das.

Was ist Exo?

Exo ist ein Open-Source-Projekt, das darauf abzielt, den Aufbau und die Verwaltung von KI-Clustern im Heimgebrauch zu vereinfachen. Es ermöglicht die Nutzung vorhandener Hardware wie Desktop-Computer, Laptops oder Single-Board-Computer, um einen leistungsfähigen Verbund für KI-Workloads zu erstellen, um so auch größere Modelle betreiben zu können.

Das Projekt zielt darauf ab, die Demokratisierung von KI voranzutreiben, indem es die Technologie einem breiteren Publikum zugänglich macht und die Abhängigkeit von Cloud-basierten Lösungen reduziert. Exo stellt die notwendige Software und Werkzeuge bereit, um die verteilte Rechenleistung der einzelnen Geräte effizient zu nutzen und als einen einzigen, leistungsstarken KI-Cluster zu orchestrieren.

Vorteile eines Heim-KI-Clusters

Der Betrieb eines eigenen KI-Clusters zu Hause mit Exo bietet eine Reihe von signifikanten Vorteilen:

  • Datenschutz und Kontrolle: Sensible Daten verbleiben im lokalen Netzwerk und werden nicht an externe Cloud-Anbieter übertragen. Dies erhöht die Privatsphäre und gibt dem Nutzer die volle Kontrolle über seine Daten.
  • Unabhängigkeit von Cloud-Diensten: Die Abhängigkeit von externen Cloud-Ressourcen und damit verbundenen Kosten entfällt. Dies ist besonders interessant für rechenintensive Aufgaben, die kontinuierlich ausgeführt werden sollen.
  • Zensur: Cloud-Dienste unterliegen häufig der Zensur. Wird die KI jedoch für die Analyse komplexer Malware oder für Pentests benötigt, verweigern Cloud-Dienste meistens die Unterstützung. Dies passiert bei lokaler KI nicht.
  • Lern- und Experimentierumgebung: Exo bietet eine ideale Umgebung, um mit verteiltem Rechnen und KI-Technologien zu experimentieren. Es ermöglicht es technisch interessierten Nutzern, praktische Erfahrungen im Aufbau und Betrieb von KI-Infrastrukturen zu sammeln.
  • Ressourcenoptimierung: Vorhandene Hardware kann sinnvoll weitergenutzt werden, anstatt neue, teure Spezialhardware anzuschaffen oder Cloud-Ressourcen zu mieten. Dies fördert die Nachhaltigkeit und Ressourceneffizienz.
Definitiv zu groß für eine Grafikkarte

Funktionsweise von Exo

Exo basiert auf einer verteilten Architektur, die es ermöglicht, heterogene Hardware-Ressourcen zu einem kohärenten Cluster zu verbinden. Es ist daher völlig egal, wie performant jede einzelne Komponente ist. Das System besteht im Wesentlichen aus zwei Hauptkomponenten:

  1. Exo Controller: Der Controller ist die zentrale Steuereinheit des Clusters. Er verwaltet die angeschlossenen Agenten, verteilt Aufgaben und überwacht den Zustand des Clusters. Der Controller kann auf einem beliebigen Rechner im Netzwerk installiert werden.
  2. Exo Agent: Agenten werden auf den einzelnen Geräten (z.B. Desktop-PCs, Laptops, Raspberry Pis) installiert, die Teil des Clusters sein sollen. Sie registrieren sich beim Controller und stellen ihre Rechenressourcen zur Verfügung. Die Agenten führen die vom Controller zugewiesenen Aufgaben aus.

Die Kommunikation zwischen Controller und Agenten erfolgt über das Netzwerk.

Exo unterstützt verschiedene Hardware-Architekturen und Betriebssysteme, was die Flexibilität bei der Zusammenstellung des Clusters erhöht. Die Installation ist extrem einfach. Details zur genauen technischen Implementierung und den unterstützten Technologien können der Projekt-Dokumentation auf GitHub entnommen werden.

Erste Schritte mit Exo

Um mit Exo zu starten und einen eigenen Heim-KI-Cluster aufzubauen, sind folgende Schritte notwendig:

  1. Exo Controller installieren: Wählen Sie einen Rechner aus, auf dem der Exo Controller installiert werden soll. Folgen Sie den Anweisungen in der Exo-Dokumentation, um den Controller einzurichten. Dies beinhaltet in der Regel das Herunterladen und Ausführen von Installationsskripten.
  2. Exo Agenten installieren: Auf jedem Gerät, das als Node im Cluster fungieren soll, muss ein Exo Agent installiert werden. Auch hier sind die genauen Installationsschritte in der Dokumentation des Projekts beschrieben. Typischerweise wird ein Agent so konfiguriert, dass er sich beim Controller registriert.
  3. Cluster konfigurieren: Nachdem Controller und Agenten installiert sind, muss der Cluster konfiguriert werden. Dies kann beispielsweise die Festlegung von Ressourcenlimits für einzelne Agenten oder die Definition von Aufgabenverteilungsstrategien umfassen. Die Konfiguration erfolgt in der Regel über die Kommandozeile oder eine Web-Oberfläche des Controllers (falls vorhanden).
  4. KI-Workloads ausführen: Sobald der Cluster eingerichtet und konfiguriert ist, können KI-Workloads ausgeführt werden. Dies kann das Training von Modellen, die Inferenz oder andere rechenintensive Aufgaben umfassen. Exo bietet Schnittstellen, um Aufgaben an den Cluster zu übermitteln und die Ergebnisse zu verwalten.

In der Praxis

Konkret bedeutet das, dass zunächst das Repository auf den eigenen Rechner geclont werden muss:

git clone https://github.com/exo-explore/exo.git
cd exo

Dann fix die Abhängigkeiten installiert:

pip install .
source install.sh

Und abschließend noch die API starten:

python3 main.py

Und schon kann man diese auf Port 8000 erreichen, z.B. unter http://localhost:8000.

Da sich die teilnehmenden Computer selbst im Netz finden, verteilt sich die Last automatisch auf die Systeme. Doch es muss einem auch klar sein: In einer einzelnen Grafikkarte nutz man sehr schnelle Verbindungen im VRAM. Diese Geschwindigkeiten sind über Ethernet niemals zu erreichen. Man sollte also gut überlegen, wo verteilte KI wirklich Sinn macht.

Ich habe mal fünf Rechner zusammengeschlossen und verschiedene Modelle getestet. Diese werden dann auf allen Teilnehmern heruntergeladen. Dabei kann es durchaus zu Timeouts kommen, was mich aber nicht aufhalten sollte.

Testergebnis

Ja. Man kann durchaus umfangreichere Anfragen stellen. Und die Antworten waren dabei geringfügig schneller. Dass die Antworten bei zwei Cluster-Membern doppelt so schnell erfolgen könnten, war eine Illusion. Der einzige Vorteil war daher, dass größere Modelle genutzt werden können.

Fazit

Exo bietet einen vielversprechenden Ansatz, um den Aufbau von KI-Clustern im Heimgebrauch deutlich zu vereinfachen. Da ich vorhandene Hardware nutzen konnte, ermöglichte Exo mir die Vorteile lokaler KI-Verarbeitung à la ‚Frankenstein‘ zu nutzen – und dabei die volle Kontrolle über die eigenen Daten zu behalten.