Privates Repository für Laufzeitabhängigkeiten - 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.

Privates Repository für Laufzeitabhängigkeiten

Mit Hilfe von Befehlen oder Skripten können Sie vor der Ausführung in Ihrer Jobumgebung einen Abhängigkeitsmanager wie Pip oder Conda konfigurieren. Um eine Netzwerkisolierung zu erreichen, verwenden Sie eine dieser Optionen, um Ihre Abhängigkeitsmanager so umzuleiten, dass sie auf Ihre privaten Repositorys zugreifen und Remote-Funktionen innerhalb eines VPC ausführen. Die Befehle oder das Skript vor der Ausführung werden ausgeführt, bevor Ihre Remote-Funktion ausgeführt wird. Sie können sie mit dem @remote -Dekorator RemoteExecutorAPI, dem oder in einer Konfigurationsdatei definieren.

In den folgenden Abschnitten erfahren Sie, wie Sie auf ein privates Python Package Index (PyPI) -Repository zugreifen, das verwaltet wird mit AWS CodeArtifact. In den Abschnitten wird auch gezeigt, wie Sie auf einen benutzerdefinierten Conda-Kanal zugreifen, der auf Amazon Simple Storage Service (Amazon S3) gehostet wird.

So verwenden Sie ein benutzerdefiniertes PyPI-Repository, das mit verwaltet wird AWS CodeArtifact

Für CodeArtifact die Verwaltung eines benutzerdefinierten PyPI-Repositorys sind die folgenden Voraussetzungen erforderlich:

Das folgende Beispiel für einen Befehl vor der Ausführung zeigt, wie Sie Pip im SageMaker Trainingsjob so konfigurieren, dass es auf Ihr CodeArtifact Repository verweist. Weitere Informationen finden Sie unter Pip konfigurieren und verwenden mit. CodeArtifact

# use a requirements.txt file to import dependencies @remote( instance_type="ml.m5.large" image_uri = "my_base_python:latest", dependencies = './requirements.txt', pre_execution_commands=[ "aws codeartifact login --tool pip --domain my-org --domain-owner <000000000000> --repository my-codeartifact-python-repo --endpoint-url https://vpce-xxxxx.api.codeartifact.us-east-1.vpce.amazonaws.com" ] ) def matrix_multiply(a, b): return np.matmul(a, b)

So verwenden Sie einen benutzerdefinierten Conda-Channel, der auf Amazon S3 gehostet wird

Für die Verwaltung eines benutzerdefinierten Conda-Repositorys mit Hilfe von Amazon S3 bestehen die folgenden Voraussetzungen:

  • Ihr privater Conda-Kanal muss bereits in Ihrem Amazon-S3-Bucket eingerichtet sein, und alle abhängigen Pakete müssen indexiert und in Ihren Amazon-S3-Bucket hochgeladen werden. Anweisungen zur Indexierung Ihrer Conda-Pakete finden Sie unter Benutzerdefinierte Kanäle erstellen.

  • Sie VPC sollten Zugriff auf den Amazon S3 S3-Bucket haben. Weitere Informationen finden Sie unter Endpunkte für Amazon S3.

  • In der Conda-Basisumgebung in Ihrem Job-Image sollte boto3 installiert sein. Um Ihre Umgebung zu überprüfen, geben Sie Folgendes in Ihre Anaconda-Eingabeaufforderung ein, um zu überprüfen, ob in der resultierenden generierten Liste boto3 erscheint.

    conda list -n base
  • Ihr Job-Image sollte mit Conda installiert werden, nicht mit Mamba. Um Ihre Umgebung zu überprüfen, achten Sie darauf, dass die vorangehende Code-Eingabeaufforderung nicht mamba zurückgibt.

Das folgende Beispiel für Vorausführungsbefehle zeigt, wie Sie Conda im SageMaker Trainingsjob so konfigurieren, dass es auf Ihren privaten Channel auf Amazon S3 verweist. Die Pre-Execution-Befehle entfernen den Standardkanal und fügen benutzerdefinierte Kanäle zu einer .condarc Conda-Konfigurationsdatei hinzu.

# specify your dependencies inside a conda yaml file @remote( instance_type="ml.m5.large" image_uri = "my_base_python:latest", dependencies = "./environment.yml", pre_execution_commands=[ "conda config --remove channels 'defaults'" "conda config --add channels 's3://my_bucket/my-conda-repository/conda-forge/'", "conda config --add channels 's3://my_bucket/my-conda-repository/main/'" ] ) def matrix_multiply(a, b): return np.matmul(a, b)