Notebook-Job mit SageMaker SDK Python-Beispiel erstellen - 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.

Notebook-Job mit SageMaker SDK Python-Beispiel erstellen

Um ein eigenständiges Notebook mit SageMaker Python auszuführenSDK, müssen Sie einen Notebook-Job-Schritt erstellen, ihn an eine Pipeline anhängen und die von Pipelines bereitgestellten Dienstprogramme verwenden, um Ihren Job bei Bedarf auszuführen oder optional einen oder mehrere future Jobs zu planen. In den folgenden Abschnitten werden die grundlegenden Schritte beschrieben, um einen bedarfsgesteuerten oder geplanten Notebook-Job zu erstellen und die Ausführung zu verfolgen. Lesen Sie außerdem in der folgenden Diskussion nach, ob Sie Parameter an Ihren Notebook-Job übergeben oder in Ihrem Notebook eine Verbindung zu Amazon herstellen müssen. EMR In diesen Fällen ist eine zusätzliche Vorbereitung Ihres Jupyter-Notebooks erforderlich. Sie können auch Standardwerte für eine Teilmenge der Argumente von anwenden, NotebookJobStep sodass Sie sie nicht jedes Mal angeben müssen, wenn Sie einen Notebook-Job-Schritt erstellen.

Beispielnotizbücher, die zeigen, wie Notizbuchjobs mit SageMaker Python geplant werdenSDK, finden Sie unter Notizbuch-Beispielnotizbücher für Notizbücher.

Schritte zum Erstellen eines Notizbuchauftrags

Sie können entweder einen Notizbuchjob erstellen, der sofort oder nach einem Zeitplan ausgeführt wird. In der folgenden Anleitung werden beide Methoden beschrieben.

Führen Sie die folgenden grundlegenden Schritte aus, um einen Notizbuchjob zu planen:
  1. Erstellen Sie eine NotebookJobStep-Instance. Einzelheiten zu NotebookJobStep Parametern finden Sie unter sagemaker.workflow.steps. NotebookJobStep. Sie können mindestens die folgenden Argumente angeben, wie im folgenden Codeausschnitt gezeigt:

    Wichtig

    Wenn Sie Ihren Notebook-Job mit SageMaker Python planenSDK, können Sie nur bestimmte Images angeben, um Ihren Notebook-Job auszuführen. Weitere Informationen finden Sie unter Bildeinschränkungen für SageMaker SDK Python-Notebook-Jobs.

    notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name )
  2. Erstellen Sie eine Pipeline mit Ihrem NotebookJobStep in einem einzigen Schritt, wie im folgenden Codeausschnitt gezeigt:

    pipeline = Pipeline( name=pipeline-name, steps=[notebook_job_step], sagemaker_session=sagemaker-session, )
  3. Führen Sie die Pipeline bei Bedarf aus oder planen Sie optional future Pipeline-Läufe. Verwenden Sie den folgenden Befehl, um eine sofortige Ausführung zu starten:

    execution = pipeline.start( parameters={...} )

    Optional können Sie einen einzelnen future Pipeline-Lauf oder mehrere Läufe in einem festgelegten Intervall planen. Sie geben Ihren Zeitplan in an PipelineSchedule und übergeben dann das Zeitplanobjekt mit an Ihre Pipelineput_triggers. Weitere Informationen zur Pipeline-Planung finden Sie unterPlanen Sie eine Pipeline mit SageMaker Python SDK.

    Im folgenden Beispiel wird geplant, dass Ihre Pipeline einmal am 12. Dezember 2023 um UTC 10:31:32 Uhr ausgeführt wird.

    my_schedule = PipelineSchedule( name="my-schedule“, at=datetime(year=2023, month=12, date=25, hour=10, minute=31, second=32) ) pipeline.put_triggers(triggers=[my_schedule])

    Im folgenden Beispiel wird geplant, dass Ihre Pipeline in den Jahren 2022 bis 2023 jeweils UTC am letzten Freitag im Monat um 10:15 Uhr läuft. Einzelheiten zur cron-basierten Planung finden Sie unter Cron-basierte Zeitpläne.

    my_schedule = PipelineSchedule( name="my-schedule“, cron="15 10 ? * 6L 2022-2023" ) pipeline.put_triggers(triggers=[my_schedule])
  4. (Optional) Sehen Sie sich Ihre Notizbuchaufträge im Notizbuchauftrags-Dashboard an SageMaker . Die Werte, die Sie für das tags Argument Ihres Notebook-Job-Schritts angeben, steuern, wie die Studio-Benutzeroberfläche den Job erfasst und anzeigt. Weitere Informationen finden Sie unter Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an.

Sehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an

Die Notizbuchjobs, die Sie als Pipeline-Schritte erstellen, werden im Studio Notebook Job-Dashboard angezeigt, wenn Sie bestimmte Tags angeben.

Anmerkung

Nur Notebook-Jobs, die in Studio oder lokalen JupyterLab Umgebungen erstellt wurden, erstellen Jobdefinitionen. Wenn Sie Ihren Notebook-Job mit SageMaker Python erstellenSDK, werden Ihnen daher keine Jobdefinitionen im Notebook Jobs-Dashboard angezeigt. Sie können Ihre Notebook-Jobs jedoch wie unter beschrieben anzeigenNotebook-Aufträge anzeigen.

Mit den folgenden Tags können Sie steuern, welche Teammitglieder Ihre Notizbuchjobs sehen können:

  • Um das Notizbuch für alle Benutzerprofile oder Bereiche in einer Domain anzuzeigen, fügen Sie das Domain-Tag mit Ihrem Domainnamen hinzu. Ein Beispiel sehen Sie unten:

    • Schlüssel:sagemaker:domain-name, Wert: d-abcdefghij5k

  • Um den Notebook-Job einem bestimmten Benutzerprofil in einer Domäne anzuzeigen, fügen Sie sowohl das Benutzerprofil als auch die Domain-Tags hinzu. Ein Beispiel für ein Benutzerprofil-Tag wird wie folgt dargestellt:

    • Schlüssel:sagemaker:user-profile-name, Wert: studio-user

  • Um den Notebook-Job in einem Space anzuzeigen, fügen Sie sowohl den Space als auch die Domain-Tags hinzu. Ein Beispiel für ein Leerzeichen-Tag wird wie folgt dargestellt:

    • Schlüssel:sagemaker:shared-space-name, Wert: my-space-name

  • Wenn Sie keine Domänen- oder Benutzerprofile oder Space-Tags anhängen, zeigt die Studio-Benutzeroberfläche den von Pipeline Step erstellten Notebook-Job nicht an. In diesem Fall können Sie den zugrunde liegenden Trainingsjob in der Trainingsjob-Konsole oder den Status in der Liste der Pipeline-Ausführungen einsehen.

Nachdem Sie die erforderlichen Tags für die Anzeige Ihrer Jobs im Dashboard eingerichtet haben, finden Sie unter Anweisungen Notebook-Aufträge anzeigen zum Anzeigen Ihrer Jobs und zum Herunterladen der Ergebnisse.

Sehen Sie sich Ihr Pipeline-Diagramm in Studio an

Da Ihr Notebook-Auftragsschritt Teil einer Pipeline ist, können Sie das Pipeline-Diagramm (DAG) in Studio anzeigen. Im Pipeline-Diagramm können Sie den Status des Pipeline-Laufs anzeigen und die Herkunft verfolgen. Details hierzu finden Sie unter Die Details eines Pipeline-Laufs anzeigen.

Parameter an Ihr Notizbuch übergeben

Wenn Sie Parameter an Ihren Notebook-Job übergeben möchten (mit dem parameters Argument vonNotebookJobStep), müssen Sie Ihr Eingabe-Notizbuch darauf vorbereiten, die Parameter zu empfangen.

Der auf Papermill basierende Notebook-Job-Executor sucht nach einer Jupyter-Zelle, die mit parameters dem Tag gekennzeichnet ist, und wendet die neuen Parameter oder Parameterüberschreibungen unmittelbar nach dieser Zelle an. Details hierzu finden Sie unter Parametrisieren Ihres Notebooks.

Nachdem Sie diesen Schritt ausgeführt haben, übergeben Sie Ihre Parameter an Ihre, wie im folgenden Beispiel gezeigt: NotebookJobStep

notebook_job_parameters = { "company": "Amazon" } notebook_job_step = NotebookJobStep( image_uri=image-uri, kernel_name=kernel-name, role=role-name, input_notebook=input-notebook, parameters=notebook_job_parameters, ... )

Verbindung zu einem EMR Amazon-Cluster in Ihrem Eingabe-Notizbuch herstellen

Wenn Sie von Ihrem Jupyter-Notebook in Studio aus eine Verbindung zu einem EMR Amazon-Cluster herstellen, müssen Sie Ihr Jupyter-Notebook möglicherweise weiter modifizieren. Prüfen SieStellen Sie von Ihrem Notebook aus eine Connect zu einem EMR Amazon-Cluster her, ob Sie eine der folgenden Aufgaben in Ihrem Notizbuch ausführen müssen:

  • Übergeben Sie Parameter an Ihren EMR Amazon-Verbindungsbefehl. Studio verwendet Papermill zur Ausführung von Notebooks. In SparkMagic Kerneln funktionieren Parameter, die Sie an Ihren EMR Amazon-Verbindungsbefehl übergeben, möglicherweise nicht wie erwartet, da Papermill Informationen an sie weitergibt. SparkMagic

  • Weitergabe von Benutzeranmeldedaten an Kerberos- LDAP oder HTTP Basic Auth-authentifizierte Amazon-Cluster. EMR Sie müssen Benutzeranmeldedaten über den übergeben. AWS Secrets Manager

Richten Sie Standardoptionen ein

Das SageMaker SDK gibt Ihnen die Möglichkeit, Standardwerte für eine Teilmenge von Parametern festzulegen, sodass Sie diese Parameter nicht jedes Mal angeben müssen, wenn Sie eine NotebookJobStep Instanz erstellen. Diese Parameter sindrole,s3_root_uri, s3_kms_key volume_kms_keysubnets, und. security_group_ids Verwenden Sie die SageMaker Konfigurationsdatei, um die Standardeinstellungen für den Schritt festzulegen. Informationen zur SageMaker Konfigurationsdatei finden Sie unter Konfiguration und Verwendung von Standardwerten mit SageMaker Python SDK. .

Um die Standardeinstellungen für Notebook-Jobs einzurichten, wenden Sie Ihre neuen Standardeinstellungen auf den Notebook-Job-Abschnitt der Konfigurationsdatei an, wie im folgenden Codeausschnitt gezeigt:

SageMaker: PythonSDK: Modules: NotebookJob: RoleArn: 'arn:aws:iam::555555555555:role/IMRole' S3RootUri: 's3://amzn-s3-demo-bucket/my-project' S3KmsKeyId: 's3kmskeyid' VolumeKmsKeyId: 'volumekmskeyid1' VpcConfig: SecurityGroupIds: - 'sg123' Subnets: - 'subnet-1234'