Erstellen Sie einen Notebook-Job mit einem SageMaker AI Python SDK-Beispiel - Amazon SageMaker KI

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.

Erstellen Sie einen Notebook-Job mit einem SageMaker AI Python SDK-Beispiel

Um ein eigenständiges Notebook mit dem SageMaker Python-SDK auszuführen, 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 zur Erstellung eines On-Demand-Jobs oder eines geplanten Notebook-Jobs und zur Nachverfolgung der Ausführung beschrieben. Lesen Sie außerdem in der folgenden Diskussion nach, ob Sie Parameter an Ihren Notebook-Job übergeben oder eine Verbindung zu Amazon EMR in Ihrem Notebook herstellen müssen. 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 dem SageMaker AI Python SDK geplant werden, finden Sie unter Notizbuch-Beispielnotizbücher für Notizbücher.

Schritte zum Erstellen eines Notebook-Auftrags

Sie können entweder einen Notebookauftrag 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 Ihren Notebook-Auftrag 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 dem SageMaker Python-SDK planen, können Sie nur bestimmte Images angeben, um Ihren Notebook-Job auszuführen. Weitere Informationen finden Sie unter Bildeinschränkungen für SageMaker AI Python SDK-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 Ausschnitt 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 Planung einer Pipeline finden Sie unter Planen Sie eine Pipeline mit dem SageMaker Python-SDK.

    Im folgenden Beispiel wird Ihre Pipeline so geplant, dass sie einmal am 12. Dezember 2023 um 10:31:32 UTC 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])

    Das folgende Beispiel plant die Ausführung Ihrer Pipeline für 10:15 Uhr UTC am letzten Freitag jedes Monats in den Jahren 2022 bis 2023. 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 SageMaker Notizbuchauftrags-Dashboard an. 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 Notebookjobs, 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 dem SageMaker Python-SDK erstellen, werden Ihnen daher keine Jobdefinitionen im Notebook Jobs-Dashboard angezeigt. Sie können Ihre Notebook-Jobs jedoch wie unter beschrieben anzeigen. Notebook-Aufträge anzeigen

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

  • Um das Notebook 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 Notebookjob einem bestimmten Benutzerprofil in einer Domain anzuzeigen, fügen Sie sowohl das Benutzerprofil als auch die Domain-Tags hinzu. Ein Beispiel für ein Benutzerprofil-Tag sehen Sie unten:

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

  • Um den Notebook-Job einem Space anzuzeigen, fügen Sie sowohl den Space als auch die Domain-Tags hinzu. Ein Beispiel für eine Raumkennzeichnung sehen Sie unten:

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

  • Wenn Sie keine Domain-, Benutzerprofil- oder Bereich-Tags hinzufügen, zeigt die Studio-Benutzeroberfläche den durch den Pipeline-Schritt erstellten Notebook-Auftrag 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 Anzeige der Details eines Pipeline-Laufs.

Parameter an Ihr Notebook übergeben

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

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

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

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, ... )

Herstellen einer Verbindung zu einem Amazon-EMR-Cluster in Ihrem Eingabe-Notebook

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

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

  • Weitergabe von Benutzeranmeldedaten an Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierte Amazon EMR-Cluster. Sie müssen Benutzeranmeldeinformationen über die übergebenAWS Secrets Manager.

Richten Sie Standardoptionen ein

Das SageMaker SDK bietet 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 Instance erstellen. NotebookJobStep Diese Parameter sindrole,, s3_root_uris3_kms_key, volume_kms_key und. subnets security_group_ids Verwenden Sie die SageMaker AI-Konfigurationsdatei, um die Standardeinstellungen für den Schritt festzulegen. Informationen zur SageMaker AI-Konfigurationsdatei finden Sie unter Konfiguration und Verwendung von Standardwerten mit dem 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'