Allgemeine Einführung
Exo ist ein Open-Source-Projekt, das darauf abzielt, einen eigenen KI-Cluster auf alltäglichen Geräten (z.B. iPhone, iPad, Android, Mac, Linux, etc.) zu betreiben. Durch dynamische Modellpartitionierung und automatische Geräteerkennung ist Exo in der Lage, mehrere Geräte zu einem einzigen leistungsstarken Grafikprozessor zu vereinen, der mehrere Modelle wie LLaMA, Mistral, LlaVA, Qwen und Deepseek unterstützt.Exo bietet auch eine ChatGPT-kompatible API, mit der Benutzer Modelle auf ihrer eigenen Hardware ausführen können.
Funktionsliste
- Breite ModellunterstützungUnterstützt eine breite Palette von Modellen wie LLaMA, Mistral, LlaVA, Qwen und Deepseek.
- Dynamische ModellpartitionierungOptimierung der Modellpartitionierung auf der Grundlage der aktuellen Netzwerktopologie und der Geräteressourcen.
- Automatisierte GeräteerkennungAutomatische Erkennung anderer Geräte ohne manuelle Konfiguration.
- ChatGPT-kompatible APIChatGPT: Bietet eine ChatGPT-kompatible API, die die Ausführung von Modellen auf Ihrer eigenen Hardware erleichtert.
- AusstattungsgleichheitDie Geräte sind über eine Punkt-zu-Punkt-Verbindung miteinander verbunden und verwenden keine Master-Slave-Architektur.
- Mehrere PartitionierungsstrategienUnterstützt eine Vielzahl von Partitionierungsstrategien, wie z. B. die Partitionierung mit Ringspeichergewichtung.
Hilfe verwenden
Hilfe verwenden
Ablauf der Installation
- vorläufig::
- Stellen Sie sicher, dass die Python-Version >= 3.12.0 ist.
- Wenn Sie Linux verwenden und NVIDIA-GPUs unterstützen, installieren Sie die NVIDIA-Treiber, das CUDA-Toolkit und die cuDNN-Bibliothek.
- Installation von der Quelle aus::
- Projekt Klonen:
git clone https://github.com/exo-explore/exo.git
- Rufen Sie den Projektkatalog auf:
cd exo
- Installieren Sie die Abhängigkeit:
pip install -e .
- Oder verwenden Sie eine virtuelle Umgebung, um es zu installieren:
Quelle install.sh
- Projekt Klonen:
Funktion Betriebsablauf
- Betriebsmodell::
- Führen Sie das Beispiel auf mehreren macOS-Geräten aus:
- Ausrüstung 1:
Exo
- Ausrüstung 2:
Exo
- Exo erkennt automatisch andere Geräte und startet eine ChatGPT-ähnliche WebUI (powered by tinygrad tinychat) unter
http://localhost:52415
.
- Ausrüstung 1:
- Führen Sie das Beispiel auf einem einzelnen Gerät aus:
- Verwenden Sie den Befehl:
exo run lama-3.2-3b
- Verwenden Sie eine benutzerdefinierte Eingabeaufforderung:
exo run llama-3.2-3b --prompt "Was ist die Bedeutung von exo?"
- Verwenden Sie den Befehl:
- Führen Sie das Beispiel auf mehreren macOS-Geräten aus:
- Modell Lagerung::
- Standardmäßig werden die Modelle in der Datei
~/.cache/huggingface/hub
. - Dies kann durch Setzen der Umgebungsvariablen
HF_HOME
um den Speicherort des Modells zu ändern.
- Standardmäßig werden die Modelle in der Datei
- Komponenten während der Prüfung anpassen::
- Verwendung von Umgebungsvariablen
DEBUG
(0-9) Aktiviert die Debug-Protokollierung:DEBUG=9 exo
- Verwenden Sie für die tinygrad-Inferenzmaschine ein separates Debug-Flag
TINYGRAD_DEBUG
(1-6):TINYGRAD_DEBUG=2 exo
- Verwendung von Umgebungsvariablen
- Formatierung des Codes::
- ausnutzen
yapf
Formatierungscode:- Anforderungen an die Formatierung der Installation:
pip3 install -e '. [Formatierung]'
- Führen Sie das Formatierungsskript aus:
python3 format.py . /exo
- Anforderungen an die Formatierung der Installation:
- ausnutzen
Verwendung
- EXO starten::
Exo
EXO erkennt und verbindet sich automatisch mit anderen Geräten ohne zusätzliche Konfiguration.
- Betriebsmodell::
- Verwenden Sie das Standardmodell:
exo run lama-3.2-3b
- Benutzerdefinierte Tipps:
exo run llama-3.2-3b --prompt "Was ist die Bedeutung von EXO?"
- API-Verwendungsbeispiele::
- Anfrage senden:
bash
locken http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b".
"messages": [{"role": "user", "content": "Was ist die Bedeutung von EXO?"}] ,
"Temperatur": 0,7
}'
- Anfrage senden:
Leistungsoptimierung
- macOS-Benutzer::
- Aktualisieren Sie auf die neueste Version von macOS.
- in Bewegung sein
. /configure_mlx.sh
Optimieren Sie die GPU-Speicherzuweisung.
allgemeine Probleme
- SSL-FehlerAuf einigen MacOS/Python-Versionen wird das Zertifikat nicht korrekt installiert. Führen Sie den folgenden Befehl aus, um dies zu beheben:
/Programme/Python 3.x/Zertifikate installieren.Befehl
- Debugging-ProtokollDebugging-Protokollierung einschalten:
DEBUG=9 exo