Bereitstellen und Verwenden einer Multi-Framework-Deep-Learning-Plattform auf Kubernetes

Quellknoten: 1580762

Beschreibung

Als Deep-Learning-Praktiker wünschen Sie sich Zuverlässigkeit und Skalierbarkeit bei der Orchestrierung Ihrer Schulungsaufgaben. Darüber hinaus möchten Sie dies auf konsistente Weise über mehrere Bibliotheken hinweg tun. Mit Fabric for Deep Learning (FfDL) auf Kubernetes können Sie dies erreichen, indem Sie Benutzern die Möglichkeit geben, Deep-Learning-Bibliotheken wie Caffe, Torch und TensorFlow in der Cloud auf zuverlässige Weise und mit minimalem Aufwand zu nutzen. Die Plattform nutzt eine Verteilungs- und Orchestrierungsschicht, die das Lernen aus einer großen Datenmenge in angemessener Zeit über Rechenknoten hinweg ermöglicht. Eine Ressourcenbereitstellungsschicht ermöglicht eine flexible Jobverwaltung auf heterogenen Ressourcen, wie z. B. Grafikprozessoren (GPUs) und Zentraleinheiten (CPUs), in einer Infrastructure as a Service (IaaS)-Cloud.

Über uns

Das Training tiefer neuronaler Netze, sogenanntes Deep Learning (Teil maschineller Lernmethoden), ist äußerst komplex und rechenintensiv. Ein typischer Deep-Learning-Benutzer ist unnötigerweise mit den Details der zugrunde liegenden Hardware- und Software-Infrastruktur konfrontiert, einschließlich der Konfiguration teurer GPU-Maschinen, der Installation von Deep-Learning-Bibliotheken und der Verwaltung der Jobs während der Ausführung, um Fehler und Wiederherstellung zu bewältigen. Obwohl es einfach ist, Hardware aus IaaS-Clouds zu beziehen und stundenweise zu bezahlen, muss der Benutzer diese Maschinen dennoch verwalten, erforderliche Bibliotheken installieren und die Ausfallsicherheit der Deep-Learning-Trainingsjobs sicherstellen.

Hier liegt die Chance von Deep Learning als Dienstleistung. In diesem Codemuster zeigen wir Ihnen, wie Sie eine Deep-Learning-Fabric auf Kubernetes bereitstellen. Mithilfe Cloud-nativer Architekturartefakte wie Kubernetes, Microservices, Helm-Charts und Objektspeicher zeigen wir Ihnen, wie Sie eine Deep-Learning-Fabric bereitstellen und nutzen. Dieses Fabric erstreckt sich über mehrere Deep-Learning-Engines wie TensorFlow, Caffe und PyTorch. Es kombiniert die Flexibilität, Benutzerfreundlichkeit und Wirtschaftlichkeit eines Cloud-Dienstes mit der Leistungsfähigkeit von Deep Learning. Sie werden feststellen, dass es einfach zu verwenden ist, und durch die Verwendung von REST-APIs können Sie das Training mit unterschiedlichen Ressourcen je nach Benutzeranforderungen oder Budget anpassen. Ermöglichen Sie Benutzern, sich auf Deep Learning und die Anwendungen zu konzentrieren, anstatt sich auf Fehler zu konzentrieren.

Flow

Fluss

  1. Der FfDL-Deployer stellt die FfDL-Codebasis in einem Kubernetes-Cluster bereit. Der Kubernetes-Cluster ist für die Verwendung von GPUs, CPUs oder beidem konfiguriert und hat Zugriff auf S3-kompatiblen Objektspeicher. Wenn nicht angegeben, wird ein lokal simulierter S3-Pod erstellt.
  2. Nach der Bereitstellung lädt der Datenwissenschaftler die Modelltrainingsdaten in den S3-kompatiblen Objektspeicher hoch. FfDL geht davon aus, dass die Daten bereits im erforderlichen Format vorliegen, wie es von verschiedenen Deep-Learning-Frameworks vorgeschrieben wird.
  3. Der Benutzer erstellt eine FfDL-Modell-Manifestdatei. Die Manifestdatei enthält verschiedene Felder, die das Modell in FfDL, seine Objektspeicherinformationen, seine Ressourcenanforderungen und mehrere Argumente (einschließlich Hyperparameter) beschreiben, die für die Modellausführung während Training und Tests erforderlich sind. Der Benutzer interagiert dann mit FfDL, indem er CLI/SDK oder UI verwendet, um die FfDL-Modellmanifestdatei mit einer Modelldefinitionsdatei bereitzustellen. Der Benutzer startet den Trainingsjob und überwacht seinen Fortschritt.
  4. Der Benutzer lädt das trainierte Modell und die zugehörigen Protokolle herunter, sobald der Trainingsauftrag abgeschlossen ist.

Anweisungen

Die detaillierten Schritte für dieses Muster finden Sie in der README-Datei. Die Schritte zeigen Ihnen, wie Sie:

  1. Kompilieren, programmieren und erstellen Sie Docker-Images.
  2. Installieren Sie die FfDL-Komponenten mit helm install.
  3. Führen Sie ein Skript aus, um Grafana für die Überwachung von FfDL zu konfigurieren.
  4. Erhalten Sie Ihre Grafana-, FfDL-Web-UI- und FfDL-REST-API-Endpunkte.
  5. Führen Sie einige einfache Jobs aus, um mithilfe von TensorFlow und Caffe ein Faltungsnetzwerkmodell zu trainieren.

Quelle: https://developer.ibm.com/patterns/deploy-and-use-a-multi-framework-deep-learning-platform-on-kubernetes/

Zeitstempel:

Mehr von IBM Entwickler