Jalankan kode lokal Anda sebagai pekerjaan SageMaker pelatihan - Amazon SageMaker

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

Jalankan kode lokal Anda sebagai pekerjaan SageMaker pelatihan

Anda dapat menjalankan kode Python machine learning (ML) lokal Anda sebagai pekerjaan pelatihan SageMaker Amazon single-node yang besar atau sebagai beberapa pekerjaan paralel. Anda dapat melakukan ini dengan membuat anotasi kode Anda dengan dekorator @remote, seperti yang ditunjukkan pada contoh kode berikut. Pelatihan terdistribusi (di beberapa instance) tidak didukung dengan fungsi jarak jauh.

@remote(**settings) def divide(x, y): return x / y

SDK SageMaker Python akan secara otomatis menerjemahkan lingkungan ruang kerja Anda yang ada dan kode pemrosesan data serta kumpulan data terkait ke dalam pekerjaan SageMaker pelatihan yang berjalan di platform pelatihan. SageMaker Anda juga dapat mengaktifkan fitur cache persisten, yang selanjutnya akan mengurangi latensi awal pekerjaan dengan menyimpan paket ketergantungan yang diunduh sebelumnya. Pengurangan latensi pekerjaan ini lebih besar daripada pengurangan latensi dari penggunaan kolam hangat yang SageMaker dikelola saja. Untuk informasi selengkapnya, lihat Menggunakan cache persisten.

catatan

Pekerjaan pelatihan terdistribusi tidak didukung oleh fungsi jarak jauh.

Bagian berikut menunjukkan cara membuat anotasi kode HTML lokal Anda dengan dekorator @remote dan menyesuaikan pengalaman Anda untuk kasus penggunaan Anda. Ini termasuk menyesuaikan lingkungan Anda dan mengintegrasikan dengan SageMaker Eksperimen.

Siapkan lingkungan Anda

Pilih salah satu dari tiga opsi berikut untuk mengatur lingkungan Anda.

Anda dapat membuat anotasi dan menjalankan kode HTML lokal Anda dari SageMaker Studio Classic dengan membuat SageMaker Notebook dan melampirkan gambar apa pun yang tersedia pada gambar SageMaker Studio Classic. Petunjuk berikut membantu Anda membuat SageMaker Notebook, menginstal SageMaker Python SDK, dan membubuhi keterangan kode Anda dengan dekorator.

  1. Buat SageMaker Notebook dan lampirkan gambar di SageMaker Studio Classic sebagai berikut:

    1. Ikuti petunjuk di Luncurkan Amazon SageMaker Studio Classic di Panduan SageMaker Pengembang Amazon.

    2. Pilih Studio dari panel navigasi kiri. Ini membuka jendela baru.

    3. Di kotak dialog Memulai, pilih profil pengguna dari panah bawah. Ini membuka jendela baru.

    4. Pilih Open Studio Classic.

    5. Pilih Buka Peluncur dari area kerja utama. Ini membuka halaman baru.

    6. Pilih Buat buku catatan dari area kerja utama.

    7. Pilih Base Python 3.0 dari panah bawah di sebelah Gambar di kotak dialog Ubah lingkungan.

      Dekorator @remote secara otomatis mendeteksi gambar yang dilampirkan ke notebook SageMaker Studio Classic dan menggunakannya untuk menjalankan tugas SageMaker pelatihan. Jika image_uri ditentukan baik sebagai argumen di dekorator atau dalam file konfigurasi, maka nilai yang ditentukan dalam image_uri akan digunakan sebagai pengganti gambar yang terdeteksi.

      Untuk informasi selengkapnya tentang cara membuat buku catatan di SageMaker Studio Classic, lihat bagian Membuat Buku Catatan dari Menu File di Membuat atau Membuka Notebook Amazon SageMaker Studio Classic.

      Untuk daftar gambar yang tersedia, lihat Gambar Docker yang didukung.

  2. Instal SDK SageMaker Python.

    Untuk membuat anotasi kode Anda dengan fungsi @remote di dalam Notebook SageMaker Studio Classic, Anda harus menginstal SageMaker Python SDK. Instal SageMaker Python SDK, seperti yang ditunjukkan pada contoh kode berikut.

    !pip install sagemaker
  3. Gunakan dekorator @remote untuk menjalankan fungsi dalam pekerjaan SageMaker pelatihan.

    Untuk menjalankan kode HTML lokal Anda, pertama-tama buat file dependensi untuk menginstruksikan SageMaker di mana menemukan kode lokal Anda. Untuk melakukannya, ikuti langkah-langkah berikut:

    1. Dari area kerja utama SageMaker Studio Classic Launcher, di Utilitas dan file, pilih File teks. Ini membuka tab baru dengan file teks yang disebut untitled.txt.

      Untuk informasi selengkapnya tentang antarmuka pengguna (UI) SageMaker Studio Classic, lihat Ikhtisar UI Amazon SageMaker Studio Classic.

    2. Ganti nama untitled.txt ke requirements.txt.

    3. Tambahkan semua dependensi yang diperlukan untuk kode bersama dengan SageMaker pustaka ke. requirements.txt

      Contoh kode minimal requirements.txt untuk divide fungsi contoh disediakan di bagian berikut, sebagai berikut.

      sagemaker
    4. Jalankan kode Anda dengan dekorator jarak jauh dengan meneruskan file dependensi, sebagai berikut.

      from sagemaker.remote_function import remote @remote(instance_type="ml.m5.xlarge", dependencies='./requirements.txt') def divide(x, y): return x / y divide(2, 3.0)

      Untuk contoh kode tambahan, lihat contoh notebook quick_start.ipynb.

      Jika Anda sudah menjalankan notebook SageMaker Studio Classic, dan Anda menginstal Python SDK seperti yang diinstruksikan dalam 2. Instal SageMaker Python SDK, Anda harus me-restart kernel Anda. Untuk informasi selengkapnya, lihat Menggunakan Toolbar Notebook SageMaker Studio Classic di Panduan SageMaker Pengembang Amazon.

Anda dapat membuat anotasi kode HTML lokal Anda dari instance SageMaker notebook. Petunjuk berikut menunjukkan cara membuat instance notebook dengan kernel kustom, menginstal SageMaker Python SDK, dan membubuhi keterangan kode Anda dengan dekorator.

  1. Buat instance notebook dengan conda kernel kustom.

    Anda dapat membuat anotasi kode HTML lokal Anda dengan dekorator @remote untuk digunakan di dalam pekerjaan pelatihan. SageMaker Pertama, Anda harus membuat dan menyesuaikan instance SageMaker notebook untuk menggunakan kernel dengan Python versi 3.7 atau lebih tinggi, hingga 3.10.x. Untuk melakukannya, ikuti langkah-langkah berikut:

    1. Buka SageMaker konsol di https://console.aws.amazon.com/sagemaker/.

    2. Di panel navigasi kiri, pilih Notebook untuk memperluas opsinya.

    3. Pilih Instans Notebook dari opsi yang diperluas.

    4. Pilih tombol Create Notebook Instance. Ini membuka halaman baru.

    5. Untuk nama instance Notebook, masukkan nama dengan maksimal 63 karakter dan tanpa spasi. Karakter yang valid: A-Z, a-z, 0-9, dan. : + = @ _% - (tanda hubung).

    6. Di kotak dialog Pengaturan instance Notebook, perluas panah kanan di samping Konfigurasi Tambahan.

    7. Di bawah Konfigurasi Siklus Hidup - opsional, perluas panah bawah dan pilih Buat konfigurasi siklus hidup baru. Ini membuka kotak dialog baru.

    8. Di bawah Nama, masukkan nama untuk pengaturan konfigurasi Anda.

    9. Di kotak dialog Skrip, di tab Mulai buku catatan, ganti isi kotak teks yang ada dengan skrip berikut.

      #!/bin/bash set -e sudo -u ec2-user -i <<'EOF' unset SUDO_UID WORKING_DIR=/home/ec2-user/SageMaker/custom-miniconda/ source "$WORKING_DIR/miniconda/bin/activate" for env in $WORKING_DIR/miniconda/envs/*; do BASENAME=$(basename "$env") source activate "$BASENAME" python -m ipykernel install --user --name "$BASENAME" --display-name "Custom ($BASENAME)" done EOF echo "Restarting the Jupyter server.." # restart command is dependent on current running Amazon Linux and JupyterLab CURR_VERSION_AL=$(cat /etc/system-release) CURR_VERSION_JS=$(jupyter --version) if [[ $CURR_VERSION_JS == *$"jupyter_core : 4.9.1"* ]] && [[ $CURR_VERSION_AL == *$" release 2018"* ]]; then sudo initctl restart jupyter-server --no-wait else sudo systemctl --no-block restart jupyter-server.service fi
    10. Di kotak dialog Skrip, di tab Buat buku catatan, ganti isi kotak teks yang ada dengan skrip berikut.

      #!/bin/bash set -e sudo -u ec2-user -i <<'EOF' unset SUDO_UID # Install a separate conda installation via Miniconda WORKING_DIR=/home/ec2-user/SageMaker/custom-miniconda mkdir -p "$WORKING_DIR" wget https://repo.anaconda.com/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh -O "$WORKING_DIR/miniconda.sh" bash "$WORKING_DIR/miniconda.sh" -b -u -p "$WORKING_DIR/miniconda" rm -rf "$WORKING_DIR/miniconda.sh" # Create a custom conda environment source "$WORKING_DIR/miniconda/bin/activate" KERNEL_NAME="custom_python310" PYTHON="3.10" conda create --yes --name "$KERNEL_NAME" python="$PYTHON" pip conda activate "$KERNEL_NAME" pip install --quiet ipykernel # Customize these lines as necessary to install the required packages EOF
    11. Pilih tombol Buat konfigurasi di kanan bawah jendela.

    12. Pilih tombol Create notebook instance di kanan bawah jendela.

    13. Tunggu Status instance notebook berubah dari Pending ke InService.

  2. Buat notebook Jupyter di instance notebook.

    Petunjuk berikut menunjukkan cara membuat notebook Jupyter menggunakan Python 3.10 di instance yang baru Anda buat. SageMaker

    1. Setelah status instance notebook dari langkah sebelumnya adalah InService, lakukan hal berikut:

      1. Pilih Buka Jupyter di bawah Tindakan di baris yang berisi Nama instance notebook yang baru dibuat. Ini membuka server Jupyter baru.

    2. Di server Jupyter, pilih Baru dari menu kanan atas.

    3. Dari panah bawah, pilih conda_custom_python310. Ini menciptakan notebook Jupyter baru yang menggunakan kernel Python 3.10. Notebook Jupyter baru ini sekarang dapat digunakan mirip dengan notebook Jupyter lokal.

  3. Instal SDK SageMaker Python.

    Setelah lingkungan virtual Anda berjalan, instal SDK SageMaker Python dengan menggunakan contoh kode berikut.

    !pip install sagemaker
  4. Gunakan dekorator @remote untuk menjalankan fungsi dalam pekerjaan SageMaker pelatihan.

    Saat Anda membuat anotasi kode HTML lokal Anda dengan dekorator @remote di dalam SageMaker buku catatan, SageMaker pelatihan akan secara otomatis menafsirkan fungsi kode Anda dan menjalankannya sebagai pekerjaan pelatihan. SageMaker Siapkan buku catatan Anda dengan melakukan hal berikut:

    1. Pilih nama kernel di menu notebook dari instance SageMaker notebook yang Anda buat di langkah 1, Buat instance SageMaker Notebook dengan kernel kustom.

      Untuk informasi selengkapnya, lihat Mengubah Gambar atau Kernel.

    2. Dari panah bawah, pilih conda kernel kustom yang menggunakan versi Python yang 3.7 atau lebih tinggi.

      Sebagai contoh, memilih conda_custom_python310 memilih kernel untuk Python 3.10.

    3. Pilih Pilih.

    4. Tunggu status kernel ditampilkan sebagai idle, yang menunjukkan bahwa kernel telah dimulai.

    5. Di Jupyter Server Home, pilih New dari menu kanan atas.

    6. Di sebelah panah bawah, pilih File teks. Ini membuat file teks baru yang disebut untitled.txt.

    7. Ganti nama untitled.txt menjadi requirements.txt dan tambahkan dependensi apa pun yang diperlukan untuk kode bersama. sagemaker

    8. Jalankan kode Anda dengan dekorator jarak jauh dengan meneruskan file dependensi seperti yang ditunjukkan di bawah ini.

      from sagemaker.remote_function import remote @remote(instance_type="ml.m5.xlarge", dependencies='./requirements.txt') def divide(x, y): return x / y divide(2, 3.0)

      Lihat contoh notebook quick_start.ipnyb untuk contoh kode tambahan.

Anda dapat membuat anotasi kode HTML lokal Anda dengan dekorator @remote di dalam IDE lokal pilihan Anda. Langkah-langkah berikut menunjukkan prasyarat yang diperlukan, cara menginstal SDK Python, dan cara membuat anotasi kode Anda dengan dekorator @remote.

  1. Instal prasyarat dengan menyiapkan AWS Command Line Interface (AWS CLI) dan membuat peran, sebagai berikut:

  2. Buat lingkungan virtual dengan menggunakan salah satu PyCharm atau conda dan menggunakan Python versi 3.7 atau lebih tinggi, hingga 3.10.x.

    • Siapkan lingkungan virtual menggunakan PyCharm sebagai berikut:

      1. Pilih File dari menu utama.

      2. Pilih Proyek Baru.

      3. Pilih Conda dari panah bawah di bawah Lingkungan baru menggunakan.

      4. Di bidang untuk versi Python gunakan panah bawah untuk memilih versi Python yang 3.7 atau lebih tinggi. Anda dapat naik ke 3.10.x dari daftar.

        Lingkungan baru Python dipilih sebagai Conda, dengan versi Python dipilih pada 3.10.
    • Jika Anda telah menginstal Anaconda, Anda dapat mengatur lingkungan virtual menggunakanconda, sebagai berikut:

      • Buka antarmuka terminal prompt Anaconda.

      • Buat dan aktifkan conda lingkungan baru menggunakan versi Python 3.7 atau lebih tinggi, hingga 3.10x. Contoh kode berikut menunjukkan cara membuat conda lingkungan menggunakan Python versi 3.10.

        conda create -n sagemaker_jobs_quick_start python=3.10 pip conda activate sagemaker_jobs_quick_start
  3. Instal SDK SageMaker Python.

    Untuk mengemas kode Anda dari IDE pilihan Anda, Anda harus memiliki lingkungan virtual yang diatur menggunakan Python 3.7 atau lebih tinggi, hingga 3.10x. Anda juga memerlukan gambar kontainer yang kompatibel. Instal SDK SageMaker Python menggunakan contoh kode berikut.

    pip install sagemaker
  4. Bungkus kode Anda di dalam dekorator @remote. SageMaker Python SDK akan secara otomatis menafsirkan fungsi kode Anda dan menjalankannya sebagai pekerjaan pelatihan. SageMaker Contoh kode berikut menunjukkan cara mengimpor pustaka yang diperlukan, menyiapkan SageMaker sesi, dan membuat anotasi fungsi dengan dekorator @remote.

    Anda dapat menjalankan kode Anda dengan menyediakan dependensi yang dibutuhkan secara langsung, atau dengan menggunakan dependensi dari lingkungan aktif. conda

    • Untuk memberikan dependensi secara langsung, lakukan hal berikut:

      • Buat requirements.txt file di direktori kerja tempat kode berada.

      • Tambahkan semua dependensi yang diperlukan untuk kode bersama dengan perpustakaan. SageMaker Bagian berikut memberikan contoh kode minimal requirements.txt untuk divide fungsi contoh.

        sagemaker
      • Jalankan kode Anda dengan dekorator @remote dengan meneruskan file dependensi. Dalam contoh kode berikut, ganti The IAM role name dengan ARN peran AWS Identity and Access Management (IAM) yang SageMaker ingin Anda gunakan untuk menjalankan pekerjaan Anda.

        import boto3 import sagemaker from sagemaker.remote_function import remote sm_session = sagemaker.Session(boto_session=boto3.session.Session(region_name="us-west-2")) settings = dict( sagemaker_session=sm_session, role=<The IAM role name>, instance_type="ml.m5.xlarge", dependencies='./requirements.txt' ) @remote(**settings) def divide(x, y): return x / y if __name__ == "__main__": print(divide(2, 3.0))
    • Untuk menggunakan dependensi dari conda lingkungan aktif, gunakan nilai auto_capture untuk dependencies parameter, seperti yang ditunjukkan pada berikut ini.

      import boto3 import sagemaker from sagemaker.remote_function import remote sm_session = sagemaker.Session(boto_session=boto3.session.Session(region_name="us-west-2")) settings = dict( sagemaker_session=sm_session, role=<The IAM role name>, instance_type="ml.m5.xlarge", dependencies="auto_capture" ) @remote(**settings) def divide(x, y): return x / y if __name__ == "__main__": print(divide(2, 3.0))
      catatan

      Anda juga dapat menerapkan kode sebelumnya di dalam notebook Jupyter. PyCharm Edisi Profesional mendukung Jupyter secara asli. Untuk panduan selengkapnya, lihat Dukungan notebook Jupyter dalam dokumentasi PyCharm.