Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat terhubung dengan aman ke wadah SageMaker pelatihan melalui AWS Systems Manager (SSM). Ini memberi Anda akses tingkat shell ke pekerjaan pelatihan debug yang berjalan di dalam wadah. Anda juga dapat mencatat perintah dan tanggapan yang dialirkan ke Amazon CloudWatch. Jika Anda menggunakan Amazon Virtual Private Cloud (VPC) Anda sendiri untuk melatih model, Anda dapat menggunakannya untuk menyiapkan titik akhir VPC AWS PrivateLink untuk SSM dan terhubung ke kontainer secara pribadi melalui SSM.
Anda dapat terhubung ke SageMaker AI Framework Container
Siapkan izin IAM
Untuk mengaktifkan SSM dalam wadah SageMaker pelatihan Anda, Anda perlu menyiapkan peran IAM untuk kontainer. Agar Anda atau pengguna di AWS akun Anda dapat mengakses wadah pelatihan melalui SSM, Anda perlu menyiapkan pengguna IAM dengan izin untuk menggunakan SSM.
Peran IAM
Untuk wadah SageMaker pelatihan untuk memulai dengan agen SSM, berikan peran IAM dengan izin SSM.
Untuk mengaktifkan debugging jarak jauh untuk pekerjaan pelatihan Anda, SageMaker AI perlu memulai agen SSM di wadah pelatihan saat pekerjaan pelatihan dimulai. Untuk memungkinkan agen SSM berkomunikasi dengan layanan SSM, tambahkan kebijakan berikut ke peran IAM yang Anda gunakan untuk menjalankan pekerjaan pelatihan Anda.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
Pengguna IAM
Tambahkan kebijakan berikut untuk memberikan izin sesi SSM kepada pengguna IAM untuk terhubung ke target SSM. Dalam hal ini, target SSM adalah wadah SageMaker pelatihan.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
"ssm:TerminateSession"
],
"Resource": "*"
}
]
}
Anda dapat membatasi pengguna IAM untuk terhubung hanya ke kontainer untuk pekerjaan pelatihan tertentu dengan menambahkan Condition
kunci, seperti yang ditunjukkan dalam contoh kebijakan berikut.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:StartSession",
"ssm:TerminateSession"
],
"Resource": [
"*"
],
"Condition": {
"StringLike": {
"ssm:resourceTag/aws:ssmmessages:target-id": [
"sagemaker-training-job:*"
]
}
}
}
]
}
Anda juga dapat secara eksplisit menggunakan tombol sagemaker:EnableRemoteDebug
kondisi untuk membatasi debugging jarak jauh. Berikut ini adalah contoh kebijakan bagi pengguna IAM untuk membatasi debugging jarak jauh.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyRemoteDebugInTrainingJob",
"Effect": "Allow",
"Action": [
"sagemaker:CreateTrainingJob",
"sagemaker:UpdateTrainingJob"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"sagemaker:EnableRemoteDebug": false
}
}
}
]
}
Untuk informasi selengkapnya, lihat Kunci kondisi untuk Amazon SageMaker AI di Referensi Otorisasi AWS Layanan.
Cara mengaktifkan debugging jarak jauh untuk pekerjaan SageMaker pelatihan
Di bagian ini, pelajari cara mengaktifkan debugging jarak jauh saat memulai atau memperbarui pekerjaan pelatihan di Amazon SageMaker AI.
Menggunakan kelas estimator di SageMaker Python SDK, Anda dapat mengaktifkan atau menonaktifkan debugging jarak jauh menggunakan enable_remote_debug
parameter atau metode and. enable_remote_debug()
disable_remote_debug()
Untuk mengaktifkan debugging jarak jauh saat Anda membuat pekerjaan pelatihan
Untuk mengaktifkan debugging jarak jauh saat Anda membuat pekerjaan pelatihan baru, setel enable_remote_debug
parameternya keTrue
. Nilai defaultnya adalahFalse
, jadi jika Anda tidak menyetel parameter ini sama sekali, atau Anda secara eksplisit mengaturnyaFalse
, fungsionalitas debugging jarak jauh dinonaktifkan.
import sagemaker
session = sagemaker.Session()
estimator = sagemaker.estimator.Estimator(
...,
sagemaker_session=session,
image_uri="<your_image_uri>
", #must be owned by your organization or Amazon DLCs
role=role
,
instance_type="ml.m5.xlarge
",
instance_count=1
,
output_path=output_path
,
max_run=1800
,
enable_remote_debug=True
)
Untuk mengaktifkan debugging jarak jauh dengan memperbarui pekerjaan pelatihan
Dengan menggunakan metode kelas estimator berikut, Anda dapat mengaktifkan atau menonaktifkan debugging jarak jauh saat pekerjaan pelatihan berjalan saat pekerjaan sedang Downloading
atau. SecondaryStatus
Training
# Enable RemoteDebug
estimator.enable_remote_debug()
# Disable RemoteDebug
estimator.disable_remote_debug()
Akses wadah pelatihan Anda
Anda dapat mengakses wadah pelatihan saat pekerjaan pelatihan yang sesuai adalahTraining
. SecondaryStatus
Contoh kode berikut menunjukkan cara memeriksa status pekerjaan pelatihan Anda menggunakan DescribeTrainingJob
API, cara memeriksa log masuk pekerjaan pelatihan CloudWatch, dan cara masuk ke wadah pelatihan.
Untuk memeriksa status pekerjaan pelatihan
Untuk memeriksa SecondaryStatus
pekerjaan pelatihan, jalankan kode SDK SageMaker Python berikut.
import sagemaker
session = sagemaker.Session()
# Describe the job status
training_job_info = session.describe_training_job(job_name
)
print(training_job_info)
Untuk menemukan nama host dari wadah pelatihan
Untuk terhubung ke wadah pelatihan melalui SSM, gunakan format ini untuk ID target:sagemaker-training-job:<training-job-name>_algo-<n>
, di algo-<n>
mana nama host kontainer. Jika pekerjaan Anda berjalan pada satu contoh, host selalualgo-1
. Jika Anda menjalankan pekerjaan pelatihan terdistribusi pada beberapa instans, SageMaker AI membuat jumlah host dan aliran log yang sama. Misalnya, jika Anda menggunakan 4 instance, SageMaker AI membuatalgo-1
,, algo-2
algo-3
, danalgo-4
. Anda harus menentukan aliran log mana yang ingin Anda debug, dan nomor host-nya. Untuk mengakses aliran log yang terkait dengan pekerjaan pelatihan, lakukan hal berikut.
Buka konsol Amazon SageMaker AI di https://console.aws.amazon.com/sagemaker/
. -
Di panel navigasi kiri, pilih Pelatihan, lalu pilih Pekerjaan pelatihan.
-
Dari daftar pekerjaan Pelatihan, pilih pekerjaan pelatihan yang ingin Anda debug. Halaman detail pekerjaan pelatihan terbuka.
-
Di bagian Monitor, pilih Lihat log. Daftar aliran log pekerjaan pelatihan terkait terbuka di CloudWatch konsol.
-
Nama aliran log muncul dalam
<training-job-name>/algo-<n>-<time-stamp>
format, denganalgo-<n>
mewakili nama host.
Untuk mempelajari selengkapnya tentang cara SageMaker AI mengelola informasi konfigurasi untuk pelatihan terdistribusi multi-instans, lihat Konfigurasi Pelatihan Terdistribusi.
Untuk mengakses wadah pelatihan
Gunakan perintah berikut di terminal untuk memulai sesi SSM (aws ssm start-session
) dan sambungkan ke wadah pelatihan.
aws ssm start-session --target sagemaker-training-job:
<training-job-name>
_algo-<n>
Misalnya, jika nama pekerjaan pelatihan training-job-test-remote-debug
dan nama host adalahalgo-1
, ID target menjadisagemaker-training-job:training-job-test-remote-debug_algo-1
. Jika output dari perintah ini mirip denganStarting session with SessionId:xxxxx
, koneksi berhasil.
Akses SSM dengan AWS PrivateLink
Jika wadah pelatihan Anda berjalan dalam Amazon Virtual Private Cloud yang tidak terhubung ke internet publik, Anda dapat menggunakannya AWS PrivateLink untuk mengaktifkan SSM. AWS PrivateLink membatasi semua lalu lintas jaringan antara instans titik akhir Anda, SSM, dan Amazon ke jaringan Amazon EC2 . Untuk informasi selengkapnya tentang cara mengatur akses SSM dengan AWS PrivateLink, lihat Menyiapkan titik akhir VPC Amazon untuk Pengelola Sesi.
Log perintah dan hasil sesi SSM
Setelah mengikuti petunjuk di Buat dokumen preferensi Manajer Sesi (baris perintah), Anda dapat membuat dokumen SSM yang menentukan preferensi Anda untuk sesi SSM. Anda dapat menggunakan dokumen SSM untuk mengonfigurasi opsi sesi, termasuk enkripsi data, durasi sesi, dan pencatatan. Misalnya, Anda dapat menentukan apakah akan menyimpan data log sesi di bucket Amazon Simple Storage Service (Amazon S3) atau di grup Amazon CloudWatch Logs. Anda dapat membuat dokumen yang menentukan preferensi umum untuk semua sesi untuk AWS akun dan Wilayah AWS, atau dokumen yang menentukan preferensi untuk sesi individual.
Memecahkan masalah dengan memeriksa log kesalahan dari SSM
Amazon SageMaker AI mengunggah kesalahan dari agen SSM ke CloudWatch Log Anda di grup /aws/sagemaker/TrainingJobs
log. Aliran log agen SSM diberi nama dalam format ini:. <job-name>/algo-<n>-<timestamp>/ssm
Misalnya, jika Anda membuat pekerjaan pelatihan dua simpul bernamatraining-job-test-remote-debug
, log pekerjaan pelatihan training-job-test-remote-debug/algo-<n>-<timestamp>
dan beberapa log kesalahan agen SSM akan diunggah ke Log training-job-test-remote-debug/algo-<n>-<timestamp>/ssm
Anda. CloudWatch Dalam contoh ini, Anda dapat meninjau aliran */ssm
log untuk memecahkan masalah SSM.
training-job-test-remote-debug/algo-1-1680535238
training-job-test-remote-debug/algo-2-1680535238
training-job-test-remote-debug/algo-1-1680535238/ssm
training-job-test-remote-debug/algo-2-1680535238/ssm
Pertimbangan
Pertimbangkan hal berikut saat menggunakan SageMaker AI remote debugging.
-
Debugging jarak jauh tidak didukung untuk kontainer algoritma SageMaker AI atau kontainer dari SageMaker AI aktif. AWS Marketplace
-
Anda tidak dapat memulai sesi SSM untuk kontainer yang memiliki isolasi jaringan diaktifkan karena isolasi mencegah panggilan jaringan keluar.