View a markdown version of this page

SageMaker Kolam Hangat yang Dikelola AI - Amazon SageMaker AI

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

SageMaker Kolam Hangat yang Dikelola AI

SageMaker Kumpulan hangat yang dikelola AI memungkinkan Anda mempertahankan dan menggunakan kembali infrastruktur yang disediakan setelah menyelesaikan pekerjaan pelatihan untuk mengurangi latensi untuk beban kerja berulang, seperti eksperimen berulang atau menjalankan banyak pekerjaan secara berurutan. Pekerjaan pelatihan berikutnya yang sesuai dengan parameter tertentu dijalankan pada infrastruktur kolam hangat yang dipertahankan, yang mempercepat waktu mulai dengan mengurangi waktu yang dihabiskan untuk penyediaan sumber daya.

penting

SageMaker Kolam hangat yang dikelola AI adalah sumber daya yang dapat ditagih. Untuk informasi selengkapnya, lihat Penagihan.

Cara kerjanya

Untuk menggunakan kum SageMaker pulan hangat yang dikelola AI dan mengurangi latensi antara pekerjaan pelatihan berturut-turut yang serupa, buat pekerjaan pelatihan yang menentukan KeepAlivePeriodInSeconds nilai di dalamnyaResourceConfig. Nilai ini mewakili durasi waktu dalam detik untuk mempertahankan sumber daya yang dikonfigurasi dalam kumpulan hangat untuk pekerjaan pelatihan berikutnya. Jika Anda perlu menjalankan beberapa pekerjaan pelatihan menggunakan konfigurasi serupa, Anda dapat mengurangi latensi dan waktu yang dapat ditagih lebih lanjut dengan menggunakan direktori cache persisten khusus untuk menyimpan dan menggunakan kembali informasi Anda dalam pekerjaan yang berbeda.

Siklus hidup kolam hangat

  1. Buat pekerjaan pelatihan awal dengan KeepAlivePeriodInSeconds nilai lebih besar dari 0. Ketika Anda menjalankan pekerjaan pelatihan pertama ini, ini “memulai” sebuah cluster dengan waktu startup yang khas.

  2. Ketika pekerjaan pelatihan pertama selesai, sumber daya yang disediakan tetap hidup di kolam hangat selama periode yang ditentukan dalam KeepAlivePeriodInSeconds nilai. Selama cluster sehat dan kolam hangat berada dalam yang ditentukanKeepAlivePeriodInSeconds, maka status kolam hangat adalahAvailable.

  3. Kolam hangat tetap Available ada sampai mengidentifikasi pekerjaan pelatihan yang cocok untuk digunakan kembali atau melebihi yang ditentukan KeepAlivePeriodInSeconds dan dihentikan. Panjang waktu maksimum yang diizinkan untuk KeepAlivePeriodInSeconds adalah 3600 detik (60 menit). Jika status kolam hangat adalahTerminated, maka ini adalah akhir dari siklus hidup kolam hangat.

  4. Jika kolam hangat mengidentifikasi pekerjaan pelatihan kedua dengan spesifikasi yang cocok seperti jumlah instans atau jenis instans, maka kumpulan hangat berpindah dari pekerjaan pelatihan pertama ke pekerjaan pelatihan kedua untuk digunakan kembali. Status pekerjaan pelatihan pertama kolam hangat menjadiReused. Ini adalah akhir dari siklus hidup kolam hangat untuk pekerjaan pelatihan pertama.

  5. Status pekerjaan pelatihan kedua yang menggunakan kembali kolam hangat menjadiInUse. Setelah pekerjaan pelatihan kedua selesai, kolam hangat adalah Available untuk KeepAlivePeriodInSeconds durasi yang ditentukan dalam pekerjaan pelatihan kedua. Kolam air hangat dapat terus pindah ke pekerjaan pelatihan pencocokan berikutnya selama maksimal 28 hari.

  6. Jika kolam hangat tidak lagi tersedia untuk digunakan kembali, status kolam hangat adalahTerminated. Warm pool tidak lagi tersedia jika dihentikan oleh pengguna, untuk pembaruan patch, atau karena melebihi yang ditentukanKeepAlivePeriodInSeconds.

Untuk informasi selengkapnya tentang opsi status kolam hangat, lihat WarmPoolStatus di Refer ensi SageMaker API Amazon.

Pembuatan kolam hangat

Jika pekerjaan pelatihan awal berhasil diselesaikan dan memiliki KeepAlivePeriodInSeconds nilai lebih besar dari 0, ini menciptakan kolam yang hangat. Jika Anda menghentikan pekerjaan pelatihan setelah cluster sudah diluncurkan, kolam hangat masih dipertahankan. Jika pekerjaan pelatihan gagal karena kesalahan algoritma atau klien, kolam hangat masih dipertahankan. Jika pekerjaan pelatihan gagal karena alasan lain yang mungkin membahayakan kesehatan cluster, maka kolam hangat tidak dibuat.

Untuk memverifikasi keberhasilan pembuatan kolam hangat, periksa status kolam hangat dari pekerjaan pelatihan Anda. Jika kolam hangat berhasil disediakan, status kolam hangat adalahAvailable. Jika kolam hangat gagal disediakan, status kolam hangat adalahTerminated.

Mencocokkan pekerjaan pelatihan

Agar kolam hangat bertahan, ia harus menemukan pekerjaan pelatihan yang cocok dalam waktu yang ditentukan dalam KeepAlivePeriodInSeconds nilai. Pekerjaan pelatihan berikutnya adalah kecocokan jika nilai-nilai berikut identik:

  • RoleArn

  • ResourceConfignilai-nilai:

    • InstanceCount

    • InstanceType

    • VolumeKmsKeyId

    • VolumeSizeInGB

  • VpcConfignilai-nilai:

    • SecurityGroupIds

    • Subnets

  • EnableInterContainerTrafficEncryption

  • EnableNetworkIsolation

  • Jika Anda melewati tag sesi untuk pekerjaan pelatihan Anda dengan dis EnableSessionTagChaining etel ke True dalam pekerjaan pelatihanSessionChainingConfig, maka pekerjaan pelatihan yang cocok juga harus disetel EnableSessionTagChaining ke True dan memiliki kunci sesi yang identik. Untuk informasi selengkapnya, lihat Gunakan kontrol akses berbasis atribut (ABAC) untuk pelatihan multi-tenancy.

Semua nilai ini harus sama agar kolam hangat dapat dipindahkan ke pekerjaan pelatihan berikutnya untuk digunakan kembali.

Durasi kolam hangat maksimum

Maksimum KeepAlivePeriodInSeconds untuk satu pekerjaan pelatihan adalah 3600 detik (60 menit) dan jangka waktu maksimum cluster kolam hangat dapat terus menjalankan pekerjaan pelatihan berturut-turut adalah 28 hari.

Setiap pekerjaan pelatihan berikutnya juga harus menentukan KeepAlivePeriodInSeconds nilai. Ketika kolam hangat pindah ke pekerjaan pelatihan berikutnya, ia mewarisi KeepAlivePeriodInSeconds nilai baru yang ditentukan dalam pekerjaan pelatihan itu. ResourceConfig Dengan cara ini, Anda dapat menjaga kolam yang hangat bergerak dari pekerjaan pelatihan ke pekerjaan pelatihan selama maksimal 28 hari.

Jika tidak KeepAlivePeriodInSeconds ditentukan, maka kolam hangat berputar ke bawah setelah pekerjaan pelatihan selesai.

Menggunakan cache persisten

Saat Anda membuat kolam hangat, SageMaker AI memasang direktori khusus pada volume yang akan bertahan sepanjang siklus hidup kolam hangat. Direktori ini juga dapat digunakan untuk menyimpan informasi yang ingin Anda gunakan kembali di pekerjaan lain.

Menggunakan cache persisten dapat mengurangi latensi dan waktu yang dapat ditagih selama menggunakan kolam hangat saja untuk pekerjaan yang memerlukan hal berikut:

  • beberapa interaksi dengan konfigurasi serupa

  • pekerjaan pelatihan tambahan

  • optimasi hyperparameter

Misalnya, Anda dapat menghindari mengunduh dependensi Python yang sama pada proses berulang dengan menyiapkan direktori cache pip di dalam direktori cache persisten. Anda bertanggung jawab penuh untuk mengelola konten direktori ini. Berikut ini adalah contoh jenis informasi yang dapat Anda masukkan ke dalam cache persisten Anda untuk membantu mengurangi latensi dan waktu yang dapat ditagih.

  • Dependensi dikelola oleh pip.

  • Dependensi dikelola oleh conda.

  • Informasi pos pemeriksaan.

  • Setiap informasi tambahan yang dihasilkan selama pelatihan.

Lokasi cache persisten adalah/opt/ml/sagemaker/warmpoolcache. Variabel lingkungan SAGEMAKER_MANAGED_WARMPOOL_CACHE_DIRECTORY menunjuk ke lokasi direktori cache persisten.

Contoh kode berikut menunjukkan cara mengatur kolam hangat dan menggunakan cache persisten untuk menyimpan dependensi pip Anda untuk digunakan dalam pekerjaan berikutnya. Pekerjaan selanjutnya harus berjalan dalam kerangka waktu yang diberikan oleh parameterkeep_alive_period_in_seconds.

from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, SourceCode from sagemaker.core.helper.session_helper import Session, get_execution_role from sagemaker.core import image_uris # Creates a SageMaker session and gets execution role session = Session() role = get_execution_role() # Retrieve the TensorFlow training image training_image = image_uris.retrieve( framework="tensorflow", region=session.boto_region_name, version="2.2", py_version="py37", instance_type="ml.g4dn.xlarge", image_scope="training" ) # Creates an example ModelTrainer with warm pool enabled model_trainer = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "1", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, environment={"PIP_CACHE_DIR": "/opt/ml/sagemaker/warmpoolcache/pip"} )

Dalam contoh kode sebelumnya, menggunakan parameter lingkungan mengekspor variabel lingkungan PIP_CACHE_DIRECTORY untuk menunjuk ke direktori/opt/ml/sagemaker/warmpoolcache/pip. Mengekspor variabel lingkungan ini akan mengubah tempat pip menyimpan cache-nya ke lokasi baru. Direktori apa pun, termasuk direktori bersarang, yang Anda buat di dalam direktori cache persisten akan tersedia untuk digunakan kembali selama proses pelatihan berikutnya. Dalam contoh kode sebelumnya, direktori yang pip disebut diubah menjadi lokasi default untuk menyimpan dependensi apa pun yang diinstal menggunakan pip.

Lokasi cache persisten juga dapat diakses dari dalam skrip pelatihan Python Anda menggunakan variabel lingkungan seperti yang ditunjukkan dalam contoh kode berikut.

import os import shutil if __name__ == '__main__': PERSISTED_DIR = os.environ["SAGEMAKER_MANAGED_WARMPOOL_CACHE_DIRECTORY"] # create a file to be persisted open(os.path.join(PERSISTED_DIR, "test.txt"), 'a').close() # create a directory to be persisted os.mkdir(os.path.join(PERSISTED_DIR, "test_dir")) # Move a file to be persisted shutil.move("path/of/your/file.txt", PERSISTED_DIR)

Penagihan

SageMaker Kolam hangat yang dikelola AI adalah sumber daya yang dapat ditagih. Ambil status kolam hangat untuk pekerjaan pelatihan Anda untuk memeriksa waktu yang dapat ditagih untuk kolam hangat Anda. Anda dapat memeriksa status kolam hangat baik melalui Menggunakan konsol Amazon SageMaker AI atau langsung melalui perintah DescribeTrainingJob API. Untuk informasi selengkapnya, lihat WarmPoolStatus di Refer ensi SageMaker API Amazon.

catatan

Setelah waktu yang ditentukan oleh parameter KeepAlivePeriodInSeconds berakhir, kumpulan hangat dan cache persisten akan dimatikan, dan isinya akan dihapus.

Pertimbangan-pertimbangan

Pertimbangkan item berikut saat menggunakan kolam hangat yang dikelola SageMaker AI.

  • SageMaker Kolam hangat yang dikelola AI tidak dapat digunakan dengan pelatihan cluster heterogen.

  • SageMaker Kumpulan hangat yang dikelola AI tidak dapat digunakan dengan instans spot.

  • SageMaker Kolam hangat yang dikelola AI dibatasi KeepAlivePeriodInSeconds hingga nilai 3600 detik (60 menit).

  • Jika kolam hangat terus berhasil mencocokkan pekerjaan pelatihan dalam KeepAlivePeriodInSeconds nilai yang ditentukan, cluster hanya dapat terus berjalan selama maksimal 28 hari.