AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

SkyPilot: ein Open-Source-Framework für die effiziente Ausführung von KI- und Batch-Aufgaben in jeder Cloud

Allgemeine Einführung

SkyPilot ist ein Open-Source-Framework, das vom Sky Computing Lab an der University of California, Berkeley, initiiert wurde und Benutzern helfen soll, KI- und Stapelverarbeitungsaufgaben auf jeder Cloud-Infrastruktur effizient auszuführen. SkyPilot unterstützt mehr als 14 Cloud-Dienste (einschließlich AWS, GCP, Azure usw.) und Kubernetes und bietet eine einheitliche Ausführungsschnittstelle, erhebliche Kosteneinsparungen und eine hohe GPU-Verfügbarkeit. Es wird über eine einfache YAML- oder Python-API konfiguriert, mit der Benutzer Aufgaben in der Cloud bereitstellen können, ohne den Code zu ändern, wobei automatisch die optimalen Ressourcen ausgewählt und Fehlertoleranz aktiviert werden. Mit SkyPilot können Benutzer Aufgaben in der Cloud bereitstellen, ohne den Code zu ändern, wobei automatisch die optimalen Ressourcen ausgewählt und Fehlertoleranz ermöglicht wird. Seit seiner Veröffentlichung im Jahr 2022 hat das Projekt über 1 Million Downloads und mehr als 7.000 Sterne auf GitHub erhalten und wird häufig für das Training von Machine-Learning-Modellen, die Abstimmung von Hyperparametern und in der Bioinformatik eingesetzt.

SkyPilot: ein Open-Source-Framework für die effiziente Ausführung von KI- und Batch-Aufgaben in jeder Cloud-1


 

Funktionsliste

  • Multi-cloud-EinsatzUnterstützt die Ausführung von Aufgaben in mehr als 14 Clouds wie AWS, GCP, Azure und Kubernetes und vermeidet so die Bindung an einen einzelnen Cloud-Anbieter.
  • KostenoptimierungAutomatisches Auswählen der günstigsten Cloud-Region oder -Instanz (z. B. On-Demand- oder Spot-Instanzen), wodurch Kosteneinsparungen von bis zu 3-6,5x erzielt werden können.
  • GPU/TPU-UnterstützungNahtlose Planung und Verwaltung von GPU- (z. B. NVIDIA A100) und TPU-Ressourcen zur Verbesserung der Berechnungseffizienz.
  • Automatische StörungsbeseitigungAutomatisches Umschalten auf andere Clouds oder Regionen, wenn die Kapazität nicht ausreicht oder ein Vorkaufsrecht besteht, um sicherzustellen, dass Aufgaben nicht unterbrochen werden.
  • Code- und DatensynchronisierungAutomatisches Synchronisieren von lokalem Code und Daten mit dem Cloud-Cluster zur Vereinfachung des Bereitstellungsprozesses.
  • Verwaltung von AufgabenwarteschlangenUnterstützt massiv gleichzeitige Aufgaben (z.B. 2000+ Jobs) für Szenarien wie Hyper-Parameter-Tuning.
  • Bereitstellung von Diensten (SkyServe)Bietet HTTPS-Unterstützung und Lastausgleichsrichtlinien für die einfache Bereitstellung von KI-Modelldiensten.
  • Unterstützung für reservierte InstanzenIntegration von lokalen Ressourcen wie AWS Capacity Blocks, GCP Dynamic Workload Scheduler und anderen.

 

Hilfe verwenden

SkyPilot ist für Entwickler, Forscher und Geschäftsanwender einfach zu installieren und zu verwenden. Nachfolgend finden Sie eine detaillierte Beschreibung der Installation, Konfiguration und Bedienung der Hauptfunktionen von SkyPilot.

Ablauf der Installation

  1. Vorbereitung der Umwelt
    Stellen Sie sicher, dass Python 3.8 oder höher lokal installiert ist und dass Sie über die pip Werkzeuge zur Paketverwaltung. Eine virtuelle Umgebung wird empfohlen, um Abhängigkeitskonflikte zu vermeiden:

    python3 -m venv skypilot_env
    Quelle skypilot_env/bin/activate
  1. Installation von SkyPilot
    passieren (eine Rechnung oder Inspektion etc.) pip Installieren Sie die neueste Version:

    pip install -U "skypilot[all]"
    

    darunter auch [alle] Gibt an, dass alle unterstützten Cloud-Abhängigkeiten installiert sind. Wenn nur eine bestimmte Cloud (z. B. AWS) erforderlich ist, ersetzen Sie durch skypilot[aws].

  2. Cloud-Authentifizierung
    Konfigurieren Sie die Anmeldedaten für die Zielwolke. Nehmen Sie AWS als Beispiel:

    • Installieren Sie die AWS CLI:pip install awscli
    • Konfigurieren Sie die Anmeldedaten:aws konfigurierenGeben Sie den Zugangsschlüssel und den geheimen Schlüssel ein.
      Für andere Clouds (z. B. GCP, Azure) lesen Sie bitte die offizielle Dokumentation, um eine ähnliche Konfiguration durchzuführen.
  3. Überprüfen der Installation
    Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Installation erfolgreich war:

    Himmelskontrolle
    

    Die Ausgabe zeigt den Status der aktivierten Cloud-Dienste an.

Hauptfunktionen

1. die Erstellung von Einsatzprofilen

SkyPilot verwendet YAML-Dateien zur Definition von Aufgaben. Um z. B. ein PyTorch-Modell zu trainieren, erstellen Sie eine train.yaml::

Ressourcen: A100:1
Beschleuniger: A100:1 # mit 1 A100 GPU
num_nodes: 1 # Einzelknoten
workdir: ~/my_project # Synchronisierung des lokalen Projektverzeichnisses
setup: | # install dependencies
pip install torch torchvision
run: | # run task
python main.py --epochs 10
  • RessourcenSpezifizieren Sie die Rechenressourcen, z. B. den Typ und die Anzahl der GPUs.
  • workdirLokaler Codekatalog mit automatischer Synchronisierung mit der Cloud.
  • Einrichtung: Vorbereitungsbefehle vor der Ausführung.
  • laufen.Befehl zur Ausführung der Mission.

2. die Einleitung des Mandats

Läuft im Terminal:

sky launch -c my-cluster train.yaml
  • -c mein-clusterBenennung von Clustern für eine einfache spätere Verwaltung.
  • SkyPilot wählt automatisch die optimale Cloud-Ressource aus und startet die Aufgabe.

3. den Status des Mandats zu überprüfen

Überprüfen Sie den Status des Clusters:

Himmelsstatus

Zeigt alle laufenden Cluster und deren Ressourcenverbrauch an.

4) Kostenoptimierung und Spot-Beispiele

Nutzen Sie Spot-Instanzen, um Kosten zu senken:

sky launch -c my-spot-cluster train.yaml --use-spot

SkyPilot verwaltet automatisch Ausfälle von Spot-Instanzen und setzt Aufgaben fort.

5. die Bereitstellungsdienste (SkyServe)

Als Beispiel für den Einsatz eines LLaMA-Modells erstellen Sie die serve.yaml::

Ressourcen.
Beschleuniger: A100:1
Dienst: Replikat: 2 # 2 Replikate
Replikat: 2 # 2 Replikate
Anschlüsse: 8080 #-Dienstanschluss
Ausführen: || Ausführen: | Ausführen
python serve.py --model llama

Starten Sie den Dienst:

sky serve up serve.yaml -n llama-service

Greifen Sie auf den generierten HTTPS-Endpunkt zu, um den Dienst zu nutzen.

6. umfangreiche gleichzeitige Missionen

Führen Sie mehr als 2000 Aufgaben aus (z. B. die Abstimmung von Hyperparametern):

sky jobs launch -c my-jobs train.yaml --num-jobs 2000

SkyPilot weist automatisch Ressourcen zu und verwaltet Warteschlangen.

Ausgewählte Funktionen

Multi-Cloud-Vermittlung

Wenn AWS nicht über A100 verfügt, geben Sie eine andere Cloud an:

sky launch -c my-cluster train.yaml --cloud gcp

Oder lassen Sie SkyPilot automatisch die günstigste Wolke auswählen:

sky launch -c my-cluster train.yaml --cloud cheapest

GPU-Planung

Verfügbare GPU-Ressourcen anzeigen:

sky show-gpus

Dynamische Anpassung an die Nachfrage Ressourcen den Nagel auf den Kopf treffen Beschleuniger Parameter.

Protokollierung und Fehlersuche

Anzeigen von Aufgabenprotokollen in Echtzeit:

sky logs my-cluster

Aktivieren Sie den Debug-Modus:

export SKYPILOT_DEBUG=1
sky launch -c mein-cluster train.yaml

caveat

  • Sicherheit der AusweiseSicherstellen, dass die Datei mit den Cloud-Anmeldeinformationen (z. B. ~/.aws), um Undichtigkeiten zu vermeiden.
  • Freigabe von RessourcenManuelles Herunterfahren des Clusters, wenn die Aufgabe abgeschlossen ist:
    Sky down my-cluster
    
  • Unterstützung der DokumentationFür fortgeschrittene Anwendungen lesen Sie bitte die offizielle SkyPilot-Dokumentation.

Mit diesen Schritten können Benutzer schnell mit SkyPilot arbeiten und KI- und Batch-Aufgaben effizient ausführen.

CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " SkyPilot: ein Open-Source-Framework für die effiziente Ausführung von KI- und Batch-Aufgaben in jeder Cloud

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)