Installieren externer Bibliotheken und Kernel in Notebook-Instances - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Installieren externer Bibliotheken und Kernel in Notebook-Instances

Amazon SageMaker -Notebook-Instances verfügen bereits über mehrere installierte Umgebungen. Diese Umgebungen enthalten Jupyter-Kernel und Python-Pakete, darunter: scikit, Pandas NumPy TensorFlow, und MXNet . Diese Umgebungen und alle Dateien im Ordner sample-notebooks werden aktualisiert, wenn Sie eine Notebook-Instance starten und beenden. Sie können auch Ihre eigenen Umgebungen mit Paketen und Kernel Ihrer Wahl installieren.

Die verschiedenen Jupyter-Kernel in Amazon- SageMaker Notebook-Instances sind separate Conda-Umgebungen. Weitere Informationen zu Conda-Umgebungen finden Sie unter Managing environments (Verwalten von Umgebungen) in der Conda-Dokumentation.

Installieren Sie benutzerdefinierte Umgebungen und Kernel auf dem Amazon-EBS-Volume der Notebook-Instance. Dadurch wird sichergestellt, dass sie beim Anhalten und Neustarten der Notebook-Instance bestehen bleiben und dass alle von Ihnen installierten externen Bibliotheken nicht von aktualisiert werden SageMaker. Verwenden Sie dazu eine Lebenszykluskonfiguration, die sowohl ein Skript umfasst, das beim Erstellen der Notebook-Instance ausgeführt wird (on-create) als auch ein Skript, das bei jedem Neustart der Notebook-Instance ausgeführt wird (on-start). Weitere Informationen zu Lebenszykluskonfigurationen für Notebook-Instances finden Sie unter Anpassen einer Notebook-Instances mithilfe eines Lifecycle-Konfigurationsskripts. Es gibt ein GitHub Repository, das Beispiel-Lebenszykluskonfigurationsskripts unter SageMaker Notebook-Instance-Lebenszykluskonfigurationsbeispiele enthält.

Die Beispiele unter https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh und https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh zeigen die bewährte Methode für die Installation von Umgebungen und Kerneln auf einer Notebook-Instance. Das on-create Skript installiert die ipykernel Bibliothek, um benutzerdefinierte Umgebungen als Jupyter-Kernel zu erstellen, verwendet pip install und conda install installiert dann Bibliotheken. Sie können das Skript anpassen, um benutzerdefinierte Umgebungen zu erstellen und Bibliotheken zu installieren, die Sie möchten. aktualisiert diese SageMaker Bibliotheken nicht, wenn Sie die Notebook-Instance anhalten und neu starten, sodass Sie sicherstellen können, dass Ihre benutzerdefinierte Umgebung bestimmte Versionen von Bibliotheken enthält, die Sie möchten. Das on-start Skript installiert alle benutzerdefinierten Umgebungen, die Sie als Jupyter-Kernel erstellen, sodass sie in der Dropdownliste im Menü Neu von Jupyter angezeigt werden.

Tools zur Installation von Paketen

SageMaker -Notebooks unterstützen die folgenden Paketinstallationstools:

  • Conda installieren

  • Installieren von pip

Sie können Pakete mit den folgenden Methoden installieren:

Von einem Notebook aus können Sie die Systembefehlssyntax verwenden (Zeilen, die mit! beginnen) um Pakete zu installieren, zum Beispiel !pip install und!conda install. In jüngerer Zeit wurden neue Befehle zu IPython hinzugefügt: %pip und %conda. Diese Befehle sind die empfohlene Methode zur Installation von Paketen von einem Notebook aus, da sie die aktive Umgebung oder den verwendeten Interpreter korrekt berücksichtigen. Weitere Informationen finden Sie unter Hinzufügen der magischen Funktionen %pip und %conda.

Conda

Conda ist ein Open-Source-Paketmanagementsystem und ein Umgebungsmanagementsystem, das Pakete und ihre Abhängigkeiten installieren kann. SageMaker unterstützt die Verwendung von Conda mit einem der beiden Hauptkanäle, dem Standardkanal und dem Conda-Forge-Kanal. Weitere Informationen finden Sie unter Konfigurieren Conda-Kanals. Der Conda-Forge-Kanal ist ein Community-Kanal, in dem Mitwirkende Pakete hochladen können.

Anmerkung

Aufgrund der Art und Weise, wie Conda das Abhängigkeitsdiagramm auflöst, kann die Installation von Paketen von Conda-Forge erheblich länger dauern (im schlimmsten Fall mehr als 10 Minuten).

Das Deep Learning AMI wird mit vielen Conda-Umgebungen und vielen vorinstallierten Paketen geliefert. Aufgrund der Anzahl der vorinstallierten Pakete ist es schwierig, eine Reihe von Paketen zu finden, die garantiert kompatibel sind. Möglicherweise wird die Warnung „Die Umgebung ist inkonsistent, bitte überprüfen Sie den Paketplan sorgfältig“ angezeigt. Trotz dieser Warnung SageMaker stellt sicher, dass alle SageMaker bereitgestellten Umgebungen korrekt sind. SageMaker kann nicht garantieren, dass vom Benutzer installierte Pakete ordnungsgemäß funktionieren.

Anmerkung

Benutzer von SageMaker AWS Deep Learning AMI und Amazon EMR können auf das kommerzielle Anaconda-Repository zugreifen, ohne bis zum 1. Februar 2024 eine kommerzielle Lizenz zu erwerben, wenn Anaconda in diesen Services verwendet wird. Für jede Nutzung außerhalb dieser drei Dienste sind Kunden dafür verantwortlich, ihre eigenen Anaconda-Lizenzanforderungen zu bestimmen.

Conda bietet zwei Methoden zur Aktivierung von Umgebungen: Conda aktivieren/deaktivieren und Source aktivieren/deaktivieren. Weitere Informationen finden Sie unter Sollte ich „Conda Activate“ oder „Source Activate“ unter Linux verwenden.

SageMaker unterstützt das Verschieben von Conda-Umgebungen auf das Amazon EBS-Volume, das beim Anhalten der Instance bestehen bleibt. Die Umgebungen werden nicht beibehalten, wenn die Umgebungen auf dem Root-Volume installiert werden, was das Standardverhalten ist. Ein Beispiel für ein Lebenszyklusskript finden Sie unter persistent-conda-ebs.

Unterstützte Conda-Operationen (siehe Hinweis am Ende dieses Themas)
  • Conda-Installation eines Pakets in einer einzigen Umgebung

  • Conda installiert ein Paket in allen Umgebungen

  • Conda-Installation eines R-Pakets in der R-Umgebung

  • Installation eines Pakets aus dem Conda-Hauptrepositorium

  • Ein Paket von Conda-Forge installieren

  • Ändern Sie den Conda-Installationsort, um EBS zu verwenden

  • Unterstützt sowohl Conda Activate als auch Source Activate

Pip

Pip ist das De-facto-Tool für die Installation und Verwaltung von Python-Paketen. Pip sucht standardmäßig nach Paketen im Python-Paketindex (PyPI). Im Gegensatz zu Conda bietet Pip keine integrierte Umgebungsunterstützung und ist nicht so gründlich wie Conda, wenn es um Pakete mit nativen Abhängigkeiten von Systembibliotheken geht. Pip kann verwendet werden, um Pakete in Conda-Umgebungen zu installieren.

Sie können alternative Paket-Repositorys mit pip anstelle von PyPI verwenden. Ein Beispiel für ein Lifecycle-Skript finden Sie unter on-start.sh.

Unterstützte Pip-Operationen (siehe Hinweis am Ende dieses Themas)
  • Verwendung von Pip zur Installation eines Pakets ohne aktive Conda-Umgebung (Pakete systemweit installieren)

  • Verwenden von Pip, um ein Paket in einer Conda-Umgebung zu installieren

  • Verwenden Sie Pip, um ein Paket in allen Conda-Umgebungen zu installieren

  • Ändern des Pip-Installationsverzeichnisses zur Verwendung von EBS

  • Verwenden eines alternativen Repositorys zur Installation von Paketen mit Pip

Nicht unterstützt

SageMaker Ziel ist es, so viele Paketinstallationsvorgänge wie möglich zu unterstützen. Wenn die Pakete jedoch von SageMaker oder DLAMI installiert wurden und Sie die folgenden Operationen für diese Pakete verwenden, kann dies Ihre Notebook-Instance instabil machen:

  • Deinstallieren

  • Herabstufung

  • Wird geupgradet

Wir bieten keine Unterstützung für die Installation von Paketen über yum install oder die Installation von R-Paketen von CRAN.

Aufgrund potenzieller Probleme mit Netzwerkbedingungen oder Konfigurationen oder der Verfügbarkeit von Conda oder können wir nicht garantieren PyPi, dass Pakete in einem festen oder deterministischen Zeitraum installiert werden.

Anmerkung

Wir können nicht garantieren, dass eine Paketinstallation erfolgreich sein wird. Der Versuch, ein Paket in einer Umgebung mit inkompatiblen Abhängigkeiten zu installieren, kann zu einem Fehler führen. In einem solchen Fall sollten Sie sich an den Bibliotheksbetreuer wenden, um zu erfahren, ob es möglich ist, die Paketabhängigkeiten zu aktualisieren. Alternativ können Sie versuchen, die Umgebung so zu modifizieren, dass die Installation möglich ist. Diese Änderung wird jedoch wahrscheinlich bedeuten, dass bestehende Pakete entfernt oder aktualisiert werden, was bedeutet, dass wir die Stabilität dieser Umgebung nicht mehr garantieren können.