Buat pekerjaan notebook dengan SageMaker Python SDK - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat pekerjaan notebook dengan SageMaker Python SDK

Untuk menjalankan notebook mandiri menggunakan SageMaker SDK Python, Anda perlu membuat langkah Job Notebook, melampirkannya ke pipeline, dan menggunakan utilitas yang disediakan SageMaker oleh Pipelines untuk menjalankan pekerjaan sesuai permintaan atau secara opsional menjadwalkan satu atau beberapa pekerjaan future.

Bagian berikut menjelaskan langkah-langkah dasar untuk membuat pekerjaan notebook sesuai permintaan atau terjadwal dan melacak jalannya. Selain itu, lihat diskusi berikut jika Anda perlu meneruskan parameter ke pekerjaan notebook Anda atau terhubung ke Amazon EMR di buku catatan Anda—persiapan tambahan notebook Jupyter Anda diperlukan dalam kasus ini. Anda juga dapat menerapkan default untuk subset argumen NotebookJobStep sehingga Anda tidak perlu menentukannya setiap kali Anda membuat langkah Job Notebook.

Untuk melihat contoh buku catatan yang menunjukkan cara menjadwalkan pekerjaan notebook dengan SageMaker SDK Python, lihat buku catatan contoh pekerjaan notebook.

Langkah-langkah untuk membuat pekerjaan notebook

Anda dapat membuat pekerjaan notebook yang berjalan segera atau sesuai jadwal. Instruksi berikut menjelaskan kedua metode.

Untuk menjadwalkan pekerjaan notebook, selesaikan langkah-langkah dasar berikut:
  1. Buat sebuah NotebookJobStep instance. Untuk detail tentang NotebookJobStep parameter, lihat sagemaker.workflow.steps. NotebookJobStep. Minimal, Anda dapat memberikan argumen berikut seperti yang ditunjukkan dalam cuplikan kode berikut:

    penting

    Jika Anda menjadwalkan pekerjaan notebook menggunakan SageMaker PythonSDK, Anda hanya dapat menentukan gambar tertentu untuk menjalankan pekerjaan notebook Anda. Untuk informasi selengkapnya, lihat Kendala gambar untuk pekerjaan notebook Python SageMaker SDK.

    notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name )
  2. Buat pipeline dengan langkah Anda NotebookJobStep sebagai satu langkah, seperti yang ditunjukkan pada cuplikan berikut:

    pipeline = Pipeline( name=pipeline-name, steps=[notebook_job_step], sagemaker_session=sagemaker-session, )
  3. Jalankan pipeline sesuai permintaan atau secara opsional menjadwalkan pipeline future run. Untuk memulai proses langsung, gunakan perintah berikut:

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

    Secara opsional, Anda dapat menjadwalkan single future pipeline run atau beberapa run pada interval yang telah ditentukan. Anda menentukan jadwal Anda PipelineSchedule dan kemudian meneruskan objek jadwal ke pipeline Andaput_triggers. Untuk informasi selengkapnya tentang penjadwalan saluran pipa, lihatJadwalkan pipeline dengan SageMaker Python SDK.

    Contoh berikut menjadwalkan pipeline Anda untuk berjalan sekali pada 12 Desember 2023 pukul 10:31:32. UTC

    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])

    Contoh berikut menjadwalkan pipeline Anda untuk berjalan pada pukul 10:15 UTC pada hari Jumat terakhir setiap bulan selama tahun 2022 hingga 2023. Untuk detail tentang penjadwalan berbasis cron, lihat Jadwal berbasis cron.

    my_schedule = PipelineSchedule( name="my-schedule“, cron="15 10 ? * 6L 2022-2023" ) pipeline.put_triggers(triggers=[my_schedule])
  4. (Opsional) Lihat pekerjaan notebook Anda di dasbor Pekerjaan SageMaker Notebook. Nilai yang Anda berikan untuk tags argumen langkah Job Notebook mengontrol cara UI Studio menangkap dan menampilkan pekerjaan. Untuk informasi selengkapnya, lihat Melihat pekerjaan notebook Anda di dasbor Studio UI.

Melihat pekerjaan notebook Anda di dasbor Studio UI

Pekerjaan buku catatan yang Anda buat sebagai langkah pipeline akan muncul di dasbor Pekerjaan Notebook Studio jika Anda menentukan tag tertentu.

catatan

Hanya pekerjaan notebook yang dibuat di Studio atau JupyterLab lingkungan lokal yang membuat definisi pekerjaan. Oleh karena itu, jika Anda membuat pekerjaan notebook dengan SageMaker PythonSDK, Anda tidak melihat definisi pekerjaan di dasbor Pekerjaan Notebook. Namun, Anda dapat melihat pekerjaan notebook Anda seperti yang dijelaskan dalamLihat pekerjaan notebook.

Anda dapat mengontrol anggota tim mana yang dapat melihat pekerjaan buku catatan Anda dengan tag berikut:

  • Untuk menampilkan buku catatan ke semua profil pengguna atau spasi di domain, tambahkan tag domain dengan nama domain Anda. Contoh ditunjukkan sebagai berikut:

    • kunci:sagemaker:domain-name, nilai: d-abcdefghij5k

  • Untuk menampilkan pekerjaan notebook ke profil pengguna tertentu di domain, tambahkan profil pengguna dan tag domain. Contoh tag profil pengguna ditampilkan sebagai berikut:

    • kunci:sagemaker:user-profile-name, nilai: studio-user

  • Untuk menampilkan pekerjaan notebook ke spasi, tambahkan spasi dan tag domain. Contoh tag spasi ditampilkan sebagai berikut:

    • kunci:sagemaker:shared-space-name, nilai: my-space-name

  • Jika Anda tidak melampirkan domain atau profil pengguna atau tag spasi apa pun, UI Studio tidak menampilkan tugas buku catatan yang dibuat berdasarkan langkah pipeline. Dalam hal ini, Anda dapat melihat pekerjaan pelatihan yang mendasarinya di konsol pekerjaan pelatihan atau Anda dapat melihat status dalam daftar eksekusi pipeline.

Setelah Anda menyiapkan tag yang diperlukan untuk melihat pekerjaan Anda di dasbor, lihat Lihat pekerjaan notebook petunjuk tentang cara melihat pekerjaan Anda dan mengunduh output.

Lihat grafik pipeline Anda di Studio

Karena langkah pekerjaan notebook Anda adalah bagian dari pipeline, Anda dapat melihat grafik pipeline (DAG) di Studio. Dalam grafik pipeline, Anda dapat melihat status jalur pipa dan melacak garis keturunan. Untuk detailnya, lihat Lihat Eksekusi Pipeline.

Meneruskan parameter ke notebook Anda

Jika Anda ingin meneruskan parameter ke pekerjaan notebook Anda (menggunakan parameters argumenNotebookJobStep), Anda perlu menyiapkan notebook input Anda untuk menerima parameter.

Pelaksana pekerjaan notebook berbasis Papermill mencari sel Jupyter yang ditandai dengan parameters tag dan menerapkan parameter baru atau penggantian parameter segera setelah sel ini. Untuk detailnya, lihat Parameterisasi notebook Anda.

Setelah Anda melakukan langkah ini, berikan parameter Anda ke AndaNotebookJobStep, seperti yang ditunjukkan pada contoh berikut:

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

Menyambung ke EMR klaster Amazon di buku catatan masukan Anda

Jika Anda terhubung ke EMR klaster Amazon dari notebook Jupyter di Studio, Anda mungkin perlu memodifikasi notebook Jupyter lebih lanjut. Lihat Connect ke EMR klaster Amazon dari notebook Anda apakah Anda perlu melakukan salah satu tugas berikut di buku catatan Anda:

  • Teruskan parameter ke perintah EMR koneksi Amazon Anda. Studio menggunakan Papermill untuk menjalankan notebook. Dalam SparkMagic kernel, parameter yang Anda berikan ke perintah EMR koneksi Amazon Anda mungkin tidak berfungsi seperti yang diharapkan karena cara Papermill meneruskan informasi. SparkMagic

  • Meneruskan kredensyal pengguna ke Kerberos,, LDAP atau kluster Amazon yang HTTP diautentikasi Auth Dasar. EMR Anda harus meneruskan kredensi pengguna melalui file. AWS Secrets Manager

Siapkan opsi default

SageMaker SDKIni memberi Anda opsi untuk mengatur default untuk subset parameter sehingga Anda tidak perlu menentukan parameter ini setiap kali Anda membuat instance. NotebookJobStep Parameter ini adalah roles3_root_uri,s3_kms_key,volume_kms_key,subnets, dansecurity_group_ids. Gunakan file SageMaker konfigurasi untuk mengatur default untuk langkah tersebut. Untuk informasi tentang file SageMaker konfigurasi, lihat Mengkonfigurasi dan menggunakan default dengan Python. SageMaker SDK .

Untuk menyiapkan default pekerjaan notebook, terapkan default baru Anda ke bagian pekerjaan buku catatan dari file konfigurasi seperti yang ditunjukkan pada cuplikan berikut:

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